Un petit post rapide pour partager avec vous un petit script fait à la va vite en python mais dont le résultat est, en toute modestie, pas dégueu.

J'ai récemment résolu une petite série de crackme linux pas bien méchants mais dont l'un comprenait une quantité non négligeable de code mort. Pour le résoudre sous IDA cela prenait 2 secondes, il suffisait de regarder les blocks sautant sur le printf "bad boy" pour retrouver les 2 uniques tests faits sur le sérial. Néanmoins les conditions "normales" du challenges exigeaient de ne se servir que des outils standards et gratuits des barbus qui puent.

J'ai donc décider de coder rapidement un petit outil personnalisable permettant de transformer la sortie de objdump en quelque chose d'humainement lisible, dans le même esprit que les graphs fournit par IDA.

Pour ce faire j'ai codé un petit script python à base de regexp qui prend en paramètre la sortie de objdump et vous donne en retour un fichier .dot compilable à l'aide de graphviz.

et voila le résultat :

pyda