可直接参考附件中的三个源码,
PEv2.e 详细的PE构建过程
Form1.e 模拟黑月编译一个Form1
对话框.e 模拟汇编编译一个Windows窗口程序
这里就简单的介绍下吧,详细内容可查看第一章内容。
以Test.exe 结构为演示,附件里面的源码可参考。
-------------*--------------------------------------------*
| DOS Header(IMAGE_DOS_HEADER) | -->64 Byte
DOS头部 --------------------------------------------------
| DOS Stub | -->112 Byte
-------------*--------------------------------------------*
| "PE"00 (Signature) PE头标志 | -->4 Byte
----------------------------------------
| IMAGE_FILE_HEADER 映像文件头 | -->20 Byte
PE文件头 -------------------------------------------------
| IMAGE_OPTIONAL_HEADER32 可选映像头 | -->96 Byte
-------------------------------------------------
| IMAGE_DATA_DIRECTORY 数据目录表 | -->128 Byte
-------------*--------------------------------------------*
| IMAGE_SECTION_HEADER .text | -->40 Byte
-----------------------------------------
区段表 | IMAGE_SECTION_HEADER .rdata | -->40 Byte
-------------------------------------------------
| IMAGE_SECTION_HEADER .data | -->40 Byte
-------------*--------------------------------------------*
|.text [指令代码] | -->512 Byte
-----------------------------------------
区段数据|.rdata [存放调试目录和说明字符串] | -->512 Byte
-------------------------------------------------
|.data [初始化的数据.] | -->512 Byte
-------------*--------------------------------------------*
| COFF行号 | -->NULL
-------------------------------------------------
调试信息| COFF符号表 | -->NULL
-------------------------------------------------
| Code View 调试信息 | -->NULL
-------------*--------------------------------------------*
上面PE结构大体信息一目了然,可参照源码“PEv2.e”和上面对照。
上一篇 获取PE文件区段工具