代码之家  ›  专栏  ›  技术社区  ›  Jämes

在内核区域中检测进程是否正在调试

  •  0
  • Jämes  · 技术社区  · 5 年前

    有没有一种方法可以检测(在内核模式下)调试器(在用户模式下)附加到Windows上的另一个进程(也在用户模式下)?

    EPROCESS 一个结构来显示这些信息。理想情况下,我正在寻找一个不能在用户模式下从程序中更改的标志,尽管如此,我不知道这些信息是否也保留在内核级别。

    0 回复  |  直到 5 年前
        1
  •  1
  •   RbMm    5 年前

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

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

    哪一个 return Process->DebugPort != NULL 非常简单可靠的api,可用于任何irql(因为进程对象在非分页内存中)。

    • 图书馆: NtosKrnl.lib
    • 任何级别