The Mechanism: Ptrace ptrace(2) is how a debugger can control a process long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data); PTRACE_TRACEME PTRACE_ATTACH PTRACE_KILL PTRACE_DETACH TRACE_PEEKTEXT, PTRACE_PEEKDATA PTRACE_PEEKUSER PTRACE_POKETEXT, PTRACE_POKEDATA PTRACE_POKEUSER PTRACE_GETREGS, PTRACE_GETFPREGS PTRACE_SETREGS, PTRACE_SETFPREGS PTRACE_CONT PTRACE_SYSCALL, PTRACE_SINGLESTEP Example: ptracetest