2

我打开了一个我用 ImageHlp.dll 编写的程序来玩弄它,我注意到文件中似乎有很大的空白。据我了解,对于每个 PE 部分,部分标题将其在文件中的偏移量为PhysicalAddress,其大小为SizeOfRawData,因此从PhysicalAddress到的所有内容都PhysicalAddress + SizeOfRawData应该是该部分。但是这些范围没有涵盖大量的 EXE 文件,所以我一定遗漏了一些东西。

我知道我可以使用 ImageRVAToSection 并给它一个 RVA 地址来找出 RVA 位于哪个部分。有没有办法对文件偏移量做类似的事情?如何找出 $ED178 或任何属于哪个 PE 节字节?

4

2 回答 2

1

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

做了一些查找,我发现了一些像您提到的文件,部分标题中的数据并未涵盖文件的全部内容。到目前为止,我发现的大多数都包含未涵盖的调试记录。还有一些其他的差异我还没有弄清楚。当/如果我能弄清楚更多,我会添加它。

于 2010-08-06T04:11:19.897 回答
0

我在如何使用 VirtualAllocEx 为代码洞穴腾出空间?检查当前加载到内存中的PE 的代码片段。如果您将内存中 DLL 的包含与磁盘上的包含(显示 ImageHlp.dll)进行比较,您可能会找到问题的答案。

于 2010-08-06T13:53:45.300 回答