【问题标题】:How to define the PointerToRawData for a new section header?如何为新的节标题定义 PointerToRawData?
【发布时间】:2014-04-24 16:31:15
【问题描述】:

我正在尝试在 PE 中添加新的节标题,但我不知道如何计算新节的 PointerToRawData。

据我所知,它应该是原始数据的大小 + 最后一部分的 PointerToRawData 但我添加到 PE 中的部分的 SizeOfRawData 等于 0,虚拟大小为 1000。

有人可以提供一些提示吗?

提前致谢,

【问题讨论】:

    标签: c# portable-executable


    【解决方案1】:

    PointerToRawData 是属于此部分的数据的文件位置。如果您的部分没有与之关联的任何数据,则它可以与前一部分的值相同,或者 - 我认为 - 零。

    【讨论】:

    • 所有字段都设置为 0,我正在进入 PE EXPLORER:警告! <.rsrc> (7) 节超出了 <.news> (8) 节的原始文件偏移量。只有虚拟地址被设置和特性。任何的想法? (PS:它告诉我它不是一个有效的 win32 应用程序)
    • 在资源之前,您在哪里添加新部分?
    • 我将该部分添加到其他部分的末尾。最后一段是 .rsrc
    • 从错误来看,.rsrc部分的PointerToRawData + SizeOfRawData和下一部分的PointerToRawData值不匹配。
    • 另外,请记住,所有 SizeOfRawData 字段值必须是文件对齐值的整数倍(除非为零)。
    【解决方案2】:

    请看《Portable Executable File Format – A Reverse Engineer View》,链接如下: http://index-of.es/Windows/pe/CBM_1_2_2006_Goppit_PE_Format_Reverse_Engineer_View.pdf

    它准确地说“它是从文件开头到节数据的偏移量。 ”在第 18 页。 另一个有用的参考是《Microsoft Portable Executable and Common Object File Format Specification》,你可以在谷歌上找到它 我也在找这个资料,分享给大家~ 祝你好运~

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 2011-10-13
      • 2015-11-05
      相关资源
      最近更新 更多