Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Tools reverse:
- - radare2:
- - utilisation de r2pipe pour le scripting (n'importe quel langage de prog)
- - Permet d'automatiser l'analyse statique si jamais un binaire implémente des obfus ou quoi que ce soit.
- - Permet aussi de bf comme un gros malade au lieu d'utiliser gdb.
- - gère très bien n'importe quel type de fichier ou archi obscure
- - certaines commandes sont utiles pour dump des trucs (ex: pc?). Il faut prendre le temps de s'amuser avec.
- - Binary ninja:
- - Pour une analyse plus sérieuse et stable (les projets de r2 sont pas archi stables)
- - API python ultra classe et beaucoup plus sérieuse que r2pipe
- - Peut faire du patching vraiment simplement
- - Ghidra:
- - Pour le decompilo (même s'il est un peu en carton sur certains points)
- - Le bindiffing est aussi sympa (si jamais un executable est patch en mémoire on dump et regarde ce qui change)
- - L'API de plugin/scripting est beaucoup plus fat et pro que tous les autres tools mais la doc est pas top.
- C'est également difficile de scripter quelque chose de rapide.
- - Z3:
- - Permet de solve des systèmes de contraintes.
- - Utile pour les crackmes avec un serial pas trop chaud.
- - Utile quand un tool d'exec symbolique est pas assez opti (on peut créer un solver custom qui génère du Z3).
- - Binding python donc c'est grave cool
- - angr:
- - Framework d'analyse de binaire
- - Permet de faire vraiment plein de bonnes choses même si l'atout principal est l'execution symbolique.
- - L'execution symbolique permet en gros de lancer le prog sur un morceau d'assembly, lui dire d'aller
- vers tel block et d'éviter tels blocks. Il va automatiquement générer des contraintes pour que l'input
- permettent d'arriver au block voulu. Le seul problême c'est que c'est assez complexe à comprendre et
- qu'il faut lui macher le taff 90% du temps. Mais ça permet de solve certains crackmes automatiquement si
- on s'y prend bien.
- - unicorn:
- - Emulateur de plusieurs cpus (un peu prêt tout ce que supporte qemu).
- - Emule des morceaux d'assembly. Assez utile quand on a la flemme de reproduire un morceau d'assembly qui fait
- des operations bizarres (empêche de faire quelques erreurs du coup). On peut facilement sur certains challenges
- faire un script de bruteforce en utilisant seulement la partie du code qu'on veut.
- - Bindings dans plein de langages.
- - Le seul désavantage est que ça emule que de l'assembly et rien d'autre. Donc si tu veux charger un elf/PE faut
- le faire à la main.
- - Si tu veux t'amuser à faire un tracer tu peux même dump toutes les pages d'un programme et les emuler, ça marche
- bien.
- - frida:
- - Ultra utile pour manipuler des process.
- - Tu peux injecter de script js qui peuvent hook les fonctions, lire/modifier les args, lire la mémoire, les regs, etc...
- - gdb:
- - Les dernières versions de gdb supportent le scripting python. Il y a pas beaucoup de docs mais c'est grave cool.
- - pwndbg/gef/peda ajoutent des features archi sympa qui peuvent s'avérer cool en reverse.
- - pin:
- - Certains challs peuvent être flag assez facilement avec du side channel au niveau du nombre d'instructions (certaines vm).
- En utilisant le tool inscount on peut compter les instructions et donc faire du sidechannel.
- - Je conseille de regarder l'api de pin car il y a plein de trucs possibles à faire avec.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement