的搜索我想在C 打造杀毒我是这样做的:模式二进制数据
病毒和图片文件的读取数据扫描。
检查病毒数据是否出现在图片数据中。
予读取扫描的文件和病毒文件这样的数据:(I读取由二进制模式文件,因为该文件是图像文件(.png))
// open file
file = fopen(filePath, "rb");
if (!file)
{
printf("Error: can't open file.\n");
return 0;
}
// Allocate memory for fileData
char* fileData = calloc(fileLength + 1, sizeof(char));
// Read data of file.
fread(fileData, fileLength, 1, file);
i之后读出的文件数据和病毒数据如果病毒出现类似这样的文件在我检查:
char* ret = strstr(fileData, virusID);
if (ret != NULL)
printf("Infetecd file");
即使在我的图片,我有VirusID它不工作。 我想检查病毒的二进制数据是否出现在图片的二进制数据中。
例如:我的我的病毒http://pastebin.com/xZbWA9qu
的二进制数据,我的图片的二进制数据(与病毒):http://pastebin.com/yjXr84kr
什么是'fileLength'? –
如果文件是二进制文件呢? – stark
@SouravGhosh它的变量,我检查一步一步的长度是正确的。 –