debugging 检测是否正在调试进程;在核心地带

cczfrluj  于 2023-03-19  发布在  其他
关注(0)|答案(1)|浏览(126)

是否有一种方法可以检测(在内核模式下)调试器(在用户模式下)是否连接到Windows上的另一个进程(也在用户模式下)?
我在EPROCESS结构中找不到任何API或标志来揭示这些信息,理想情况下,我在寻找一个不能从用户模式的程序中更改的标志,但我不知道这些信息是否也保存在内核级别。
谢谢!

h43kikqp

h43kikqp1#

存在(来自xp)未记录的API

extern "C"
NTKERNELAPI
BOOLEAN
PsIsProcessBeingDebugged(PEPROCESS Process);

其中return Process->DebugPort != NULL非常简单可靠的API,可以用在任何irql上(因为Process对象在非分页内存中).

***存储库:***NtosKrnl.lib *
***IRQL:***任何级别 *

相关问题