我的问题:我正在查看IMAGE_SECTION_HEADER
结构的Characteristics成员。我想知道某个部分是否可执行。我将如何检查? Characteristics成员是一个DWORD
,我希望能够知道它是否包含值IMAGE_SCN_MEM_EXECUTE
(0x20000000
)。计算结果如何?我猜我必须使用模运算符,但不知道如何。
最佳答案
if (imageSectionHeader.Characteristics & IMAGE_SCN_MEM_EXECUTE)
{
// Do work here...
}
这称为 mask 。您正在使用
Characteristics
mask屏蔽IMAGE_SCN_MEM_EXECUTE
值,以查看是否设置了这些特定位。仅当在IMAGE_SCN_MEM_EXECUTE
值中还设置了Characteristics
掩码中设置的所有位时,以上条件才成立。