Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. Tools reverse:
  2. - radare2:
  3. - utilisation de r2pipe pour le scripting (n'importe quel langage de prog)
  4. - Permet d'automatiser l'analyse statique si jamais un binaire implémente des obfus ou quoi que ce soit.
  5. - Permet aussi de bf comme un gros malade au lieu d'utiliser gdb.
  6. - gère très bien n'importe quel type de fichier ou archi obscure
  7. - certaines commandes sont utiles pour dump des trucs (ex: pc?). Il faut prendre le temps de s'amuser avec.
  8. - Binary ninja:
  9. - Pour une analyse plus sérieuse et stable (les projets de r2 sont pas archi stables)
  10. - API python ultra classe et beaucoup plus sérieuse que r2pipe
  11. - Peut faire du patching vraiment simplement
  12. - Ghidra:
  13. - Pour le decompilo (même s'il est un peu en carton sur certains points)
  14. - Le bindiffing est aussi sympa (si jamais un executable est patch en mémoire on dump et regarde ce qui change)
  15. - L'API de plugin/scripting est beaucoup plus fat et pro que tous les autres tools mais la doc est pas top.
  16. C'est également difficile de scripter quelque chose de rapide.
  17. - Z3:
  18. - Permet de solve des systèmes de contraintes.
  19. - Utile pour les crackmes avec un serial pas trop chaud.
  20. - Utile quand un tool d'exec symbolique est pas assez opti (on peut créer un solver custom qui génère du Z3).
  21. - Binding python donc c'est grave cool
  22. - angr:
  23. - Framework d'analyse de binaire
  24. - Permet de faire vraiment plein de bonnes choses même si l'atout principal est l'execution symbolique.
  25. - L'execution symbolique permet en gros de lancer le prog sur un morceau d'assembly, lui dire d'aller
  26. vers tel block et d'éviter tels blocks. Il va automatiquement générer des contraintes pour que l'input
  27. permettent d'arriver au block voulu. Le seul problême c'est que c'est assez complexe à comprendre et
  28. qu'il faut lui macher le taff 90% du temps. Mais ça permet de solve certains crackmes automatiquement si
  29. on s'y prend bien.
  30. - unicorn:
  31. - Emulateur de plusieurs cpus (un peu prêt tout ce que supporte qemu).
  32. - Emule des morceaux d'assembly. Assez utile quand on a la flemme de reproduire un morceau d'assembly qui fait
  33. des operations bizarres (empêche de faire quelques erreurs du coup). On peut facilement sur certains challenges
  34. faire un script de bruteforce en utilisant seulement la partie du code qu'on veut.
  35. - Bindings dans plein de langages.
  36. - 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
  37. le faire à la main.
  38. - Si tu veux t'amuser à faire un tracer tu peux même dump toutes les pages d'un programme et les emuler, ça marche
  39. bien.
  40. - frida:
  41. - Ultra utile pour manipuler des process.
  42. - Tu peux injecter de script js qui peuvent hook les fonctions, lire/modifier les args, lire la mémoire, les regs, etc...
  43. - gdb:
  44. - Les dernières versions de gdb supportent le scripting python. Il y a pas beaucoup de docs mais c'est grave cool.
  45. - pwndbg/gef/peda ajoutent des features archi sympa qui peuvent s'avérer cool en reverse.
  46. - pin:
  47. - Certains challs peuvent être flag assez facilement avec du side channel au niveau du nombre d'instructions (certaines vm).
  48. En utilisant le tool inscount on peut compter les instructions et donc faire du sidechannel.
  49. - 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