Вы можете создать два буфера для хранения двоичного файла в каждом из них, используя команду 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);
}