PE文件结构学习笔记
来源:互联网 发布:皇图龙源进阶数据 编辑:程序博客网 时间:2024/05/16 18:10
pe文件结构学习笔记
一个pe文件的大致结构:
DOS头
PE头
节表
节
相关结构体:
IMAGE_DOS_HEADER
{
e_magic WORD 'MZ'
...
e_lfanew DWORD 指向PE文件头
}
IMAGE_NT_HEADER
{
'PE'
IMAGE_FILE_HEADER
{
Machine WORD 运行的硬件平台(CPU Intel386等等)
NumberOfSection WORD 文件的节数目
TimeDateStamp DWORD 创建日期
SizeOfOptionalHeader WORD 结构体大小
Characteristlics WORD 文件属性
}
IMAGE_OPTIONAL_HEADER
{
AddressOfEntryPoint 文件执行时入口地址
ImageBase 文件优先装入地址
SectionAlignment 节被装入内存后对齐单元
FileAlignment 节存储在磁盘文件中时的对齐单位
Subsystem 使用界面的子系统CUI OR GUI
DataDirectory 放16个IMAGE_DATA_DIRECTORY结构
}
}
后边是16个节表
IMAGE_DATA_DIRECTORY
{
VirtualAddress DWORD 数据起始虚拟地址 RVA
iSize DWORD 数据块长度
}
0 导出表 IMAGE_DIRECTORY_ENTRY_EXPORT
1 导入表 IMAGE_DIRECTORY_ENTRY_IMPORT
2 资源 IMAGE_DIRECTORY_ENTRY_RESOURCE
3 异常
4 安全
5 重定位表IMAGE_DIRECTORY_ENTRY_BASERELOC
6 调试信息IMAGE_DIRECTORY_ENTRY_DEBUG
7 版权信息IMAGE_DIRECTORY_ENTRY_ARCHITECTURE
8 不详
9 ThreadLocal Storage
10 不详
11 不详
12 导出函数地址IMAGE_DIRECTORY_ENTRY_IAT
13 不详
14 不详
15 未使用
Windows加载DOS, PE头, 节表部分不进行任何处理, 原封不动映射到内存, 但是加载节的时候要经过一些
处理
PE中所有节的属性被定义在节表中
节表的结构(每个节表结构体描述一个节):
IMAGE_SECTION_HEADER
{
Name1 8个字节的节名
union {
PhysicalAddress
VirtualSize 节区的尺寸
}
VirtualAddress 节区的RVA地址
SizeOfRawData 在文件中对齐后的尺寸
....
Characteristics 节的属性
}
详见 罗云彬的书
- PE文件结构学习笔记
- PE文件结构学习笔记
- PE文件结构-学习笔记
- PE文件学习笔记
- PE文件学习笔记
- PE结构、SEH相关知识学习笔记
- 再读PE 文件结构启发式学习
- 0x01 PE文件结构学习总结
- PE结构学习笔记--关于AddressOfEntryPoint位置在文件中怎么确定问题
- 《黑客免杀攻防学习笔记》——PE文件结构1
- 《黑客免杀攻防学习笔记》——PE文件结构2
- 《黑客免杀攻防学习笔记》——PE文件结构3
- 《WINDOWSPE权威指南》学习笔记(二)- PE文件结构及字段说明
- PE文件学习笔记(1)
- PE文件学习笔记(2)
- PE文件学习笔记(3)
- 【学习笔记2】hook,PE文件
- PE文件结构
- 编程中的命名设计那点事
- SNS
- HDU 剪枝剪枝......
- 手动脱UPX壳的几种方法
- jQuery里的each方法
- PE文件结构学习笔记
- Windows系统编程之进程间通信
- Linux0.11内核--系统中断处理程序int 0x80实现原理
- idoc 和 bapi 和 rfc 之间的区别
- hdu 1566 Color the ball---线段树
- 第7章 更灵活的定位内存地址的方法 笔记
- LPC3250中的IRQ中断
- 玩转iPhone网络通讯之BSD Socket篇
- sizeof和strlen的区别