---
title: radare2
description: "Désassembler, analyser et patcher un binaire depuis le terminal avec r2 et rabin2."
category: reverse
kind: tool
tags: [disassembly, reversing, elf, patching, r2]
level: intermediate
updated: 2026-11-03
order: 1
aliases: ["r2", "radare", "rabin2"]
---

## Inspection rapide

```bash
# 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
```

```bash
# Ouvrir et analyser
r2 -A ./binary

# Sans analyse (plus rapide)
r2 ./binary
```

## Navigation et analyse

```text
[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

```text
V        # mode visuel
Vv       # graphique
p        # changer de vue (disasm, hex, debug)
/        # rechercher
:        # commande r2
q        # quitter
```

## Debug et patch

```bash
# Debug
r2 -d ./binary
```

```text
[0x...]> db main          # breakpoint
[0x...]> dc               # continue
[0x...]> dso              # step over
[0x...]> dr               # registres
[0x...]> px 64 @ rsp      # stack
[0x...]> dm               # mappings
```

```bash
# Patcher un saut conditionnel (NOP)
r2 -w ./binary
```

```text
[0x...]> s 0x00401234
[0x...]> wa nop
[0x...]> wao nop          # NOP une instruction entière
[0x...]> wc               # écrire les changements
```

## Plugins utiles

```bash
r2pm update
r2pm -ci r2ghidra        # décompilateur Ghidra dans r2
r2pm -ci r2dec           # décompilateur r2dec
r2pm -ci r2frida         # pont Frida
```

```text
[0x...]> pdg              # pseudo-code Ghidra
[0x...]> pdd              # pseudo-code r2dec
```

> [!TIP]
> Pour un crackme simple : `aaa`, `afl`, `s main`, `pdf`, `izz`, puis cherche `strcmp`, `memcmp` ou les messages de succès. Les xrefs (`axt`) mènent presque toujours à la vérification.

> [!WARNING]
> Patcher un binaire signé casse la signature et peut déclencher un EDR. Travaille toujours sur une copie et vérifie les checksums avant/après.
