检测进程是否被调试;在核心地带
Detect whether a process is being debugged; in kernel land
有没有办法检测(在内核模式下)调试器(在用户模式下)附加到 Windows 上的另一个进程(也在用户模式下)?
我在 EPROCESS
结构中找不到任何 API 或标志可以显示此信息。理想情况下,我正在寻找一个不能从用户模式下的程序更改的标志,但我不知道此信息是否也保存在内核级别。
谢谢!
存在(来自 xp)未记录 api
extern "C"
NTKERNELAPI
BOOLEAN
PsIsProcessBeingDebugged(PEPROCESS Process);
其中 return Process->DebugPort != NULL
非常简单可靠 api,可以在任何 irql 中使用(因为 Process 对象不在分页内存中)。
- 图书馆: NtosKrnl.lib
- IRQL: 任意级别
有没有办法检测(在内核模式下)调试器(在用户模式下)附加到 Windows 上的另一个进程(也在用户模式下)?
我在 EPROCESS
结构中找不到任何 API 或标志可以显示此信息。理想情况下,我正在寻找一个不能从用户模式下的程序更改的标志,但我不知道此信息是否也保存在内核级别。
谢谢!
存在(来自 xp)未记录 api
extern "C"
NTKERNELAPI
BOOLEAN
PsIsProcessBeingDebugged(PEPROCESS Process);
其中 return Process->DebugPort != NULL
非常简单可靠 api,可以在任何 irql 中使用(因为 Process 对象不在分页内存中)。
- 图书馆: NtosKrnl.lib
- IRQL: 任意级别