2010-08-06 4 views
2

ImageHlp.dll을 사용하여 작성한 프로그램을 조금 열었습니다. 파일에 큰 틈이있는 것으로 나타났습니다. . 내가 이해할 수 있듯이 각 PE 섹션의 섹션 헤더는 파일에서 오프셋이 PhysicalAddress이고 크기가 SizeOfRawData이므로 PhysicalAddress에서 PhysicalAddress + SizeOfRawData까지의 모든 부분이 해당 섹션이어야합니다. 그러나 EXE 파일에는 이러한 범위에서 다루지 않는 큰 범위가 있으므로 뭔가를 놓치고 있어야합니다.EXE의 파일 오프셋을 PE 섹션에 매핑하는 방법

ImageRVAToSection을 사용하여 RVA 주소를 지정하면 RVA가있는 섹션을 찾을 수 있습니다. 파일 오프셋과 비슷한 작업을 수행 할 수있는 방법이 있습니까? 어떤 PE 섹션 바이트 $ ED178 또는 무엇이 속해 있는지 알 수있는 방법은 무엇입니까?

답변

1

편집 : 죄송합니다. 질문을 자세히 읽지 않았습니다.

일부 살펴보면서 나는 섹션 헤더의 데이터가 파일의 전체 내용을 다루지 않는다고 언급 한 것처럼 몇 가지 파일을 찾고 있습니다. 지금까지 발견 한 대부분의 디버그 레코드는 포함되지 않았습니다. 불일치가있는 몇 가지 다른 것들이 있습니다. 그러나 나는 아직 이해할 수 없었습니다./내가 더 알아낼 수 있다면, 나는 그것을 추가 할 것이다.

+0

그래, 내가 어떻게했는지는 설명했지만 작동하지 않는다. 이 수식에서 설명하는 범위에서 다루지 않는 틈이 있습니다. 왜 그런지 모르겠군요? –

0

나는 메모리에로드 된 PE 을 검사하는 코드 조각 How does one use VirtualAllocEx do make room for a code cave?에 게시했습니다. 아마도 당신은 메모리에있는 DLL의 내용물을 디스크의 내용물 (ImageHlp.dll을 보여주고있는 내용)과 비교한다면 여러분의 질문에 대한 답을 찾을 수있을 것입니다.

관련 문제