【PE结构】3.区段头

PE文件 专栏收录该内容
8 篇文章 0 订阅
一、前言
二、PE整体结构
三、DOS头
四、NT头
    4.1.文件头
    4.2.扩展头
五、区段头
六、导出表
七、导入表
八、资源表
九、其他表


五、区段头

概念:

    区段头表存储着PE文件主体也就是区段的一些属性。
    整个区段头表,是一个结构体数组。
    数组中的每个元素,也就是每个结构体,对应着PE文件主体中的一段数据,这段数据成为段或节。
    
结构体:
    这个结构体在winnt.h中可以看到
    
typedef struct _IMAGE_SECTION_HEADER {
    BYTE    Name[IMAGE_SIZEOF_SHORT_NAME];		// 区段的名字,最长8字节
    union {
            DWORD   PhysicalAddress;			
            DWORD   VirtualSize;
    } Misc;						// 虚拟内存中,会使用的总大小,未对齐
    DWORD   VirtualAddress;				// 区段起始的相对虚拟基址RVA,VA=程序基址+VirtualAddress
    DWORD   SizeOfRawData;				// 区段在文件中的大小,进行了文件对齐
    DWORD   PointerToRawData;				// 区段的文件偏移
    DWORD   PointerToRelocations;				
    DWORD   PointerToLinenumbers;
    WORD    NumberOfRelocations;
    WORD    NumberOfLinenumbers;
    DWORD   Characteristics;
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
    由结构体可以看出,结构体是40个字节大小。
    那整个区段头表,是若干40个字节大小的数据块,加上一个40个字节大小的0结束
    
常见区段简介:
    .text段。一般是代码段。
    .data段。一般是数据段。
    .bss段。未初始化数据段。比如static变量,有时在函数内才初始化。
    .rdata段。只读数据段。比如字符串。
    .idata和.edata段。导入表、导出表信息。
    .rsrc段。资源段。
    .reloc段。重定位信息段。

    VC6程序: 四个区段 .text 代码段  .rdata 导入表 .data 数据段 .rsrc 资源段
    VS2008/2013: 五个区段 .text 代码段  .rdata 导入表 .data 数据段 .rsrc 资源段 .reloc
    易语言: 四个区段 .text 代码段  .rdata 导入表 .data 数据段 .rsrc 资源段
    Delphi:八个区段CODE、DATA、BSS、.idata、.tls、.rdata、.reloc、.rsrc
    VB程序:五个区段.text .data .idata .rsrc .reloc
    
  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值