gpt4 book ai didi

windows - 计算PE文件中入口点的文件偏移量

转载 作者:可可西里 更新时间:2023-11-01 13:27:03 30 4
gpt4 key购买 nike

http://en.redinskala.com/finding-the-ep/

有关于如何在 exe 文件中找到入口点的文件偏移量的信息。

我可以在这里阅读

EP (File) = AddressOfEntryPoint – BaseOfCode + .text[PointerToRawData] + FileAlignment

然而,当我自己计算时(我使用了几个不同的 exe 文件)我得出的结论是

Offset of entry point in EXE file = AddressOfEntryPoint + .text[PointerToRawData] - .text[VirtualAddress]

AddressOfEntryPoint 从 IMAGE_OPTIONAL_HEADER 中获取,其他两个值从 IMAGE_SECTION_HEADER 中获取。

那个网页上的信息是假的吗?像他们那样添加 FileAlignment 似乎是错误的,没有意义。或者是吗?文件对齐建议我应该使用模数或其他方法来计算值。如果 BaseOfCode 和 FileAlignment 是相同的值(大多数情况下它们是),则不会干扰将它们添加到计算中,但它有什么意义?

最佳答案

正确,您根本不需要使用 FileAlignment 值。

算法应该如下所示(与您的非常相似):

  • 从 IMAGE_OPTIONAL_HEADER.AddressOfEntryPoint 获取 AddressOfEntryPoint(这是一个 VA)
  • 搜索此 VA 所在的章节标题(通常是第一个,但您实际上应该搜索所有章节标题)。
  • 获得正确的节标题后,获取其 VirtualAddressPointerToRawData 字段。
  • AddressOfEntryPoint 中减去 VirtualAddress:您现在有一个“delta”
  • 由于完全相同的增量适用于偏移量,因此:将“增量”添加到 PointerToRawData

您根本不需要 FileAlignment,因为入口点所在的部分已经根据该值对齐。

关于windows - 计算PE文件中入口点的文件偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33724306/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com