一、前言
PE即Portable Executable,是Win32环境自身所带的执行体文件格式,其部分特性继承自Unix的COFF(Common Object File Format)文件格式。PE表示该文件格式是跨win32平台的,即使Windows运行在非Intel的CPU上,任何Win32平台的PE装载器也能识别和使用该文件格式的文件。所有Win32执行体(除了VxD和16位的DLL)都使用PE文件格式,如EXE文件、DLL文件等,包括NT的内核模式驱动程序(Kernel Mode Driver)。
本章节所有内容均以32位应用程序作为示例讲解(64位原理相同)。

PE文件至少包含两个段,即数据段和代码段。Windows NT 的应用程序有9个预定义的段,分别为 .text 、.bss 、.rdata 、.data 、.pdata 和.debug 段,这些段并不是都是必须的,当然,也可以根据需要定义更多的段(比如一些加壳程序)。

本文详细探讨了PE(Portable Executable)文件格式,涵盖了从IMAGE_DOS_HEADER到IMAGE_NT_HEADERS、IMAGE_OPTIONAL_HEADER32以及PE节(Section)的数据结构。通过实例分析了如何找到并理解这些关键结构,特别是代码段和数据段的定义。同时,介绍了PE文件中常见的段如.text、.bss、.rdata等,并提到了它们在程序中的作用。
订阅专栏 解锁全文
2958

被折叠的 条评论
为什么被折叠?



