如何将EXE中的文件偏移映射到其PE部分

时间:2010-08-06 03:28:12

标签: windows winapi disassembly portable-executable

我打开了一个用ImageHlp.dll编写的程序来玩它一点点,我注意到文件中似乎有很大的空白。据我了解,对于每个PE部分,节标题在文件中的偏移量为PhysicalAddress,其大小为SizeOfRawData,因此从PhysicalAddress到{{1}的所有内容都是如此应该是那个部分。但是EXE文件的大片区域没有被这些范围覆盖,所以我必须遗漏一些东西。

我知道我可以使用ImageRVAToSection并为其提供一个RVA地址,以找出RVA所在的部分。有没有办法与文件偏移做类似的事情?如何找出哪个PE部分字节$ ED178或属于哪个?

2 个答案:

答案 0 :(得分:1)

编辑:对不起,我没有仔细阅读你的问题。

做一些看,我发现你提到的一些文件,节标题中的数据不包括文件的全部内容。到目前为止,我发现的大多数都包含一个未涵盖的调试记录。还有一些其他方面存在差异,但我还没有弄清楚。当/如果我能想出更多,我会添加它。

答案 1 :(得分:0)

我在How does one use VirtualAllocEx do make room for a code cave?发布了一个代码片段,用于检查内存中当前加载的PE。如果你将内存中的DLL包含与磁盘上的包含(显示ImageHlp.dll)进行比较,你可能会在你的问题上找到答案。