2011-03-24 36 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