【问题标题】:How to map a file offset in an EXE to its PE section如何将 EXE 中的文件偏移量映射到其 PE 部分
【发布时间】:2011-03-26 03:37:26
【问题描述】:

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

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

【问题讨论】:

    标签: windows winapi disassembly portable-executable


    【解决方案1】:

    编辑:抱歉,我没有仔细阅读您的问题。

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

    【讨论】:

    • 是的,我解释了我是如何做到的,但它不起作用。这个公式描述的任何范围都没有涵盖许多差距。我想你不知道这是为什么?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-02-19
      • 1970-01-01
      • 2016-02-16
      • 1970-01-01
      • 1970-01-01
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多