ptrace — API de débogage & anti-debug
★★★★★
Présentation
ptrace est l'appel système Linux qui sous-tend gdb/strace : il permet à un processus d'observer et contrôler un autre (lecture mémoire/registres, breakpoints). C'est aussi un mécanisme d'anti-debug courant.
Anti-debug via ptrace
// Un processus ne peut être tracé qu une fois.
// S auto-tracer empêche un débogueur de s attacher :
if (ptrace(PTRACE_TRACEME, 0, 0, 0) == -1)
exit(1); // déjà tracé = débogueur présent Contournement
# Forcer ptrace à retourner 0
LD_PRELOAD d un faux ptrace() -> return 0
# ou patcher l appel / poser un hook gdb :
catch syscall ptrace ; return 0
# ou patcher le binaire (NOP le check)