一、你说的对,是应该&0x100,因为汇编代码是直接测试第二个字节(+0x69),我当时疏忽了,多谢。
7c863113 64a118000000 mov eax,dword ptr fs:[00000018h]7c863119 8b4030 mov eax,dword ptr [eax+30h]7c86311c f6406901 test byte ptr [eax+69h],1
0x100这个常量的原始定义多半没有公开过,它的含义是vrf,也就是启用App 验证器:
C:\DbgLabs\bin\Debug>gflags /i frecheck.exe +vrfCurrent Registry Settings for frecheck.exe executable are: 00000100 vrf - Enable application verifier
二、对的,这个问题已经在勘误中。
三、见325页
四、进入异常保护块时会修改trylevel变量,参见24.5.2节关于SEH编译的内容。