PE32+ | PE | |
进程的虚拟内存 | 16TB 低8TB是用户空间 高8TB是内核空间 | 4GB 低2GB是用户空间 高2GB是内核空间 (有时也会有低3GB是用户空间,高1GB是内核空间的情况) |
NT头 主要的区别在第3个成员 | IMAGE_NT_HEADER64 —IMAGE_OPTIONAL_HEADER64 | IMAGE_NT_HEADER32 —IMAGE_OPTIONAL_HEADER32 |
标准头 IMAGE_FILE_HEADER的machine字段 | X86:8664 IA-64:0200 | 014C |
可选头 IMAGE_OPTIONAL_HEADER | 1.magic:020B | 1.magic:010B |
2.在PE32+中删除了BaseOfData字段 | 2.PE32中BaseOfData用于指示数据节的起始位置 | |
3.ImageBase:ULONGLONG 为了适应增大的虚拟内存 (EXE/DLL文件被加载到低位的8TB用户区域, SYS文件被加载到高位的8TB的内核区域) | 3.ImageBase:DWORD | |
堆栈相关字段 SizeOfStackReverse SizeOfStackCommit SizeOfHeapReverse SizeOfHeapCommit 的数据类型变为ULONGLONG类型 与增大的虚拟内存相适应 | ||
IMAGE_THUNK_DATA | 8字节 | 4字节 |
IMAGE_TLS_DIRECTORY | 8字节 | 4字节 |
PE与PE32+的区别
于 2023-08-15 22:20:42 首次发布