-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