【问题标题】:Is there any way to identify the process that is debugging my process?有什么方法可以识别正在调试我的进程的进程吗?
【发布时间】:2021-12-26 17:42:26
【问题描述】:

如果你在网上查一下Anti-Debug,你会发现很多信息。例如,在搜索中找到了 isDebuggerPresent 和 NtGlobalFlags。但是,我的进程只能通过在检测到它时终止自己的进程来保护自己免受调试器的影响。 我想知道如何首先防止调试器附加,或者如何识别和分离调试器进程。

【问题讨论】:

  • 一个坚定的攻击者会绕道IsDebuggerPresent 寻找被调试的进程并且总是返回false。简而言之,如果攻击者拥有本地管理员权限(或可以获得它们),则无法阻止攻击。
  • 这意味着我无法抗拒调试器。感谢您的回答。
  • 可能,如果调试器不阻止你,确定你的进程是否被调试,确定的进程,它调试你的进程并分离调试器(如果我们说本地,用户模式调试器)。但当然 - 调试器可以阻止你这样做
  • 我无法抗拒调试器。 - 可能会为调试器(调试您的进程的人)制造问题。那么一切都取决于他,取决于他的资格和经验
  • 这是一个 XY 问题。我认为你需要的是一种进程加密机制。如果您希望您的流程不被黑客入侵。

标签: c++ windows debugging winapi anti-debugging


【解决方案1】:

我想知道如何首先阻止调试器附加,或者如何识别和分离调试器进程。

  1. 没有办法做到这一点。
  2. 即使有,调试器也可以在附加和分离之间对您的进程做很多事情——更改全局数据、更改函数指针、创建新线程、注入 DLL 等。

    因此,即使您可以分离调试器,您不应该在这样做之后信任您的进程的完整性。

【讨论】:

  • 好吧,谢谢,事实证明 Windows 很容易受到调试器的攻击。
  • 此外,您甚至可以通过几种不同的方式在不附加调试器的情况下完成上述所有操作。
  • 不确定您所说的“非常容易受到调试器的攻击”是什么意思。能够调试自己的进程没有漏洞。调试器可以完全控制被调试的进程——例如,它可以删除检查调试器的代码!
  • @azu 说 “Windows 很容易受到调试器的攻击” 就像说挂锁很容易受到钥匙的攻击。
猜你喜欢
  • 2011-12-13
  • 2011-01-19
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多