认识PE格式

Windows的可执行文件(EXE,DLL)是PE(Portable Executable)格式。
PE文件使用的是一个平面地址空间,所有代码和数据都被合并在一起,组成一个很大的结构。文件的内容被分割为不同的区块(Section,又称区段、节等),块中包含代码或数据。每个块都有它自己在内存中的一套属性,比如:这个块是否包含代码、是否只读或可读写等。

每一个区块都有不同的名字,这个名字用来表示区块的功能。例如,一个叫.rdata的区块表明它是一个只读区块。常见的块有.text,rdata,data,idata,rsc等。各种块的含义如下。
     .text:是在编译或汇编结束时产生的一种块,它的内容全是指令代码;
    .rdata:是运行期只读数据: .data:是初始化的数据块;
    .idata:包含其他外来DLL的函数及数据信息,即输入表;
    .rsrc:包含模块的全部资源,如图标、菜单、位图等。