Communitygithub.com

radare2

Habilidad especializada para análisis binario con la CLI de radare2, enfocada en reconocimiento, análisis, localización, exportación y modificación ligera. No requiere GUI.

¿Qué es radare2?

Esta habilidad está diseñada para ingenieros inversos y analistas de seguridad que utilizan el conjunto de herramientas radare2 (r2, rabin2, rasm2, radiff2, rahash2, rax2) en la línea de comandos. Proporciona flujos de trabajo estructurados para el análisis binario rápido y profundo, desde el reconocimiento inicial (información de archivo, cadenas, importaciones) hasta el parcheo y la depuración interactiva. La habilidad incluye scripts automatizados (recon.ps1) y una hoja de referencia (cheatsheet.md) para comandos comunes. Es compatible con Windows, Linux y macOS, y maneja formatos PE, ELF, Mach-O, APK, DEX y WebAssembly. Se integra con otras habilidades como `ida-reverse` para descopilación profunda y `reverse-engineering` para análisis dinámico, siguiendo estrictas reglas de evidencia y autorización. La habilidad impone pasos obligatorios como la verificación de la tabla de importaciones antes de pasar al análisis de funciones, y gestiona el auto-arranque (bootstrap) en caso de herramientas faltantes.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/radare2

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace radare2?

Habilidad de análisis binario orientada a la CLI de radare2. Se centra en completar tareas de reconocimiento, análisis, localización, exportación y modificaciones ligeras directamente desde la línea de comandos, sin dependencia de GUI.

ACCIÓN REQUERIDA (ejecutar inmediatamente después de leer)

  1. AHORA: Leer ../field-journal/precedent-reverse.md — confirmar que la operación de esta habilidad está autorizada y es rutinaria.
  2. AHORA: Confirmar si la tarea actual se encuentra dentro del ámbito de esta habilidad.
  3. SIGUIENTE: Leer ../tool-index.md, verificar la disponibilidad y la ruta real de las herramientas.
  4. SIGUIENTE: Si falta alguna herramienta, invocar bootstrap; no adivinar rutas.
  5. ACTUAR: Entrar al primer paso del "flujo de trabajo" y ejecutarlo; no quedarse en estado de confirmación.

Ámbito de aplicación

Priorizar el uso de esta habilidad cuando el usuario tenga estas intenciones:

  • Usar r2 / radare2 para analizar archivos exe, dll, so, elf, apk, dex, wasm, etc.
  • Preguntar cómo usar rabin2, rasm2, radiff2, rahash2, rax2.
  • Necesitar desensamblado desde línea de comandos, ver funciones, cadenas, importaciones/exportaciones, referencias cruzadas, o hacer parches.
  • Necesitar escribir comandos por lotes de radare2, comandos automatizados con -c, o scripts r2pipe.

Si el usuario solicita explícitamente GUI para ingeniería inversa, pseudocódigo estilo Hex-Rays o flujo de trabajo IDA, priorizar ida-reverse. Si se trata de ingeniería inversa de JS web, priorizar reverse-engineering.

Verificación del entorno primero

No asumir que r2 está disponible. Primero verificar:

r2 -v
rabin2 -v

Si no está instalado, verificar ubicaciones comunes o indicar cómo instalarlo.

Ejecutables comunes en Windows:

  • radare2.exe
  • rabin2.exe
  • rasm2.exe
  • radiff2.exe
  • rahash2.exe
  • rax2.exe
  • r2pm.exe

Recursos incorporados

Esta habilidad incluye dos recursos propios. Reutilizarlos prioritariamente; no improvisar conjuntos de comandos repetitivos cada vez.

scripts/recon.ps1

Script de reconocimiento estándar, adecuado para un primer análisis general. Proporciona:

  • Información básica
  • Secciones
  • Importaciones
  • Exportaciones
  • Cadenas
  • Resumen opcional del análisis automático de r2 -A

Forma de invocación:

powershell -File "<ruta-raíz-skill>\radare2\scripts\recon.ps1" -TargetPath "C:\ruta\al\sample.exe"

Si se necesita el análisis automático de r2:

powershell -File "<ruta-raíz-skill>\radare2\scripts\recon.ps1" -TargetPath "C:\ruta\al\sample.exe" -RunAnalysis

references/cheatsheet.md

Cuando se necesiten más detalles de comandos, plantillas de escenarios comunes o recordar rápidamente la sintaxis, leer esta hoja de referencia; no adivinar de memoria.

Fenómenos conocidos

Advertencia esporádica de falta de .sdb en Windows

Al reconocer ciertos archivos PE con rabin2, puede aparecer una advertencia similar a:

ERROR: Cannot find ...\share\format\dll\*.sdb

Si la salida principal sigue siendo normal, normalmente no afecta las conclusiones básicas del reconocimiento; continuar con el análisis. No declarar que el análisis ha fallado solo por este tipo de advertencias accesorias.

Principios fundamentales

1. Primero reconocer, luego profundizar

No lanzar un análisis automático completo de inmediato. Primero usar comandos ligeros para confirmar tipo de archivo, arquitectura, punto de entrada, cadenas, tabla de importaciones; luego decidir si hacer aaa, aaaa o análisis dirigido.

2. Priorizar el comando mínimo suficiente

radare2 tiene muchos comandos; el usuario normalmente solo necesita la ruta más corta:

  • Ver información del archivo: rabin2 -I
  • Ver cadenas: rabin2 -z
  • Ver importaciones/exportaciones: rabin2 -i / rabin2 -E
  • Análisis interactivo: r2 <archivo> seguido de comandos locales

3. Ser cuidadoso antes de modificar

Si el usuario quiere parchear un binario:

  • Por defecto, abrir solo lectura: r2 <archivo>
  • Solo usar modo escritura cuando sea explícitamente necesario: r2 -w <archivo> o oo+ en la sesión
  • Informar del riesgo antes de modificar, para evitar sobrescribir el archivo original sin querer

Flujos de trabajo comunes

Flujo de trabajo 1: Reconocimiento rápido

Adecuado al recibir un archivo binario.

Puerta de acceso obligatoria (MUST — no cumplir impide entrar al flujo de trabajo 2 y siguientes)

Para binarios PE/ELF/Mach-O con tabla de importaciones, MUST completar la verificación de la tabla de importaciones y registrar la Evidencia antes de pasar al análisis a nivel de funciones o pasos dinámicos:

  1. Ejecutar rabin2 -i <sample> (o la sección de importaciones de la salida de recon.ps1); para DLL/SYS además MUST rabin2 -E y registrar E-exports
  2. Escribir el resultado completo o clasificado de la tabla de importaciones como Evidencia (id sugerido: E-imports o E-triage-imports), incluyendo al menos:
    • Comando de reproducción (repro_command)
    • Resumen de clasificación de importaciones clave: red / archivo / cifrado / inyección de procesos / registro / otras API sospechosas
    • Si la tabla de importaciones está vacía, falla el análisis o la herramienta da error: MUST registrar el fenómeno de fallo y la salida original como Evidencia, no omitir en silencio
    • Si la tabla de importaciones es "demasiado limpia" (solo DLLs básicas): MUST indicar sospecha de carga dinámica, SHOULD pasar a capturar API dinámicamente
  3. .NET sin IAT tradicional: MUST usar un ancla equivalente (resumen de dnSpy/IL/metadatos) en el mismo espacio semántico de Evidencia; prohibido pasar sin hacer nada
  4. Reparación de IAT para muestras empaquetadas: x86 con ImportREC (o equivalente), x64 con Scylla (o equivalente). Si la reparación falla, MUST registrar E-iat-repair-fail y pasar a puntos de interrupción de API dinámicos; prohibido encallar indefinidamente en el IAT estático (ver reverse-engineering/references/re-agent-workflow.md §1.2)
  5. Cuando el usuario solicite explícitamente "rehacer la verificación de la tabla de importaciones / reexaminar las importaciones / rehacer IAT": MUST rehacer el paso señalado (si está bloqueado, primero pasar por el candado de viabilidad: explicar los requisitos previos + pedir confirmación; si es forzoso, marcar quality=unreadable); prohibido cambiarlo a un paso no relacionado y fingir que se completó

Sin haber registrado la Evidencia de la tabla de importaciones (o su ancla equivalente / derivación de fallo de IAT): MUST NOT afirmar "reconocimiento básico completo", MUST NOT entrar en las conclusiones profundas del flujo de trabajo 2+.

Priorizar ejecutar el script integrado directamente:

powershell -File "<ruta-raíz-skill>\radare2\scripts\recon.ps1" -TargetPath "sample.exe"

Si solo se necesitan comandos manuales mínimos, usar:

rabin2 -I sample.exe
rabin2 -z sample.exe
rabin2 -i sample.exe
rabin2 -E sample.exe

Puntos de atención:

  • Formato de archivo, bits, arquitectura, plataforma
  • Dirección del punto de entrada
  • Cadenas sospechosas: URL, rutas, mensajes de error, registro, parámetros de línea de comandos
  • Funciones importadas: red, archivo, cifrado, inyección de procesos, operaciones de registro (MUST registrar Evidencia, ver puerta de acceso obligatoria arriba)

Flujo de trabajo 2: Análisis interactivo de funciones

r2 sample.exe

Comandos comunes una vez dentro:

aaa          # Análisis automático estándar
afl          # Listar funciones
iz           # Listar cadenas
iS           # Listar secciones
is           # Listar símbolos
s entry0     # Saltar al punto de entrada
pdf          # Desensamblar la función actual
VV           # Entrar en modo visual (si la terminal lo permite)
q            # Salir

Notas:

  • Por defecto, priorizar aaa; no usar aaaa (más pesado) desde el principio
  • Si la muestra es grande o el análisis es lento, se puede analizar solo alrededor del punto de entrada y luego expandir manualmente

Flujo de trabajo 3: Localizar main / lógica clave

afl~main
afl~sym.
iz~http
iz~error
axt <addr>

Idea:

  • Empezar por main, punto de entrada, referencias a cadenas
  • Usar axt para buscar quién referencia una cadena o dirección
  • Una vez encontrado el punto de referencia, s <addr>, pdf

Flujo de trabajo 4: Visualización hexadecimal y de memoria

px 64        # 64 bytes hexadecimales desde la dirección actual
pd 20        # Desensamblar 20 instrucciones
psz          # Leer cadena en la dirección actual
pxa          # Vista hexadecimal más amigable

Flujo de trabajo 5: Parcheo binario

Usar solo cuando el usuario solicite explícitamente modificar el archivo:

r2 -w sample.exe

Ejemplos una vez dentro:

s 0x401000
wa nop
wa jmp 0x401050
wq

Operaciones de escritura comunes:

  • wa <asm>: Escribir ensamblador
  • wx <hex>: Escribir bytes en bruto
  • wq: Escribir y salir

Es mejor hacer una copia de seguridad del archivo original antes de modificar. Si el usuario no menciona la copia de seguridad, al menos advertirlo una vez.

Flujo de trabajo 6: Automatización no interactiva

Adecuado para resultados de una sola vez:

r2 -A -q -c "afl;iz;ii;q" sample.exe

Parámetros comunes:

  • -A: Análisis automático al iniciar
  • -q: Modo silencioso
  • -c: Ejecutar cadena de comandos

Si hay muchos comandos, priorizar ordenarlos de forma legible; no meterlos en una cadena excesivamente larga y difícil de mantener.

Se recomienda primero usar el script de reconocimiento incorporado y luego decidir si añadir comandos personalizados.

Herramientas secundarias comunes

rabin2

Adecuado para extracción de información estática:

rabin2 -I sample.exe   # Información básica
rabin2 -S sample.exe   # Secciones
rabin2 -s sample.exe   # Símbolos
rabin2 -i sample.exe   # Importaciones
rabin2 -E sample.exe   # Exportaciones
rabin2 -z sample.exe   # Cadenas
rabin2 -zz sample.exe  # Cadenas más detalladas

rasm2

Adecuado para ensamblado/desensamblado rápido:

rasm2 -d "9090"
rasm2 -a x86 -b 64 "xor eax, eax"

radiff2

Adecuado para comparar dos binarios:

radiff2 old.exe new.exe
radiff2 -C old.exe new.exe

rahash2

Adecuado para calcular hashes:

rahash2 -a md5 sample.exe
rahash2 -a sha256 sample.exe

rax2

Adecuado para conversión de bases y codificación:

rax2 0x401000
rax2 4198400
rax2 -s hello

Orden de análisis recomendado

Al encontrar una muestra desconocida, seguir este orden:

  1. rabin2 -I para ver formato, arquitectura, punto de entrada
  2. rabin2 -z para ver cadenas
  3. rabin2 -i para ver funciones importadas — MUST + Evidencia (puerta de acceso obligatoria, ver flujo de trabajo 1)
  4. Si se necesita análisis interactivo, entrar en r2 (solo después de que la Evidencia del paso 3 esté registrada)
  5. Primero aaa, luego afl / iz / pdf
  6. Localizar gradualmente las funciones clave a través de referencias a cadenas, llamadas a importaciones, flujo del punto de entrada

La ventaja de este orden es que reduce el ruido y permite establecer una dirección rápidamente. El paso 3 no es una optimización opcional; es una puerta de acceso obligatoria antes de profundizar.

Notas para Windows

  • Si las rutas contienen espacios, los comandos deben usar comillas correctamente
  • Si la terminal actual no encuentra r2, puede deberse a que PATH se acaba de actualizar; abrir una nueva terminal e intentar de nuevo
  • Algunas muestras requieren permisos de administrador para leer, pero por defecto no elevar permisos a menos que el usuario lo solicite explícitamente
  • Antes de depurar dinámicamente una muestra sospechosa, confirmar primero la intención del usuario para evitar operaciones incorrectas

Estilo de salida

Cuando el usuario no solo quiere comandos, sino que quiere que analices el archivo:

  • Proporcionar primero un resumen de los resultados del reconocimiento
  • Luego listar las pruebas clave: cadenas, importaciones, funciones, direcciones
  • Finalmente dar sugerencias para el siguiente paso o continuar con un análisis más profundo

No limitarse a enumerar comandos sin explicar por qué se hace cada cosa.

Ejemplos de solicitudes típicas

Ejemplo 1: Analizar un exe

Usuario: "Mira qué hace este exe, usa radare2"

Procedimiento:

  1. Primero usar rabin2 -I/-z/-i
  2. Determinar si es necesario entrar en r2
  3. Usar aaa, afl, pdf para profundizar en el punto de entrada y las referencias a cadenas clave

Ejemplo 2: Encontrar dónde se llama una cadena

Usuario: "¿En qué función se activa esta cadena de error?"

Procedimiento:

  1. Usar iz~palabra-clave para encontrar la dirección de la cadena
  2. Usar axt <addr> para encontrar referencias
  3. Saltar al punto de referencia s <addr> y luego pdf

Ejemplo 3: Cambiar un salto

Usuario: "Cambia este jne a je"

Procedimiento:

  1. Confirmar la dirección de destino
  2. Indicar explícitamente que se va a entrar en modo escritura
  3. Usar wa je <objetivo> o directamente wx
  4. Después de modificar, desensamblar de nuevo para verificar

Prácticas que evitar

  • No tratar radare2 como una herramienta que solo tiene el comando aaa
  • No abrir el archivo del usuario en modo escritura sin explicar el riesgo primero
  • No sacar conclusiones sin haber hecho un reconocimiento básico
  • Prohibido saltarse la verificación de la tabla de importaciones (rabin2 -i / importaciones de recon): sin Evidencia registrada, no se puede pasar al siguiente paso; cuando el usuario solicite rehacer la tabla de importaciones, prohibido cambiar a otros pasos
  • Prohibido encallar estáticamente tras fallar la reparación del IAT: registrar E-iat-repair-fail y pasar a dinámico; prohibido usar solo ImportREC para muestras de 64 bits
  • No desviar hacia esta habilidad la ingeniería inversa de JS web; esa es competencia de reverse-engineering

Referencias

  • Hoja de referencia de comandos: references/cheatsheet.md
  • Script de reconocimiento estándar: scripts/recon.ps1

Ecosistema radare2-skills

El proyecto radare2-skills (radareorg/radare2-skills) proporciona un ecosistema más completo de herramientas y flujos de trabajo:

  • r2xsql: Consultar tablas de importación / cadenas / funciones de binarios con SQL
  • r2mcp / r2http: Herramientas MCP y canal de comandos HTTP con estado
  • radius2: Ejecución simbólica, análisis dinámico simbólico
  • r2pm: Gestión de complementos, extensiones
  • decompiler plugins: Mecanismo de complementos de radare2

Estrategia de uso:

  • Cuando el usuario mencione r2xsql, r2mcp, r2http, radius2, r2pm, rabin2, rasm2, radiff2, rahash2, rax2, priorizar enrutar a esta habilidad (radare2/SKILL.md)
  • Estas herramientas son solo aceleradores del ecosistema, no pueden eludir: puerta de acceso de autorización, verificación de tool-index, registro de Evidencia, confirmación de modo escritura
  • Proporcionar ejemplos de comandos mínimos reproducibles:
    • r2xsql -s <archivo> -q "SELECT ..."
    • curl.exe -sS --data-binary 'aaa' http://127.0.0.1:9393/cmd
    • radius2 -p <binario> ...
    • r2pm -ci <complemento>

Esta habilidad mantiene sus puertas de acceso obligatorias originales y la integridad de la cadena de evidencia; no permite saltar ningún paso de autorización o Evidencia.


Contexto de enrutamiento

Entrada ascendente: skills/SKILL.md (control principal), routing.md Alternativa ascendente: ida-reverse/ (cuando se necesite descopilación/pseudocódigo, actualizar a IDA) Salida descendente:

  • Si se necesita análisis dinámico → reverse-engineering/tools-dynamic.md (Frida/GDB)
  • Si se necesita descopilación profunda → ida-reverse/
  • Si PAT encuentra cadenas interesantes y se necesitan referencias cruzadas → ida-reverse/ (las xref de IDA son más potentes)

Módulos relacionados del mismo nivel: ida-reverse/ (complementario: r2 reconoce rápido, IDA descopila profundo)

Autoarranque bajo demanda (On-Demand Bootstrap)

El script de entrada de esta habilidad está integrado en el sistema de autoarranque unificado. Si falta radare2, no se produce un error directo, sino que se intenta instalarlo automáticamente.

Capacidades de automatización

HerramientaInstalable automáticamenteMétodo de instalaciónNotas
r2✓GitHub Release ZIP (w64)Descarga y extrae automáticamente en %USERPROFILE%\Tools\radare2\
rabin2✓Mismo (incluido en el paquete de radare2)—
rasm2✓Mismo—
radiff2✓Mismo—
rahash2✓Mismo—
rax2✓Mismo—

Punto de activación del autoarranque

  • scripts/recon.ps1: cuando falten rabin2 o r2, llama automáticamente a bootstrap-reverse.ps1

Cuando falla el autoarranque

Si la instalación automática falla (problemas de red, límite de API de GitHub, etc.), el script lanzará un error claro con un enlace de instalación manual.

Instalación manual: descargar radare2-*-w64.zip desde https://github.com/radareorg/radare2/releases, extraer en %USERPROFILE%\Tools\radare2\ y asegurarse de que el directorio bin\ esté en PATH.

Autoverificación de finalización de tarea (MUST pasar antes de declarar como completada)

  • ¿He ejecutado cada paso del flujo de trabajo (no solo lo he leído)?
  • ¿Se ha realizado la verificación de la tabla de importaciones y se ha registrado como Evidencia (E-imports / E-triage-imports o equivalente para .NET)? Para DLL/SYS, ¿incluye E-exports?
  • Si falló la reparación del IAT, ¿se registró E-iat-repair-fail y se pasó a dinámico? ¿Las solicitudes de rehacer volvieron al mismo paso?
  • ¿He utilizado las rutas reales de las herramientas basándome en tool-index?
  • ¿He producido evidencia reproducible (comandos/scripts/capturas de pantalla/informes)?
  • ¿He completado y reescrito los elementos de la lista de verificación requeridos por RULES?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

Skills relacionados