Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 12.03.2009
Сообщений: 6

Поиск ехе файла по сигнатуре.

03.04.2009, 18:21. Показов 1751. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте . Возникла проблема при поиске ехе файла по сигнатуре.
1)Представленная программа должна находить указанный, в соответствии с данной сигнатурой, ехе файл в заданной папке.(В нашем случае текущая директория – диск С).Программа после компиляции выводит сообщениечто не может открыть ни один ехе файл.
File B not open
File v not open
и.т.д.
Скажите в чем может быть причина неполадки?
2)Как кроме этого получить полный путь к найденным файлам?
Платформа выполнения VS С++
Заранее спасибо.

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
#include <conio.h>
#include <iostream>
#include <stdlib.h>
#include <winbase.h>

using namespace std;

#define PATH_LEN 128

//смешение 1230h

const char signature[17]={(char)0xc9, (char)0xd4,(char)0xde ,(char)0x77 ,(char)0x1b ,(char)0x76 ,
(char)0xdc,(char) 0x77 ,(char)0x83, (char)0x78 ,(char)0xdc ,(char)0x77,
(char)0xf0 ,(char)0x6b ,(char)0xdc ,(char)0x77,'\0'};

FILE *outFile = fopen("input.txt", "w");
FILE *inFile;
char lpBuffer[PATH_LEN];

void FileFind(char *Dir, bool f)
{
SetCurrentDirectory(LPCWSTR(Dir));
LPWIN32_FIND_DATA ffd = new WIN32_FIND_DATA;
char MZ[] = {(char)0x4D, (char)0x5A};
memset (ffd, 0, sizeof (WIN32_FIND_DATA));
HANDLE hSearch = FindFirstFile (LPCWSTR("*"), ffd);
char str[2];
char sig[17];
//обход файлов в директории
do
{
if ((ffd->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))// если файл директория
{
if (ffd->cFileName[0] != '.' && f)
FileFind((char*)(ffd->cFileName), f);//Вызываем функцию поиска в рекурсии
}

else
{
if (!(inFile = fopen((const char*)(ffd->cFileName), "rb")))
printf("\nFile %s not open\n", ffd->cFileName);
else
{
for (int i = 0; i < 2; i ++)
fscanf(inFile,"%c", &str[i]);
char d[PATH_LEN];
GetCurrentDirectory(PATH_LEN, LPWSTR(d));
if (strcmp(str, MZ) == 0)//Проверяем является ли файл ехе
{
fseek(inFile, 0x1230,SEEK_SET);
for (int i = 0; i < 16; i ++)
if (!feof(inFile))
fscanf(inFile, "%c", &sig[i]);
else
{
fprintf(inFile,"in file %s\\%s signature not found\n", ffd->cFileName);
printf("in file %s\\%s signature not found\n", ffd->cFileName);
FindNextFile(hSearch, ffd);
break;
}
sig[16] = '\0';
if (strcmp(sig, signature) == 0){
fprintf(outFile,"in file %s\\%s SIGNATURE FOUND\n", d,ffd->cFileName);
printf("in file %s\\%s SIGNATURE FOUND\n", d,ffd->cFileName);}
//else
// fprintf(outFile,"in file %s\\%s signature not found\n", d,ffd->cFileName);
}
memset(str, 0, 3);
memset(sig, 0, 16);
fclose(inFile);
}
}
}
while (FindNextFile (hSearch, ffd));
SetCurrentDirectory(LPCWSTR(".."));
_getch();
CloseHandle (hSearch);
delete ffd;

}


void _tmain(int argc,char *argv[])
{
char lpBuffer[PATH_LEN];
bool f = false;

FileFind(lpBuffer, f);

}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.04.2009, 18:21
Ответы с готовыми решениями:

Поиск ехе файла по сигнатуре. Подскажите пожалуйста
Здравствуйте . Возникла проблема при поиске ехе файла по сигнатуре. 1)Представленная программа должна находить указанный, в соответствии...

Поиск по сигнатуре заданного файла в указанной директории
Помогите пожалуйста с задачкой... Поиск по сигнатуре заданного файла в указанной директории. Cначала берётся сигнатура у заданного...

Как средствами Delphi реализовать извлечение ехе файла при запуске ехе?
Здорова, народ. Как средствами Delphi реализовать извлечение ехе файла при запуске ехе? Заранее спасибо!

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.04.2009, 18:21
Помогаю со студенческими работами здесь

Поиск файлов по сигнатуре
Доброго времени суток! Помогите пожайлуста. Требуется найти необходимый .exe файл по сигнатуре. Я написал функцию для поиска файлов. Только...

Поиск файлов по сигнатуре
Добрый день!Пишу программу для поиска файлов по сигнатуре. Как сделать что-бы в файле проверялось наличие сигнатуры(в качестве сигнатуры...

Расширение файла по сигнатуре
Подскажите программу определяющую расширение файла по его сигнатуре (TrIDNet не подходит)

Куда и как внедрять в новую ЕХЕ иконку упаковываемого ЕХЕ?
Привет всем программерам! Давно не заходил я не этот форум. Сделал программу чтото типа упаковщика ЕХЕ. Проблема такая,куда и как...

Структура ехе файла
Где можно подробно прочитать про структуру ехе? мне например надо данные о файле получить, ресурсы, классы, указатели на экспортируемые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru