PE文件格式分析系列(文章1)----一个PE文件导入表数据的分析(MFC工程调试版)

本文详细分析了一个PE文件的导入表数据,揭示了其使用了6个DLL,并探讨了IMAGE_IMPORT_DESCRIPTOR结构及其OriginalFirstThunk字段。通过内存地址解析,展示了不同DLL的导入函数信息,并探讨了数据对齐和IAT数据的特点。文章最后总结了导入表数据的排列顺序及注意的细节。
摘要由CSDN通过智能技术生成

PE文件格式分析系列(文章1)

一个PE文件导入表数据的分析(MFC工程调试版)
一. 该PE文件使用了6个DLL
分别是:
1. mfc42d.dll
2. msvcrtd.dll
3. kernel32.dll
4. user32.dll
5. mfco42d.dll
6. msvcp60d.dll

故有6个 IMAGE_IMPORT_DESCRIPTOR (IMAGE_IMPORT_DESCRIPTOR结构大小是0x14)
在PE文件中, (IMAGE_DIRECTORY_ENTRY_IMPORT 数据目录)
第4个段 .idata 0x1B95(实际数据大小) 0x27000(文件中位置) 0x2000(文件对齐大小)
也就是说.idata段在0x27000---0x29000(0x27000---0x28B95是有用数据)
7个 IMAGE_IMPORT_DESCRIPTOR 结构数据
7个 0x14 * 7 = 0x8C(0x27000 -- 0x2708C) (第7个全0)
00027000 |+EC 70 02 00 00 00 00 00 | 1. mfc42d.dll
00027008 | 00 00 00 00 34 7A 02 00 |
00027010 | C0 75 02 00+74 74 02 00 | 2. msvcrtd.dll
00027018 | 00 00 00 00 00 00 00 00 |
00027020 | CC 7A 02 00 48 79 02 00 |
00027028 |+8C 70 02 00 00 00 00 00 | 3. kernel32.dll
00027030 | 00 00 00 00 6C 7C 02 00 |
00027038 | 60 75 02 00+30 75 02 00 | 4. user32.dll
00027040 | 00 00 00 00 00 00 00 00  |
00027048 | 8E 7C 02 00 04 7A 02 00 |
00027050 |+48 73 02 00 00 00 00 00 | 5. mfco42d.dll
00027058 | 00 00 00 00 9A 7C 02 00 |
00027060 | 1C 78 02 00+78 73 02 00| 6. msvcp60d.dll
00027068 | 00 00 00 00 00 00 00 00  |
00027070 | FE 88 02 00 4C 78 02 00 |
00027078 |+00 00 00 00 00 00 00 00 | 7. 空 
00027080 | 00 00 00 00 00 00 00 00  |
00027088 | 00 00 00 00 ----------------  |
紧跟在0002708C 后面的, 就是
IMAGE_IMPORT_DESCRIPTOR.OriginalFirstThunk数据
3. kernel32.dll的IMAGE_IMPORT_DESCRIPTOR.OriginalFirstThunk数据
从 0002708C -- 000270C0    0x0C个 DWORD + 0x1个0的DWORD
0002708C | ----------- AA 7B 02 00 |
00027090 | CE 7B 02 00 DE 7B 02 00 |
00027098 | EC 7B 02 00 FC 7B 02 00 |
000270A0 | 10 7C 02 00 1E 7C 02 00 |
000270A8 | 34 7C 02 00 46 7C 02 00 |
000270B0 | 5A 7C 02 00 C0 7B 02 00 |
000270B8 | 6E 89 02 00 00 00 00 00 |
-------------------------------------------------------------
000270C0 | 00 00 00 00 00 00 00 00 |\
000270C8 | 00 00 00 00 00 00 00 00 | |
000270D0 | 00 00 00 00 00 00 00 00 | |这段数据为0
000270D8 | 00 00 00 00 00 00 00 00 | |
000270E0 | 00 00 00 00 00 00 00 00 | |
000270E8 | 00 00 00 00 ----------- |/
1. mfc42d.dll的IMAGE_IMPORT_DESCRIPTOR.OriginalFirstThunk数据
从 000270EC -- 000272C4    0x75个 DWORD + 0x1个0的DWORD
000270EC | ----------- 83 10 00 80 | 很明显, 0x80001083, 最高位
000270F0 | 85 10 00 80 38 08 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值