Habilidade do Claude Code para engenharia reversa de binários C++ x86 de 32 bits little-endian (vtables, RTTI, recuperação de herança)
Uma skill do Claude Code para engenharia reversa de binários x86 (IA-32) little-endian de 32 bits e desmontagem compilada a partir de C++. Recupera layouts de classes, vtables, despacho virtual e hierarquias de RTTI/herança a partir de binários ELF ou PE, e cobre os fluxos de trabalho que surgem depois de obter essa estrutura: recuperar um formato de arquivo personalizado, mapear as entradas indexadas de um arquivo de dados de volta para o código/entidade que as utiliza, e reconhecer truques de ofuscação ou anti-depuração ao longo do caminho.
Construída para uso por agentes: SKILL.md é o ponto de entrada que um agente lê, escrito de forma que o trabalho mecânico e bem especificado (layouts de structs ABI, resolução de relocações, desmangling de símbolos) seja antecipado em JSON estruturado via scripts/recon.py, em vez de ser gasto como esforço de raciocínio sobre desmontagem bruta. Tudo degrada graciosamente para receitas manuais de objdump/readelf/nm/GDB se as ferramentas mais sofisticadas (radare2, LIEF, Triton) não estiverem disponíveis.
| Área | Automatizado? | Onde |
|---|---|---|
ABI ELF/Itanium (GCC/Clang, _Z-mangled): vtables, RTTI, herança múltipla/virtual | Sim -- scripts/recon.py | references/itanium-abi.md |
ABI PE/MSVC (?-mangled): __thiscall, vftable, Complete Object Locator, vbtable, varredura de .rdata sem símbolos | Manual / Scripted | references/msvc-abi.md |
| Recuperação automatizada de classes C++ via OOAnalyzer (Pharos / SWI-Prolog) | Sim -- CLI / JSON | references/tool-recipes.md §12 |
| Atribuição de campos de tabelas de dados e recuperação de structs (análise de stride, envelopes de deslocamento, inferência de tipos) | Receita manual (REWARDS/TIE) | references/tool-recipes.md §13 |
| Análise programática de binários (varreduras de xrefs imediatos, desmontagem recursiva, detecção de limites) | Scriptable (Python + Capstone + LIEF) | references/tool-recipes.md §14 |
| Loaders de formatos de arquivos binários personalizados (sem classes C++ envolvidas) | Receita manual | references/tool-recipes.md §9 |
| Recuperação de vínculo de recursos: mapear as entradas indexadas de um arquivo de dados para o código/proprietário que as utiliza | Receita manual + scripts/backward_slice.py (backward slicing baseado em Triton) | references/tool-recipes.md §10 |
| Análise dinâmica com WinDbg/DbgEng (binários PE nativos do Windows aos quais o GDB não consegue se anexar) | Receita manual | references/tool-recipes.md §11 |
| Reconhecer ofuscação (código inútil, predicados opacos, truques de evasão de xrefs) | Receita manual | references/obfuscation.md |
| Reconhecer técnicas de anti-depuração | Receita manual | references/anti-debugging.md |
objdump, readelf, nm, c++filt, gdb (binutils/GDB padrão, presentes em quase qualquer máquina Linux).r2pipe, e pip install lief capstone pwntools -- desbloqueiam as receitas automatizadas/estruturadas; sem eles, references/tool-recipes.md tem alternativas manuais para tudo.scripts/backward_slice.py: triton-library (o projeto de análise binária JonathanSalwan/Triton) em um virtualenv dedicado -- não faça pip install triton-library no seu ambiente regular se você tiver qualquer ferramenta de ML instalada (PyTorch, vLLM, etc.), já que o pacote de compilador de kernel de GPU da OpenAI, não relacionado, também é importável como triton e os dois colidem. Veja AGENTS.md e a própria docstring do 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
O Claude Code irá reconhecê-la automaticamente para prompts como "o que este .exe faz", "recupere a hierarquia de classes deste binário" ou "por que isso trava dentro de uma chamada virtual" -- veja a descrição de SKILL.md para as condições completas de acionamento.
SKILL.md ponto de entrada: fluxo de trabalho, etapas de triagem, tabela de anti-racionalização, critérios de saída
AGENTS.md instruções para agentes que editam o próprio conteúdo deste repositório
scripts/recon.py triagem estática baseada em LIEF + recuperação de vtable/RTTI do ABI Itanium
scripts/backward_slice.py backward slicing baseado em Triton (precisa de seu próprio venv, veja acima)
references/itanium-abi.md detalhes do ABI ELF/Itanium
references/msvc-abi.md detalhes do ABI PE/MSVC
references/tool-recipes.md comandos concretos, por tarefa (da triagem até §14)
references/obfuscation.md reconhecer ofuscação deliberada
references/anti-debugging.md reconhecer técnicas de anti-depuração
Se você está estendendo o próprio conteúdo desta skill (não apenas usando-a contra um binário alvo), leia AGENTS.md primeiro -- em particular, sua norma sobre verificar citações de ferramentas/bibliotecas/artigos externos na fonte primária antes que elas cheguem a references/*.md.