在
有关于如何findexe文件中入口点的文件偏移量的信息。
在这里我可以读到
EP(File)= AddressOfEntryPoint – BaseOfCode + .text [PointerToRawData] + FileAlignment
然而,当我自己计算这个(我使用了几个不同的exe文件),我得出的结论是
入口点在EXE文件中的偏移量= AddressOfEntryPoint + .text [PointerToRawData] – .text [VirtualAddress]
从IMAGE_OPTIONAL_HEADER获取AddressOfEntryPoint,从IMAGE_SECTION_HEADER获取其他两个值。
该网页上的信息是否为假? 添加FileAlignment就像他们似乎错了,这是没有道理的。 还是呢? 文件alignment表明我应该使用模或其他来计算一个值。 如果BaseOfCode和FileAlignment是相同的值(主要是他们),它不会干扰将它们添加到计算,但它是如何有意义?
正确的,你根本不需要使用FileAlignment
值。
算法应该如下所示(非常类似于你的):
AddressOfEntryPoint
VirtualAddress
和PointerToRawData
领域。 AddressOfEntryPoint
减去VirtualAddress
:你现在有一个“增量” PointerToRawData
。 您不需要FileAlignment
因为入口点所在的部分已经与该值对齐。