PE节表头

总是在PE文件头开始的偏移00f8h处。

 typedef struct _IMAGE_SECTION_HEADER

{

BYTE Name1[IMAGE_SIZEOF_SHORT_NAME]; // 8个字节 节表名称,如“.text”

//IMAGE_SIZEOF_SHORT_NAME=8

union
{

DWORD PhysicalAddress; // 物理地址 节区尺寸  未对齐前的实际大小 

DWORD VirtualSize; // 真实长度,这两个值是一个联合结构,可以使用其中的任何一个,一般是取后一个

} Misc;

DWORD VirtualAddress; // 内存中节区的起始地址(RVA)

DWORD SizeOfRawData; // 在文件中对齐后的尺寸

DWORD PointerToRawData; // 在文件中的偏移量

DWORD PointerToRelocations; // 在OBJ文件中使用,重定位的偏移

DWORD PointerToLinenumbers; // 行号表的偏移(供调试使用地)

WORD NumberOfRelocations; // 在OBJ文件中使用,重定位项数目

WORD NumberOfLinenumbers; // 行号表中行号的数目

DWORD Characteristics; // 节属性如可读,可写,可执行等
} IMAGE_SECTION_HEADER,*PIMAGE_SECTION_HEADER;

Characterisitics

#define IMAGE_SCN_CNT_CODE                  0x00000020  //节中保含代码
#define IMAGE_SCN_CNT_INTIALIZED_DATA       0x00000040  //节中包含已初始化代码
#define IMAGE_SCN_CNT_UNINITIALIZED_DATA    0x00000080  //节中包含未初始化代码
#define IMAGE_SCN_MEM_DISCARDABLE           0x02000000  //节中的数据在进程开始以后被丢弃
#define IMAGE_SCN_MEM_NOT_CACHED            0x04000000  //节中的数据不会经过缓存
#define IMAGE_SCN_MEM_NOT_PAGED             0x08000000  //节中的数据不会被交换到磁盘
#define IMAGE_SCN_MEM_SHAEED                0x10000000  //节中的数据将被不同的进程所共享
#define IMAGE_SCN_MEM_EXECUTE               0x20000000  //映射到内存后的页面包含可执行属性
#define IMAGE_SCN_MEM_READ                  0x40000000  //映射到内存后的页面包含可读属性
#define IMAGE_SCN_MEM_WRITE                 0x80000000  //映射到内存后的页面包含可写属性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值