导入导出地址表分析(根据库文件名求出:导入函数数量、函数序号、函数名称)

导入地址表(Import Address Table,IAT)用来记录程序正在使用哪些DLL中的哪些函数。

导入名称表(Import Name Table,INT)

一、找出库文件名和RVAsec和RAWsec

在这里插入图片描述

在这里插入图片描述
通过分析PE头,可得notepad.exe的各节区头范围如表4-12所示。并分析出表4-13。
在这里插入图片描述
在这里插入图片描述

二、分析INT和IAT,得出导入函数数量

下面进一步分析notepad.exe文件的INT和IAT。

KERNEL32.dll 为例,该DLL对应的 INT 数组和 IAT 数组在PE中的RAW偏移量分别为6B58H和48CH。

PE文件的偏移量区间6B58H~6C3FH的空间保存INT,其中IMAGE_THUNK_DATA32结构的个数为57。

这里:57=14行×4+1,这个就是导入函数数量

PE文件的偏移量区间48CH~573H的空间保存IAT,其中IMAGE_THUNK_DATA32结构的个数也为57。

INT和IAT的内容分别如图4-4(a)和图4-4(b)所示。
在这里插入图片描述
在这里插入图片描述

三、函数序号、函数名称

接着分析INT的第一项(00008024H)所指向的IMAGE_IMPORT_BY_NAME结构的内容,
该内容在PE文件的偏移量8024H-1000H+ 400H=7424H位置。

注:这里是8024,因为是2480的小端存储方式。可以通过LordPE算出。
在这里插入图片描述

该结构的内容如图4-5所示。
其中Hint字段的序号值为013EH,而被导入函数的Name字段经十六进制编辑器分析出为"GetCurrentThreadId”。
也可以用类似的方法分析出KERNEL32.dl1中所有被notepad.exe导入的函数的序号函数名

第一函数序列号(小端):013E
第一函数名:GetCurrentThreadId

在这里插入图片描述
在这里插入图片描述
函数序号、函数名称可以通过HXD右键选择范围再输入偏移量得出:
在这里插入图片描述

四、导出表分析(PE文件节区的删除和增加)

【PE结构】由浅入深PE基础学习-菜鸟手动查询导出表、相对虚拟地址(RVA)与文件偏移地址转换(FOA)

通过修改PE文件加载DLL

重点看:
pe文件节区的删除和增加

posted @ 2022-04-20 22:52  Hardworking666  阅读(59)  评论(0编辑  收藏  举报  来源