2011-03-24 35 views
4

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

回答

9

目录表中导入目录的RVA(相对虚拟地址)必须有效。也许你把它转换成物理偏移是有问题的。当然,这是通过遍历节表来找到包含部分。然后从目标RVA中减去该部分的起始RVA。然后只需将该部分的物理偏移量添加到该结果中。这会给你在导入目录文件中的位置。如果您正在使用磁盘上的文件,经常需要从RVA转换为物理偏移量。如果使用内存映像,有时保护实用程序会修改或销毁内存中部分PE头以阻止转储。

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

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

+0

从某人那里得到的+1需要太长时间才能得到PE的支持:) – 2011-03-25 23:14:50

+0

你能举一个如何用十六进制编辑器找到导入目录的例子吗? – iYonatan 2015-11-20 14:43:53

+0

我可以,但为什么你要在地球上手动遍历一个复杂的数据结构,如便携式可执行文件?除了学习的目的。即使是逆转,也有很多工具可以扭转PE结构(以及更多)。无论如何,基本上它只是发现并遵循由文件规范/数据规范设计的地址处的RVA,并将其导入到导入表中。 – 2016-09-24 03:25:49