什么样的反调试技术不允许附加用户模式调试器?

What kind of anti-debugging technique doesn't allow attaching with usermode debugger?

我目前正在学习恶意软件用来防止调试的不同技术,我遇到了一个我似乎无法真正理解的问题。我目前正在尝试找出并调试的这个恶意软件使用了某种反调试技术,它不允许我首先附加调试器。 我尝试过使用诸如 Scylla-hide 之类的东西,我也尝试过手动进入并挂钩常见的反调试 API 调用以查看发生了什么,但到目前为止还没有成功。我还尝试使用 WinDbg,希望它能给我一些错误消息,我可以摆脱它,它给了我这个: WinDbg output when trying to debug program

所以这让我想到它正在做一些事情来阻止线程启动,这就是导致任何调试器无法附加的原因。我还尝试使用典型的 LoadLibrary CreateRemoteThreadEx 技术注入 DLL,但似乎它也不允许我以这种方式创建线程。我已经尽可能多地研究了反调试,但似乎找不到答案。任何朝着正确方向的推动都将不胜感激。

我希望能够在用户模式下绕过这个问题,因为我试图了解它到底做了什么来阻止我调试而不是简单地绕过它。第一次提问,有什么不明白的请见谅。

这是 Peter Ferrie 的实际反调试参考,这是一个了不起的资源:https://anti-reversing.com/Downloads/Anti-Reversing/The_Ultimate_Anti-Reversing_Reference.pdf

它包含几乎所有已知的反调试方法,您可以使用此参考并从列表中勾选每个方法,直到找到已实现的方法,这本书还应该帮助您轻松缓解每个方法。

根据我们在评论中的对话,您的问题的答案是该进程挂钩了 DbgBreakPoint 和 DbgUiRemoteBreakig。修补它们使您能够附加调试器。