我寫了以下功能在文本中發現這樣一個規律:在二進制文件中查找模式?
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? – 2012-03-10 12:42:01
@ Mike Kwan是的我要通過'CreateFilemMapping'等映射內存中的文件..等 – Aan 2012-03-10 16:14:56
請考慮如果您的二進制文件不包含空字節會發生什麼情況。您不能將二進制數據流視爲以空字符結尾的字符串。 – 2012-03-10 22:39:52