【发布时间】:2012-03-10 07:57:26
【问题描述】:
我编写了下面的函数来查找文本中的模式:
bool match(char* patt,char* text){
int textLoc=0, pattLoc=0, textStart=0;
while(textLoc < (int) strlen(text) && pattLoc < (int)strlen(patt)){
if( *(patt+pattLoc) == *(text+textLoc) ){
textLoc= textLoc+1;
pattLoc= pattLoc+1;
}
else{
textStart=textStart+1;
textLoc=textStart;
pattLoc=0;
}
}
if(pattLoc >= (int) strlen(patt))
return true;
else return false;
}
看起来,该函数采用char* 类型的两个参数。我想用这个函数在binary file中找到一个模式,你建议如何执行这个问题?
【问题讨论】:
-
通过二进制文件,你是自己将文件映射到内存中还是先加载它然后注入DLL?
-
@Mike Kwan 是的,我将通过
CreateFilemMapping.. 等将文件映射到内存中。 -
考虑如果你的二进制文件不包含空字节会发生什么。您不能将二进制数据流视为以空字符结尾的字符字符串。
标签: c++ winapi binaryfiles string-matching