J'ai trouvé l'astuce suivante pour utiliser si un programme utilise ptrace
pour détecter si elle est en cours d'exécution dans un débogueur:Contourner ptrace dans gdb
catch syscall ptrace
commands 1
set ($eax) = 0
continue
end
Quelqu'un peut me expliquer comment est-il efficace? J'ai essayé d'insérer i r eax
après commands 1
, mais je ne comprends pas les valeurs négatives que j'ai:
Catchpoint 1 (call to syscall ptrace), 0x00007ffff778af1e in ptrace (request=PTRACE_TRACEME) at ../sysdeps/unix/sysv/linux/ptrace.c:45
45 ../sysdeps/unix/sysv/linux/ptrace.c: No such file or directory.
eax 0xffffffda -38
Catchpoint 1 (returned from syscall ptrace), 0x00007ffff778af1e in ptrace (request=PTRACE_TRACEME) at ../sysdeps/unix/sysv/linux/ptrace.c:45
45 in ../sysdeps/unix/sysv/linux/ptrace.c
eax 0xffffffff -1