바이너리 패치 후 파일 실행 오류

Reversing 2011. 8. 29. 14:48
실행 파일이 메모리에 로딩되어 프로세스로써 실행될 때 그대로 1:1로 로딩되는 것이 아니라,
규칙에 의해서 올라가게 되며 보통은 파일과 메모리가 1:1로 매칭 되지 않음

즉, 메모리에 대응되는 파일 오프셋이 존재하지 않으므로 수정된 코드를 파일로 만들면 오동작 하게 됨.

- PE Header를 분석하여 파일에 존재하지만 프로그램에서 사용되지 않는 공간을 버퍼영역으로 선정
- 파일 끝을 버퍼 영역 만큼 확장하고, PE header 를 수정하여 그 부분을 메모리에 로딩
 

'Reversing' 카테고리의 다른 글

IMAGE_SECTION_HEADER structure - Characteristics  (0) 2011.10.28
VA, RVA, RAW  (0) 2011.09.22
UPack 상세 분석  (0) 2010.09.02
pe 분석  (0) 2010.09.01
리틀 인디안, 빅 인디안  (0) 2010.08.30
: