Программа с возможностью добавления плагинов для поиска файлов по сигнатуре , зашифрованных , определенного формата и т.д.
Ссылка для скачивания программы
https://dropmefiles.com/jZQka .
В плагинах используется всего 2 функции ; "Info" и "Check" .
Info возвращает название плагина через через Name типа (wchar_t **) , которое отображается на вкладке "DataFilter" .
Check возвращает 1 если файл соответствует критериям поиска или 0 в противном случае , а также описание найденного файла
в через Name типа (wchar_t **) . В качестве параметров ( их 3 штуки ) передается описатель проверяемого файла f и указатель на структуру WIN32_FIND_DATAW , которая к примеру содержит размер файла .
На всех вкладках кроме "Log" есть подменю при нажатии правой кнопки мыши .
На вкладке "Add paths for scan" указывается список папок в которых идет поиск файлов .
Подменю :
"Add folder" - добавить папку в которой будет вестись поиск .
"Move down" - переместить текущую папку в списке вниз на одну позицию ( папки из списка проверяются последовательно ).
"Move up - переместить текущую папку в списке вверх на одну позицию ( папки из списка проверяются последовательно ).
"Remove" - удалить текущую папку из списка , которая выбрана ( подсвечена ) .
"Clear" - Очистить весь список .
На вкладке "Exlude paths" выбирается список папок , которые будут исключаться из поиска файлов .
Подменю :
"Add folder" - добавить папку в которой будет вестись поиск .
"Move down" - переместить текущую папку в списке вниз на одну позицию ( папки из списка проверяются последовательно ).
"Move up - переместить текущую папку в списке вверх на одну позицию ( папки из списка проверяются последовательно ).
"Remove" - удалить текущую папку из списка , которая выбрана ( подсвечена ) .
На вкладке "DataFilter" список найденных плагинов , которые помещаются в папку с данной программой и "Use search filter" - в случае если он отмечен , то доступно подменю при нажатии правой кнопки мыши и выбор для использования не всех , а конкретного списка плагинов , в противном случае - используются все плагины независимо от выбора .
Подменю:
"Check all' - выбрать все плагины в списке .
"Uncheck all' - отменить выбор всех плагинов из списка .
"Invert all" - инвертировать выбор для всех плагинов в списке .
На вкладке "Report" отображается список найденных файлов и
папка в которую сохраняются отчеты и найденные файлы (если конечно это выбрано в настройках "Preferences" ).
Подменю :
"Copy Path" - копировать в буфер обмена только полный путь к файлу .
"Copy FileName" - копировать в буфер обмена только имя файла .
"Copy Path + FileName" - копировать в буфер обмена полный путь и имя файла .
"Copy File" - копировать выбранный файл из списка в папку для отчетов .
"Copy all files" - копировать все файлы из списка в папку для отчетов .
"Move File" - переместить выбранный файл из списка в папку для отчетов .
"Move all files" - переместить все файлы из списка в папку для отчетов .
В главном меню в "Preferences" можно выбрать следующие настройки :
"Copy all found files to the folder" - копировать все найденные
файлы в папку указанную на вкладке "Report" .
"Recursive scanning" - искать во всех вложенных папках тоже , а не только в указанных в списке .
"Create report during search" - во время поиска по мере нахождения файлов в отчет добавляются новые записи из таблицы .
"Use exclude paths" - учитывать список папок с вкладки "Exlude paths" .
"Check files from Internet" - проверять файлы из интернета , на которые указывают файлы ссылки из папок с диска на котором ведется поиск .
В самом низу главного окна в строке статуса отображается
общее число проверенных файлов , число найденных файлов ,
время прошедшее с начала поиска и имя файла , которое проверяется в данных момент .
В главном меню в "File" :
"Choose path" - Выбрать путь для сохранения отчетов и найденных файлов .
"Save report" - сохранить список найденных файлов и краткую информацию о них в файл в csv формате .
"View report" - загрузить список найденных файлов и краткую информацию о них из файла в csv формате .
"Browse files" - открыть папку с файлами и отчетами в проводнике Windows .
"Save log" - сохранить в файл все данные с вкладки "Log" .
В главном меню в "Search" :
"Start" - начать поиск файлов .
"Stop" - остановить поиск файлов .
Ниже пример кода на языке Си этих 2 функций для нахождения файлов PE формата , то есть например файлов exe и dll .
#define EXE_FILE L"PE file"
#define EXE L"PE"
#define NOT_FOUND 0
#define FOUND 1
__declspec(dllexport) void __fastcall Info(wchar_t **Name )
{
*Name = EXE_FILE ;
return ;
}
__declspec(dllexport) int __fastcall Check( HANDLE f ,
LPWIN32_FIND_DATAW lpFindFileData , wchar_t **Name )
{
long long all_size = ( (long long)(lpFindFileData->nFileSizeHigh) << 32) |
lpFindFileData->nFileSizeLow ;
if ( all_size < 2 )
return NOT_FOUND ;
if ( SetFilePointer( f , 0 , NULL , FILE_BEGIN ) == INVALID_SET_FILE_POINTER )
return NOT_FOUND ;
DWORD ret = 0 ;
char sign[2] ;
if ( !ReadFile( f , sign , sizeof(sign) , &ret , NULL ))
return NOT_FOUND ;
if ( ret != sizeof(a) )
return NOT_FOUND ;
if (( sign[0] == 'M' ) && ( sign[1] == 'Z' ))
{
*Name = EXE ;
return FOUND ;
}
return NOT_FOUND ;
}