Kernel flag
表示flag立即生效without requiring a reboot
Registry flag requires a reboot
使标志生效
内核没有任何可能挂起的 gui。
术语 windows 并不意味着内核,而是正在运行的应用程序的 gui 窗口
检查您的操作系统中的 NtSetSystemInformation 以了解为什么 0x8 不生效
基本上这个 api 里面有一些硬编码的幻数,它测试 GlobalFlag 更改的每个请求,并在 xp-sp3 中允许或禁止它们这个幻值是0B2319BF0
所以任何小于 0x10 的标志都将被禁止并在挂起 gui 上停止是 0x8 所以它无效,您不能从注册表选项卡中设置它
所以实际上没有办法设置这个标志
nt!NtSetSystemInformation+0x193:
80606009 8b03 mov eax,dword ptr [ebx] ds:0023:001285f8=00000008 <---- +shg
8060600b 25f09b31b2 and eax,0B2319BF0h < magic value in nt
80606010 8945a0 mov dword ptr [ebp-60h],eax ss:0010:fb569cf0=00000000
80606013 8b0d6c125580 mov ecx,dword ptr [nt!NtGlobalFlag (8055126c)] ds:0023:8055126c=00000000
80606019 81e10f64ce4d and ecx,4DCE640Fh <--another magic value both these magic values orred together
will be 0xffffffff covers the whole range of flags
8060601f 0bc1 or eax,ecx
80606021 8945a0 mov dword ptr [ebp-60h],eax ss:0010:fb569cf0=00000000
80606024 a36c125580 mov dword ptr [nt!NtGlobalFlag (8055126c)],eax ds:0023:8055126c=00000000