#Inspection rapide
# Métadonnées, architecture, protections
rabin2 -I ./binary
# Sections, imports, exports, symboles
rabin2 -S ./binary
rabin2 -i ./binary
rabin2 -E ./binary
rabin2 -s ./binary
# Chaînes lisibles et chaînes larges
rabin2 -z ./binary
rabin2 -zz ./binary
# Ouvrir et analyser
r2 -A ./binary
# Sans analyse (plus rapide)
r2 ./binary
#Navigation et analyse
[0x00401000]> aaa # analyse complète
[0x00401000]> afl # liste des fonctions
[0x00401000]> aflm # fonctions + métriques
[0x00401000]> s main # seek sur main
[0x00401000]> pdf # désassembler la fonction
[0x00401000]> pdc # pseudo-code (r2dec)
[0x00401000]> iz # chaînes dans les données
[0x00401000]> izz # toutes les chaînes
[0x00401000]> axt @ str.flag # références croisées
[0x00401000]> axt sym.imp.strcmp # qui appelle strcmp ?
| Commande | Effet |
|---|---|
s addr |
Se déplacer |
pd 20 |
Désassembler 20 instructions |
px 64 |
Hexdump 64 octets |
ps |
Chaîne à l'adresse |
af |
Analyser la fonction courante |
afl |
Lister les fonctions |
axt |
Xrefs vers une adresse |
axf |
Xrefs depuis une fonction |
#Mode visuel
V # mode visuel
Vv # graphique
p # changer de vue (disasm, hex, debug)
/ # rechercher
: # commande r2
q # quitter
#Debug et patch
# Debug
r2 -d ./binary
[0x...]> db main # breakpoint
[0x...]> dc # continue
[0x...]> dso # step over
[0x...]> dr # registres
[0x...]> px 64 @ rsp # stack
[0x...]> dm # mappings
# Patcher un saut conditionnel (NOP)
r2 -w ./binary
[0x...]> s 0x00401234
[0x...]> wa nop
[0x...]> wao nop # NOP une instruction entière
[0x...]> wc # écrire les changements
#Plugins utiles
r2pm update
r2pm -ci r2ghidra # décompilateur Ghidra dans r2
r2pm -ci r2dec # décompilateur r2dec
r2pm -ci r2frida # pont Frida
[0x...]> pdg # pseudo-code Ghidra
[0x...]> pdd # pseudo-code r2dec