-
-
[分享]PE结构体中导出表/导入表解析——初阶
-
发表于:
2018-1-24 12:59
11713
-
一、导出表解析
输出表位置,落在了.rdata段,
16000【5200】
17D70【6F70】
从而,可以知道17D70,输出表在磁盘中的偏移是6F70
在010里,Ctrl + G,输入6F70
那就从6F70的位置,开始,找40B,如下:
00 00 00 00
71 DB 67 5A 【时间戳】
00 00 【主版本】
00 00 【次版本】
C0 7D 01 00【DLL名称地址】
01 00 00 00 【索引基数】
04 00 00 00 【函数地址表大小】
04 00 00 00 【函数名表大小 == 函数序号表大小】
98 7D 01 00【函数地址表——首地址】
A8 7D 01 00 【函数名表——首地址】
B8 7D 01 00【函数序号表——首地址】
1、看DLL的名称是啥:地址17DC0【6FC0】,找到了我们自己的库dll_00.dll
2、再看下函数地址表中的元素,首地址17D98【6F98】,共有4个,地址,4B/个
如下所示:
3、再来看函数名表中的元素,首地址17DA8【6FA8】,共有4个,地址4B/个
这些都是地址值,要找到真正的函数名:
17DD0【6FD0】
17DD5【6FD5】
17DDA【6FDA】
17DCB【6FCB】
特别注意:函数名表,其实存放的也是地址值,RVA,这个只是我们自己找到的名称,方便起见,直接写的名字
4、接下来,看下函数序号表,首地址17DB8【6FB8】,4个,序号,2B/个
5、接下来,就分析分析:从这里,也可以看到,序号表里的值,并没有加上索引基数
最终,会得到如下结果:
6、验证下,我们的结果:成功了;
至于,索引基数,还没看到效果呢,————注意看下刚刚的LoadPe里的Ordinal那一列
部分代码:
def文件
二、导入表解析
写一个测试程序,查看导入表RVA
输入表位置,落在了.idata段
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)