有时,我尝试将Ollydbg附加到对调试器有一定保护的应用程序,但是我从未编写过任何这些应用程序的代码,并且在许多应用程序中都没有看到这种保护...所以看起来绕过它并不难,但是我很好奇,从来没有尝试过。你们好吗? (至少是一些简单程序的示例)。

预先感谢。

评论

您指的是哪种反调试保护?测试ptrace只能使用将在代码中本地化的测试来完成。而且,我不确定附加到正在运行的软件是否会导致写入0xcc(是吗?)。因此,检测到源代码修改的自检例程将失败。.我的猜测是,将调试器附加到程序并以安全模式停止时,您只需要幸运。
完全取决于平台。在Windows上,一个常见的技巧是在连接调试器后立即修补内核调用的某些例程(在ntdll中)。一种解决方案是在附加之前简单地在内存中还原ntdll。我认为这个问题很棘手,您能更具体一点吗?

#1 楼

反连接在很大程度上取决于Windows在目标
进程中创建远程线程的事实。通常使用此线程的特定功能来检测连接。例如:
Windows为连接线程选择的入口点默认是“ DbgUiRemoteBreakin”功能。反连接技巧通常会钩住此功能或其同级功能“ DbgBreakPoint”功能。

调试块,NtContinue,ThreadHideFromDebugger等。

http://waleedassar.blogspot.de/2011/12/ debuggers-anti-attaching-techniques.html
http://waleedassar.blogspot.de/2011/12/debuggers-anti-attaching-techniques_11.html
http://waleedassar.blogspot.de/ 2011/12 / debuggers-anti-attaching-techniques_13.html
http://waleedassar.blogspot.de/2012/02/debuggers-anti-attaching-techniques_15.html
http:// waleedassar。 blogspot.de/2012/11/sizeofstackreserve-as-anti-attaching.html