Habilidad de Claude Code para ingeniería inversa de binarios C++ x86 de 32 bits little-endian (vtables, RTTI, recuperación de herencia)
Una habilidad de Claude Code para la ingeniería inversa de binarios x86 (IA-32) little-endian de 32 bits y desensamblado compilado desde C++. Recupera diseños de clases, vtables, despacho virtual y jerarquías de RTTI/herencia desde binarios ELF o PE, y cubre los flujos de trabajo que surgen una vez que se tiene esa estructura: recuperar un formato de archivo personalizado, mapear las entradas indexadas de un archivo de datos de vuelta al código/entidad que las usa, y reconocer trucos de ofuscación o anti-depuración en el camino.
Diseñado para uso por agentes: SKILL.md es el punto de entrada que lee un agente, escrito de modo que el trabajo mecánico y bien especificado (diseños de structs ABI, resolución de relocaciones, demangling de símbolos) se adelanta en JSON estructurado mediante scripts/recon.py en lugar de gastarse como esfuerzo de razonamiento sobre desensamblado en bruto. Todo degrada con gracia a recetas manuales de objdump/readelf/nm/GDB si las herramientas más sofisticadas (radare2, LIEF, Triton) no están disponibles.
| Área | ¿Automatizado? | Dónde |
|---|---|---|
ABI ELF/Itanium (GCC/Clang, _Z-mangled): vtables, RTTI, herencia múltiple/virtual | Sí -- scripts/recon.py | references/itanium-abi.md |
ABI PE/MSVC (?-mangled): __thiscall, vftable, Complete Object Locator, vbtable, escaneo de .rdata stripped | Manual / Scripted | references/msvc-abi.md |
| Recuperación automatizada de clases C++ mediante OOAnalyzer (Pharos / SWI-Prolog) | Sí -- CLI / JSON | references/tool-recipes.md §12 |
| Atribución de campos de tablas de datos y recuperación de structs (análisis de stride, envolventes de desplazamiento, inferencia de tipos) | Receta manual (REWARDS/TIE) | references/tool-recipes.md §13 |
| Análisis programático de binarios (barredores de xrefs inmediatos, desensamblado recursivo, detección de límites) | Scriptable (Python + Capstone + LIEF) | references/tool-recipes.md §14 |
| Cargadores de formatos de archivo binario personalizados (sin clases C++ involucradas) | Receta manual | references/tool-recipes.md §9 |
| Recuperación de enlaces de recursos: mapear las entradas indexadas de un archivo de datos al código/propietario que las usa | Receta manual + scripts/backward_slice.py (backward slicing basado en Triton) | references/tool-recipes.md §10 |
| Análisis dinámico con WinDbg/DbgEng (binarios PE nativos de Windows a los que GDB no puede adjuntarse) | Receta manual | references/tool-recipes.md §11 |
| Reconocimiento de ofuscación (código basura, predicados opacos, trucos de evasión de xrefs) | Receta manual | references/obfuscation.md |
| Reconocimiento de técnicas anti-depuración | Receta manual | references/anti-debugging.md |
objdump, readelf, nm, c++filt, gdb (binutils/GDB estándar, presentes en casi cualquier máquina Linux).r2pipe, y pip install lief capstone pwntools -- desbloquean las recetas automatizadas/estructuradas; sin ellos, references/tool-recipes.md tiene alternativas manuales para todo.scripts/backward_slice.py: triton-library (el proyecto de análisis binario JonathanSalwan/Triton) en un virtualenv dedicado -- no hagas pip install triton-library en tu entorno habitual si tienes instaladas herramientas de ML (PyTorch, vLLM, etc.), ya que el paquete no relacionado de OpenAI para compilador de kernels GPU también es importable como triton y ambos colisionan. Consulta AGENTS.md y el propio docstring del script.git clone [email protected]:gavmor/x86-cpp-reversing-skill.git ~/.agents/skills/x86-cpp-reversing
ln -s ~/.agents/skills/x86-cpp-reversing ~/.claude/skills/x86-cpp-reversing
Claude Code la detectará automáticamente para prompts como "qué hace este .exe", "recupera la jerarquía de clases de este binario" o "por qué falla esto dentro de una llamada virtual" -- consulta la descripción de SKILL.md para las condiciones de activación completas.
SKILL.md punto de entrada: flujo de trabajo, pasos de triaje, tabla de anti-racionalización, criterios de salida
AGENTS.md instrucciones para agentes que editan el propio contenido de este repositorio
scripts/recon.py triaje estático basado en LIEF + recuperación de vtables/RTTI del ABI Itanium
scripts/backward_slice.py backward slicing basado en Triton (necesita su propio venv, ver arriba)
references/itanium-abi.md detalles del ABI ELF/Itanium
references/msvc-abi.md detalles del ABI PE/MSVC
references/tool-recipes.md comandos concretos, por tarea (desde triaje hasta §14)
references/obfuscation.md reconocimiento de ofuscación deliberada
references/anti-debugging.md reconocimiento de técnicas anti-depuración
Si estás extendiendo el propio contenido de esta habilidad (no solo usándola contra un binario objetivo), lee AGENTS.md primero -- en particular, su norma sobre verificar citas de herramientas/bibliotecas/artículos externos contra la fuente primaria antes de que lleguen a references/*.md.