反调试技术的优势

Awa*_*ais -1 c linux debugging ptrace process

以前习惯使用像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);
    }
}
Run Code Online (Sandbox Code Playgroud)

我想对你的专家有关于上述代码有多成功以及优缺点的专家意见?

任何帮助,将不胜感激.

Spo*_*ook 5

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