Как искать в C, если содержимое двоичного файла появляется в другом двоичном файле? - PullRequest
0 голосов
/ 20 мая 2018

Мне нужно взять двоичный файл и выполнить поиск, если его содержимое отображается в других двоичных файлах, которые я читаю.Стоит ли использовать встроенные функции?

1 Ответ

0 голосов
/ 20 мая 2018

Вы можете создать два буфера для хранения двоичного файла в каждом из них, используя команду fread.Сравните строки, которые вы хотите найти, и посчитайте, сколько подходящих байтов у вас есть в строке, например:

int i = 0;
int isInfected = 0;
char* virusSign = 0;
int count = 0;
int size = 0;
int fileSize = 0;
int index = 0;
char* buffer = 0;

Примечание: «вирус» в данном случае - это двоичный контент, который я ищу.Пока destFile - это двоичный файл, который я ищу:

while (index < fileSize && !isInfected)
{
    if (virusSign[i] != buffer[index] && count != size - 1)
    {
        i = 0;
        count = 0;
    }
    else
    {
        count++;
    }
    if (count == size)
    {
        isInfected = TRUE;
    }
    i++;
    index++;
}
if (virus != NULL)
{
    fclose(virus);
}
if (destFile != NULL)
{
    fclose(destFile);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...