2011-11-11 1 views
0

Windows PE 파일에 대해 이야기하고 있습니다. 한 파일에 다른 파일이 있는지 확인하는 방법이 있습니까? 내 말은 ... 내가 한 runable 프로그램으로이파일에 다른 파일이 들어 있는지 확인하십시오.

MZ header 1st program 
PE header 1st program 
. 
. 
. all the sections from 1st program 
. 
MZ header 2nd program 
PE header 2nd program 
. 
. 
. all the sections from 2nd program 
. 

같은 두 개의 프로그램을 병합하는 경우? 물론 첫 번째 만 실행됩니다.

+0

다른 바이너리 내부에서 바이너리를 검색하는 명령 줄 도구가 필요합니까? – tenfour

+0

목표가 정확히 무엇입니까? 나는 그런 두 가지 파일을 병합하는 정당한 (그리고 의심스럽지 않은) 이유를 생각할 수 없다. – ereOn

+0

C/C++ 솔루션을 찾고 있는데 맬웨어 연구에 대한 학사 학위 논문이 필요합니다. – Samuel

답변

1

경우에 따라 PE 파일의 마지막 섹션에 대한 오프셋 및 크기 정보를 얻으려고합니다 (IMAGE_SECTION_HEADER). 이 정보를 얻은 후에는 (오프셋 + 크기) 청크를 읽을 수 있고 다른 PE 형식 (MZ 매직 번호)과 일치하는 경우 에 첫 번째 파일에 두 번째 파일이 추가된다고 제안합니다.

+0

고마워,이 도움이되었지만 문제가 발생했습니다. 디버그 빌드가 아니라 릴리스 빌드에서 작동합니다. 이것이 아마도 무엇의 원인 일 수 있습니까? PE 섹션 이후에 오는 정보를 찾지 못했습니다. 섹션이 맨 끝에 있다고 생각했습니다. 디버그 데이터가 될 수 있습니까? 디버그 디렉토리에 있어야하지 않습니까? – Samuel

+0

심볼 데이터베이스를 디버깅 할 필요는 없지만 디버깅을 지원하거나 완전히 다른 것을 디버깅 할 수 있습니다. 정말 아무것도 될 수 있습니다 ... – JosephH