在PE中导入表(.exe)

时间:2011-03-24 18:54:14

标签: portable-executable

我找到了“导入表”字段的指针。这是8字节大小,分为虚拟地址和大小。但是,虚拟地址字段中的值很大,并且误导了我提取与导入表相关的条目的下落相关信息的努力。值是否指向偏移量,如果是,则(.exe)文件在到达所需偏移量之前完成。

1 个答案:

答案 0 :(得分:9)

目录表中导入目录的RVA(相对虚拟地址)必须有效。也许您将其转换为物理偏移会出现故障。当然,这是通过遍历节表来查找包含节来完成的。然后从目标RVA中减去该部分的起始RVA。然后只需将该部分的物理偏移量添加到此结果中。这将为您提供导入目录文件中的位置。如果您正在使用磁盘文件,则可能经常需要与RVAs之间的转换以及物理偏移。如果使用内存映像,有时保护实用程序会修改或破坏内存中PE标头的某些部分,以阻止转储。

进入导入目录后,您还有更多工作要做。一个快速的谷歌显示了一个比我可能在这里写的更好的解释:http://sandsprite.com/CodeStuff/Understanding_imports.html

我是现在'经典'PECompact,PEBundle(现已停产)和其他PE操作实用程序的作者。