> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/docs/ingenieria-inversa/radare2.md).

# Radare2

## Introducción

**Radare2** (R2) es una poderosa suite de herramientas de ingeniería inversa y análisis binario. Permite desensamblar, depurar, editar binarios, analizar estructuras en memoria y más, todo desde la línea de comandos.

Aunque su curva de aprendizaje es empinada, R2 ofrece un control extremadamente granular sobre los binarios, lo que lo convierte en una herramienta preferida por **hackers, CTFers y analistas de malware**.

***

## ¿Qué es Radare2?

Radare2 es un framework open source de análisis binario multiplataforma. A diferencia de herramientas como Ghidra o IDA Pro, Radare2 es completamente de línea de comandos (aunque tiene interfaces visuales como `r2ui` y `Cutter`, una GUI moderna basada en él).

Incluye herramientas para:

* Desensamblado
* Depuración
* Análisis estático y dinámico
* Modificación de binarios
* Reversing de malware
* Ingeniería inversa de firmware

***

## Instalación

#### En Debian/Ubuntu/ParrotOS:

```bash
sudo apt install radare2
```

#### Desde el repositorio oficial (más actualizado):

```bash
git clone https://github.com/radareorg/radare2
cd radare2
./sys/install.sh
```

Verifica la instalación:

<pre class="language-bash"><code class="lang-bash"><strong>r2 -v
</strong></code></pre>

***

## Primeros pasos

Supongamos que tenemos un binario `programa`:

```bash
r2 programa
```

Esto abre el binario en modo análisis, sin ejecutarlo.

Comandos útiles básicos:

| Comando      | Descripción                                    |
| ------------ | ---------------------------------------------- |
| `aa`         | Analiza funciones, símbolos, referencias, etc. |
| `afl`        | Lista funciones encontradas                    |
| `pdf @ main` | Muestra el desensamblado de `main`             |
| `s main`     | Salta a la función `main`                      |
| `V`          | Interfaz visual (modo curses)                  |
| `VV`         | Vista gráfica de flujo de control              |
| `q`          | Salir                                          |

***

## Ejemplo práctico – Analizar `main`

```bash
r2 ./hello
[0x00400450]> aa
[0x00400450]> afl
[0x00400450]> s sym.main
[0x00400460]> pdf
```

Esto nos mostrará el contenido desensamblado de la función `main`, incluyendo llamadas, saltos, comparaciones, etc.

***

## Modo depuración

Si quieres depurar un binario:

```bash
r2 -d ./binario
```

Comandos clave:

| Comando     | Acción                   |
| ----------- | ------------------------ |
| `dc`        | Continuar ejecución      |
| `db <addr>` | Poner breakpoint         |
| `ds`        | Paso a paso              |
| `dr`        | Ver registros            |
| `px @ esp`  | Ver contenido en memoria |
| `wx 9090`   | Escribir bytes (patch)   |

***

## Cutter – GUI para Radare2

[Cutter](https://cutter.re) es una interfaz gráfica moderna basada en Radare2 que permite:

* Ver código desensamblado y decompilado lado a lado.
* Analizar flujo de ejecución gráficamente.
* Parchar código binario visualmente.

Ideal para quienes quieren lo mejor de Radare2 sin renunciar a la interfaz visual.

***

## ¿Por qué usar Radare2 en seguridad?

* Puede manejar formatos exóticos que otros desensambladores no soportan.
* Ideal para CTFs, reversing de malware y análisis en entornos restringidos.
* Potente scripting con su propio lenguaje (`r2lang`, `r2pipe`) y soporte para Python, Node.js, etc.
