我的问题:我正在查看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掩码中设置的所有位时,以上条件才成立。

09-06 22:53