查看文章 |
X86的处理器不支持NX位。但WIN的DEP信息存储在哪里,今晚看了下,贴上相关数据结构。lkd> dt _KPROCESS nt!_KPROCESS +0x000 Header : _DISPATCHER_HEADER ...... +0x06b Flags : _KEXECUTE_OPTIONS +0x06b ExecuteOptions : UChar
lkd> dt _KEXECUTE_OPTIONS nt!_KEXECUTE_OPTIONS +0x000 ExecuteDisable : Pos 0, 1 Bit +0x000 ExecuteEnable : Pos 1, 1 Bit +0x000 DisableThunkEmulation : Pos 2, 1 Bit +0x000 Permanent : Pos 3, 1 Bit +0x000 ExecuteDispatchEnable : Pos 4, 1 Bit +0x000 ImageDispatchEnable : Pos 5, 1 Bit +0x000 Spare : Pos 6, 2 Bits
一个进程的相关信息就是存储在这个地方,WIN中有俩个未导出的函数来获取或者设置相关的信息MmGetExecuteOptions,MmSetExecuteOptions, 在RING3我们也可以很方便的设置 NTDLL!NtSetInformationProcess 传入0X22号就可以了 HIPS都拦截 NtSetInformationProcess
|