-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 に答える