是否可以从内核域调试用户态应用程序?

时间:2009-06-08 20:38:17

标签: debugging winapi kernel

我正在调试一些win32应用程序,它有大量的反调试,我尝试了不同的隐形选项w / olly和IDA,但它们似乎都没有用。 我想知道是否有可能从kernelland调试这个userland应用程序,所以应用程序将不知道它正在被调试?如果是这样 - 我应该使用哪个调试器?

1 个答案:

答案 0 :(得分:1)

从内核模式调试用户模式代码绝对是可能的,但是有点复杂 - 例如在开始之前在进程中断,你需要在内核的进程创建代码或NTDLL上放置一个断点首先执行的用户模式代码。您可以尝试使用Debugging Tools for Windows中包含的内核调试程序来设置内核调试程序。

您是否尝试过无创地调试过程? WinDbg,也用于Windows的调试工具,包括一个非侵入性选项。这并没有正式附加到流程中,也不是可检测的。

但是,大多数反调试套件还应该能够检测机器上是否已启用内核调试器,或者是否正在运行windbg等非侵入式调试器。检测这些东西并不是太具挑战性。