-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);
    }
}

我想听听各位大师的专家意见,关于上述代码的成功程度以及优缺点是什么?

任何帮助,将不胜感激。

4

1 回答 1

5

您实际上可以保护您的算法免于调试或反编译的唯一方法是限制对其二进制文件的访问——通过在远程机器上运行它们并通过 TCP/IP 访问。任何 本地解决方案最终都会在坚定的破解者手中失败。

于 2013-01-17T09:24:27.707 回答