节表属性格式分析

判断 属性 if (Characteristics & IMAGE_SCN_TYPE_NO_PAD){   } //   错误
                                                   if ( IMAGE_SCN_TYPE_NO_PAD== (Characteristics & IMAGE_SCN_TYPE_NO_PAD)){   } // 
                                  因为属性定义有可能是 11000B(多个1),仅判断返回为真就认为有此属性是不够的。
                                 
                                  关于 对齐:最大的即是 对齐数,如下图:
                                图片 


结构:

Characteristics

The characteristics of the image. The following values are defined.

Flag Meaning
0x00000000

Reserved.

0x00000001

Reserved.

0x00000002

Reserved.

0x00000004

Reserved.

IMAGE_SCN_TYPE_NO_PAD 0x00000008

The section should not be padded to the next boundary. This flag is obsolete and is replaced by IMAGE_SCN_ALIGN_1BYTES.

0x00000010

Reserved.

IMAGE_SCN_CNT_CODE 0x00000020

The section contains executable code.

IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040

The section contains initialized data.

IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080

The section contains uninitialized data.

IMAGE_SCN_LNK_OTHER 0x00000100

Reserved.

IMAGE_SCN_LNK_INFO 0x00000200

The section contains comments or other information. This is valid only for object files.

0x00000400

Reserved.

IMAGE_SCN_LNK_REMOVE 0x00000800

The section will not become part of the image. This is valid only for object files.

IMAGE_SCN_LNK_COMDAT 0x00001000

The section contains COMDAT data. This is valid only for object files.

0x00002000

Reserved.

IMAGE_SCN_NO_DEFER_SPEC_EXC 0x00004000

Reset speculative exceptions handling bits in the TLB entries for this section.

IMAGE_SCN_GPREL 0x00008000

The section contains data referenced through the global pointer.

0x00010000

Reserved.

IMAGE_SCN_MEM_PURGEABLE 0x00020000

Reserved.

IMAGE_SCN_MEM_LOCKED 0x00040000

Reserved.

IMAGE_SCN_MEM_PRELOAD 0x00080000

Reserved.

IMAGE_SCN_ALIGN_1BYTES 0x00100000

Align data on a 1-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_2BYTES 0x00200000

Align data on a 2-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_4BYTES 0x00300000

Align data on a 4-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_8BYTES 0x00400000

Align data on a 8-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_16BYTES 0x00500000

Align data on a 16-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_32BYTES 0x00600000

Align data on a 32-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_64BYTES 0x00700000

Align data on a 64-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_128BYTES 0x00800000

Align data on a 128-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_256BYTES 0x00900000

Align data on a 256-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_512BYTES 0x00A00000

Align data on a 512-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_1024BYTES 0x00B00000

Align data on a 1024-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_2048BYTES 0x00C00000

Align data on a 2048-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_4096BYTES 0x00D00000

Align data on a 4096-byte boundary. This is valid only for object files.

IMAGE_SCN_ALIGN_8192BYTES 0x00E00000

Align data on a 8192-byte boundary. This is valid only for object files.

IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000

The section contains extended relocations. The count of relocations for the section exceeds the 16 bits that is reserved for it in the section header. If the NumberOfRelocations field in the section header is 0xffff, the actual relocation count is stored in theVirtualAddress field of the first relocation. It is an error if IMAGE_SCN_LNK_NRELOC_OVFL is set and there are fewer than 0xffff relocations in the section.

IMAGE_SCN_MEM_DISCARDABLE 0x02000000

The section can be discarded as needed.

IMAGE_SCN_MEM_NOT_CACHED 0x04000000

The section cannot be cached.

IMAGE_SCN_MEM_NOT_PAGED 0x08000000

The section cannot be paged.

IMAGE_SCN_MEM_SHARED 0x10000000

The section can be shared in memory.

IMAGE_SCN_MEM_EXECUTE 0x20000000

The section can be executed as code.

IMAGE_SCN_MEM_READ 0x40000000

The section can be read.

IMAGE_SCN_MEM_WRITE 0x80000000

The section can be written to.


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值