PE节表属性

PE节表


每一个节表里都是一个结构体数组

#define IMAGE_SIZEOF_SHORT_NAME              8
typedef struct _IMAGE_SECTION_HEADER {
    BYTE    Name[IMAGE_SIZEOF_SHORT_NAME];						//ASCLL字符串,可以自定义,只截取8个 (当前节的名字)
    union {														//Misc 双字是该节在没有对齐前的真实尺寸,该值可以不准确
            DWORD   PhysicalAddress;
            DWORD   VirtualSize;
    } Misc;
    DWORD   VirtualAddress;										//在内存中的偏移地址,加上lmageBase才是在内存中的真正地址
    DWORD   SizeOfRawData;										//节在文件中对齐后的尺寸
    DWORD   PointerToRawData;									//节在文件中的偏移
    DWORD   PointerToRelocations;								//调试相关
    DWORD   PointerToLinenumbers;								//调试相关
    WORD    NumberOfRelocations;								//调试相关
    WORD    NumberOfLinenumbers;								//调试相关
    DWORD   Characteristics;									//节的属性
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;

在这里插入图片描述

DWORD Characteristics 值的属性

5	IMAGE_SCN_CODE												//节中包含代码
6	IMAGE_SCN_CNT_INTIALIZED_DATA								//节中包含已初始化数据
7	IMAGE_SCN_CUT_UNINITIALIZED_DATA							//节中包含未初始化数据
8	IMAGE_SCN_LNK_OTHER											//保留供将来使用
25	IMAGE_SCN_MEM_DISCARDABLE									//节中的数据在进程开始以后将被丢弃,如.reloc
26	IMAGE_SCN_MEM_NOT_CACHED									//节中的数据不会经过缓存
27	IMAGE_SCN_MEM_NOT_PAGED										//节中的数据不会被交换到磁盘
28	IMAGE_SCN_MEM_SHARED										//表示节中的数据将被不同的进程所共享
29	IMAGE_SCN_MEM_EXECUTE										//映射到内存后的页面包含可执行的属性
30	IMAGE_SCN_MEM_READ											//映射到内存后的页面包含可读属性
31	IMAGE_SCN_MEM_WRITE											//映射到内存后的页面包含可写属性

节的属性

60000020(转成二进制)

0110 0000 0000 0000 0000 0000 0010 0000

第六位为1:节中包含已初始化数据
第三十位为1:映射到内存后的页面包含可读属性
第三十一位为1:映射到内存后的页面包含可写属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值