gdb / pwndbg Mind Map

Ogni Reverser/Exploit Developer così come qualsiasi appassionato che voglia analizzare un programma in esecuzione, e comprenderne i dettagli al bit, si affida tipicamente ad un debugger.

Alcuni dei più conosciuti strumenti per questo scopo sono: x64dbg, WinDBG, Immunity Debugger, OllyDBG per quanto riguarda Windows, e il famosissimo GNU Debugger (gdb) su ambiente Linux.

By Original: Jamie Guinan Vectorization: Lunavorax (talk · contribs) – This file was derived from: Archer.jpg:, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=65338278

GDB è davvero minimale nell’utilizzo e per ottenere le informazioni base sul processo in debugging bisogna ricorrere ad una miriade di comandi. Sicuramente è un bell’esercizio mentale se lo volete usare nudo e crudo. Per quanto mi riguarda penso che il gioco non valga la candela.

Per questo motivo, ad eccezione di rarissimi casi in cui non mi è possibile, utilizzo GDB con installato il plugin pwndbg.

A detta del suo autore “pwndbg is a GDB plug-in that makes debugging with GDB suck less, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers and exploit developers.“, come dargli torto…

Chi ogni giorno si imbatte in sessioni di reversing, o debugging in generale, troverà in questo plugin un validissimo aiuto per compensare le mancanze di GDB in termini di usabilità.

Parlando di gdb personalmente ritengo che, anche con PwnDBG, si tratta comunque di uno strumento complesso, con un bel po’ di comandi da ricordare. Nel corso del tempo mi sono spesso ritrovato a dover cercare online lo specifico comando necessario per fare quel “qualcosa”. Talvolta la pagina del manuale non mi è stata sufficiente e sono dovuto ricorrere ad esempi di utilizzo sui vari blog.

In questo modo ho perso spesso e volentieri del tempo prezioso solo per non essermi ricordato il comando specifico, o semplicemente qualche maledetta virgola che non sapevo ci volesse per separare due campi.

Ok, ci sono gli helper per singolo comando, ma comunque avere una visione d’insieme e una veloce mappa per avere le cose più comuni [e non 😉 ] sott’occhio a volte, sinceramente, mi è mancata.

Per questo motivo ho deciso, nel tempo, di crearmi una mind map con i comandi che ritengo più utili di GDB e PwnDBG. Sicuramente non è esauriente. Gdb, sia con pwndbg installato, che senza, è uno strumento che permette un controllo completo e molto granulare del processo sotto debug. Questo è vero al punto tale che riportare in una mappa mentale tutti i comandi sarebbe un’impresa folle, se non addirittura inutile. Infatti già così la mind map non è piccola, immaginatela quattro se non cinque volte più grande, sarebbe ingestibile e dispersiva.

GDB/PwnDBG Mind Map sample

Ho deciso di rendere pubblica la mind map per permettere sia ai novizi, che ai più esperti di trarne qualche beneficio. Trattandosi di un primo rilascio eventuali suggerimenti / correzioni sarebbero graditi.

Links per il download (media e alta risoluzione):

  • PDF [~160KB] – Link
    • SHA256: 2bb6d293912ad78e4fa2bedf4b7f6f14b6d0853d757174233707701c1742d486
  • Medium resolution PNG [~8MB] – Link
    • SHA256: 9172cbf87519e3665d4d4803b774d6462905c1127158fb3f74a7c1924c33c8ef
  • High resolution PNG [~12MB] – Link
    • SHA256: 26b2311a607f5d1f15976dc6af5d52519615525d8ede942ac5161a96c4a7bf22
  • Ultra High resolution PNG [~21MB] – Link
    • SHA256: 5bd002ef38ebb2d0cd762518ef72de03bb23597405429bc1d707fa616eb6fd92

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.