-1
在用gdb等工具进行调试之后,我对它们的实现知之甚少。我试图在我的程序中实现反调试技术,但对调试知识很少,我需要一些帮助。我曾经碰到过下面的代码从http://www.julioauto.com/rants/anti_ptrace.htm反调试技术的优势
void anti_ptrace(void)
{
pid_t child;
if(getenv("LD_PRELOAD"))
while(1);
child = fork();
if (child)
wait(NULL);
else
{
pid_t parent = getppid();
if (ptrace(PTRACE_ATTACH, parent, 0, 0) < 0)
while(1);
sleep(1);
ptrace(PTRACE_DETACH, parent, 0, 0);
exit(0);
}
}
我想有关于上述代码将取得多大成功,什么是利弊你大师专家的意见?
任何帮助,将不胜感激。
你想反调试?为什么? – Raptor
其实我正在建立一个图书馆,我不想让其他一些程序能够追踪它。它是一种强迫。 –
而不会让我简单地把你的二进制文件和修补它跳过这些东西? – yiding