Un debugger est un outil fabuleux : cette sensation de contrôle divin ! La possibilité de figer l'exécution d'un process et d'inspecter les arcanes de sa mémoire.
C'était les deux phrases lyriques de cet article :) Nous verrons que le divin n'est qu'une machinerie bien huilée.
Le débugger est un outil que j'utilise quotidiennement. Je trouve important d'en comprendre les mécanismes sous-jacents. Ecrire un concurrent à GDB n'est certainement pas la meilleur façon d'utiliser son temps libre. En revanche écrire un POC de débugger est certainement la manière la plus didactique d'apprendre ! Et c'est ce que je vous propose aujourd'hui, d'écrire un petit debugger pas super pratique mais fonctionnel.
Concernant le fond, cet article ne traite que de Linux sous architecture x86_64. Il part du principe que vous avez de vagues notions sur ce qu'est :