Custom Linux Debugger
Engineered a native Linux debugger from scratch in C supporting software breakpoints (int3 opcode injection), CPU register inspection via PTRACE_GETREGS, arbitrary virtual memory reads and writes, and single-step machine instruction execution tracing. Implemented process tracing and parent-child execution control leveraging the Linux ptrace(2) system interface. Incorporated an ELF parser for symbol resolution, dynamic relocation inspection, and segment layout analysis.
00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF............| 00000010 02 00 3e 00 01 00 00 00 40 10 40 00 00 00 00 00 |..>.....@.@.....| 00000020 40 00 00 00 00 00 00 00 a8 31 00 00 00 00 00 00 |@........1......| 00000030 00 00 00 00 40 00 38 00 09 00 40 00 1f 00 1e 00 |....@.8...@.....|