反调试和反反调试

Windows和Linux下的反调试和反反调试

反调试其实没什么有意思的,只不过是程序寻找各类调试痕迹或者调用各种API来反调试罢了.所以对于逆向手来说,重点在于了解有什么API和手段.

至于为什么强调Windows和Linux,是因为还有安卓,它的反调试稍微不太一样.

目前来说,这篇文章是我看过最全的总结,不只有反调试实际上:原创反调试技术总结-看雪

文章中一些模棱两可的地方我下面进行了补充,但都是各类资料看来的,并没有考据,有可能有错误.

  • 文章中IsdebuggerPresent部分说:IsDebuggerPresent查询进程环境块(PEB)中的IsDebugged标志。

    这里的IsDebugged应该指PEB+0x2的BeingDebugged位.

  • 文章中OutputDebugString的调用原理是,调试器不存在则OutputDebugString调用失败,错误码被修改,以此来检测调试器.GetLastError这章都是如此.

  • 文章中关于DebugActiveProcessStop所说的分离,在微软的文档的说明就是指停止进程.

posted @ 2025-08-30 14:02  T0fV404  阅读(5)  评论(0)    收藏  举报