나는 텍스트의 패턴을 찾기 위해 아래의 기능을 썼다가 나타나는바이너리 파일에서 패턴을 찾으십니까?
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' 등으로 메모리에 매핑 할 것입니다. – Aan
바이너리 파일에 null 바이트가 없다면 어떻게 될지 생각해보십시오. 데이터의 2 진 스트림을 널로 끝나는 char 문자열로 처리 할 수 없습니다. –