Vibe Reverser – A reverse engineer AI agent

Non importa se funziona, l’importante è che il vibe sia giusto!

L’idea è semplice: dentro un container Docker, l’agente si installa da solo tutto l’arsenale da vero reverse engineer, da radare2 a gdb, passando per binwalk, xxd e compagnia bella.

Poi prendi un binario, gli dici “ehi, analizza questo e dimmi come non farlo esplodere”, e lui inizia a produrre disassemblati, log e perfino un report PDF bello pronto. Perfetto da mostrare al capo oppure da usare per fare colpo con studentesse e studenti di ingegneria informatica.

Crack me, baby!

Per testare questa meraviglia gli ho fatto affrontare diverse challenge di crack-me. Spoiler: se l’è cavata niente male!

Prendiamo il classico esercizio della “bomba” da disinnescare.

Abbiamo un binario ELF strippato, quindi senza simboli di debug (già qui lo studente medio di ingegneria inizia a deprimersi), che quando lo lanci esplode subito con un bel messaggio: “Sono esploso!”. L’obiettivo? Farlo sopravvivere.

Ovviamente ci sono vari modi per riuscirci, ma la challenge chiede esplicitamente di non fare binary patching, ovvero di non girare i salti condizionali (JE , JNE, ecc). Quindi diciamo alla nostra creatura di non farlo. Bisognerà trovare una strada diversa, trovare una password, fare lib preloading, ecc, ma noi non gli diciamo niente di tutto ciò e lasciamo che trovi la sua strada (per l’inferno).

Avviamo l’agente dicendogli semplicemente:

Analyze the target file ./target/bingus and find a way to prevent it from exploding without a binary-patch.

Il fascino del caos incontrollato

A questo punto lui parte: tribola, disassembla, riflette e vomita a schermo tutto il vibe possibile, fino a mettere insieme la soluzione. Il tutto condito con un bel report ordinato.

Nel report ci rivela che la soluzione è lanciare il programma passandogli un parametro “pp” per non farlo esplodere, ed effettivamente è così.

Bello vero?

Se vuoi provarlo, trovi tutto sul mio GitHub. Prima di avviarlo leggiti il README, soprattutto il paragrafo “SECURITY”. Oppure fregatene: tanto lo sai già, l’importante è che il vibe sia giusto!