Pular para o conteúdo
Skillpedia
Segurança48 mil · #3305

ida-reverse

Ajuda seu agente a analisar programas de computador em baixo nível. Ele investiga o código para encontrar falhas de segurança ou entender como funciona.

O que ela faz

Esta ferramenta ajuda a analisar programas de computador (arquivos executáveis) para entender como eles funcionam internamente. Ela decompila o código, mostra as instruções, rastreia o fluxo de dados e encontra conexões entre diferentes partes do programa.

Quando usar

  • ✓Quando você precisa entender um programa sem ter o código fonte.
  • ✓Para investigar como um programa manipula dados.
  • ✓Ao procurar por vulnerabilidades ou comportamentos suspeitos em um executável.

Exemplo do que pedir para a IA

“Analise o arquivo 'meu_programa.exe' e me diga quais funções ele chama.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/ida-reverse/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/ida-reverse/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta usa o IDA Pro, um programa especializado em engenharia reversa. Ela carrega o arquivo executável e aplica técnicas como descompilação e análise de fluxo de dados para revelar a estrutura e o comportamento do programa.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill ida-reverse

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/ida-reverse/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Suporte upstream incluído

Arquivos de suporte estão incluídos em caminhos relativos à skill. Veja UPSTREAM-NOTICE.md para suas fontes fixadas, licenças, hashes e alterações de importação.

Disponibilidade de material de suporte

Estes caminhos permanecem indisponíveis nesta cópia do catálogo:

  • <support-root>/scripts/start.ps1
  • <support-root>/scripts/install-autostart.ps1

Não invoque uma etapa que exija um desses arquivos. Obtenha o material original e revise suas dependências, licença e efeitos antes de usar. Etapas inline independentes e os auxiliares incluídos podem prosseguir dentro do escopo autorizado pelo usuário.

Habilidade de Análise Reversa IDA Pro

Quando Usar

  • Análise estática profunda de um alvo compilado onde o IDA está disponível.
  • Rastreamento de fluxo de dados ou referências cruzadas através de binários grandes.

Problemas Conhecidos e Reflexões (Leitura Obrigatória)

Armadilhas Pisadas

  1. idb_open (anteriormente idalib_open) não chame diretamente por alguns clientes de IA MCP

    • O cliente MCP de alguns clientes de IA para ferramentas da classe open tem um BUG na validação do esquema de saída.
    • Erro: Structured content does not match the tool's output schema
    • Solução: Use o script scripts/open.ps1 para chamar diretamente via API HTTP, contornando a camada de validação MCP.
    • As ferramentas atuais ida-pro-mcp 2.x chamam idb_open / idb_list / idb_save (não mais idalib_*).
    • Após abrir o arquivo, retorna session_id (database), chamadas de ferramentas subsequentes precisam levar essa sessão.
  2. Arquivo C:\Windows\System32\ sem permissão para abrir

    • idalib não pode ler diretamente arquivos no diretório System32.
    • Solução: open.ps1 detecta e copia automaticamente para o diretório 临时目录 antes de abrir.
  3. Comando de inicialização do servidor bloqueia o diálogo

    • idalib-mcp, após a inicialização, continuará a exibir logs INFO no console.
    • Solução: Use scripts/start.ps1 (-WindowStyle Hidden inicialização silenciosa em segundo plano).
    • O script aguardará o serviço ficar pronto e sairá automaticamente, sem bloquear o diálogo.
  4. Nome do servidor MCP não pode conter traço

    • Usar ida-pro-mcp como nome do servidor anteriormente pode causar problemas de registro da ferramenta.
    • Configuração atual: Nome do servidor idapro, prefixo da ferramenta idapro_*.
  5. HTTP Remoto vs. Stdio Local

    • Modo type:"local" (stdio): idalib_open também tem problemas de validação de esquema.
    • Modo type:"remote" (HTTP): Pode abrir o arquivo diretamente com um script primeiro e depois usar ferramentas MCP.
    • Solução atual: Modo HTTP Remoto.
  6. PR #389 corrigiu alguns problemas de esquema

    • O autor mrexodia, após o issue #388, mesclou a correção através do PR #389.
    • Corrigiu o esquema structuredContent no modo HTTP, mas a validação do lado de alguns clientes de IA ainda tem problemas.
    • Versão mais recente do branch main instalada.
  7. Timeout do idalib deixa arquivos de bloqueio de worker órfãos

    • Após o primeiro timeout do open.ps1, o processo filho worker do python do idalib pode se tornar órfão, mantendo .id0/.id1/.nam bloqueados.
    • Qualquer ferramenta subsequente ou arrastar e soltar manualmente na GUI do IDA relatará "permissão negada".
    • Proibido matar a árvore de processos com taskkill /F /T - /T também matará os processos filhos da GUI ida.exe.
    • Solução: start.ps1 substitui o supervisor gerenciado apenas quando a porta não está sendo ouvida, ou quando tools/list retorna rapidamente, mas falta py_eval (supervisor antigo); timeout de RPC e 13337 ainda ouvindo é considerado ocupado, não mata.
    • Plano de contingência: open.ps1 detecta automaticamente bibliotecas antigas bloqueadas, copia para Temp e adiciona um prefixo GUID.
  8. Abrir com análise automática parece travar

    • idalib_open(run_auto_analysis=true) pode não responder por um longo tempo, mas o backend ainda está abrindo e analisando.
    • Anteriormente, o lado do usuário via "PowerShell sem saída", levando a um erro de julgamento de que o script travou.
    • Solução atual: open.ps1 adiciona -TimeoutSeconds e muda para requisição em segundo plano + polling em primeiro plano + saída de progresso periódica.
    • Quando o polling indica que a sessão está pronta, retorna OK:文件名:session_id antecipadamente; se houver timeout, retorna ERR:open_timeout_xxs.
  9. MCP HTTP sai silenciosamente após o login

    • type: http do Cursor/Claude não inicia processos em nome do usuário; a antiga tarefa agendada é executada apenas uma vez no login.
    • pythonw não tem console, e os logs do Application também estão vazios em caso de falha.
    • Solução: start.ps1 é reutilizado por padrão se estiver saudável; watchdog.ps1 verifica a cada minuto; logs em %LOCALAPPDATA%\reverse-skill\ida-mcp\.
    • Instalação: scripts/install-autostart.ps1. Se o Cursor iniciar e a porta ainda não estiver ativa, ainda é necessário atualizar manualmente uma vez no painel MCP.

Princípios do Fluxo de Trabalho

Etapa O que fazer O que usar
1 Garantir que o servidor HTTP esteja em execução scripts/start.ps1 (sem argumentos)
2 Abrir o arquivo binário alvo scripts/open.ps1 -Path "xxx.exe"
3 Usar ferramentas de análise MCP Chamar diretamente idapro_* / ferramentas HTTP (cerca de 65, dependendo da versão)
4 Análise concluída Ferramentas disponíveis automaticamente

Recursos de Script

start.ps1 — Inicia o servidor HTTP MCP

Caminho: scripts/start.ps1

  • Analisa automaticamente IDADIR (variável de ambiente / caminho da área de trabalho da versão portátil / caminhos de instalação comuns).
  • Prioriza o uso do Python314\python.exe -m ida_pro_mcp.idalib_supervisor incluído no IDA.
  • Por padrão, primeiro detecta http://127.0.0.1:13337/mcp, se saudável, exibe OK:<n>:reuse e sai.
  • 13337 está ouvindo, mas tools/list expira → WARN:busy / OK:busy:reuse, não mata (supervisor é single-threaded, não pode retornar pacotes ao abrir bibliotecas).
  • Substitui o supervisor gerenciado apenas quando a porta não está sendo ouvida, ou retorna rapidamente e falta py_eval; nunca mata ida.exe, não usa taskkill /T.
  • Quando a GUI ocupa 13337, exibe WARN:gui_busy e sai, sem iniciar um novo supervisor.
  • Saída de sucesso OK:<工具数> (atualmente cerca de 66), saída de falha ERR:timeout.
  • Logs do supervisor: %LOCALAPPDATA%\reverse-skill\ida-mcp\supervisor.log.
  • O servidor é executado em segundo plano, sem bloquear o diálogo.

Como chamar:

powershell -File "<skill-root>\ida-reverse\scripts\start.ps1"

watchdog.ps1 / install-autostart.ps1 — Manter ativo

  • watchdog.ps1: Detecta 13337, se saudável, então OK:<n>:reuse, apenas chama start.ps1 se falhar.
  • install-autostart.ps1: Registra tarefa agendada reverse-skill-ida-mcp (login + a cada minuto).
  • Logs: %LOCALAPPDATA%\reverse-skill\ida-mcp\watchdog.log.

open.ps1 — Abre o arquivo binário

Caminho: scripts/open.ps1

  • Chama diretamente idb_open via API HTTP, contornando a validação de esquema MCP.
  • Detecta automaticamente o caminho System32 e copia para um diretório temporário.
  • Limpa automaticamente arquivos de banco de dados antigos com o mesmo nome (.id0/.id1/.nam/.til/.i64).
  • Degrada automaticamente quando a biblioteca antiga está bloqueada: copia para Temp com um prefixo GUID antes de abrir, sem erros.
  • Coloca a solicitação de abertura para execução em segundo plano, evitando que o script não responda devido a longos tempos de espera síncronos.
  • Suporta -TimeoutSeconds, retorna ERR:open_timeout_xxs após o timeout, não trava indefinidamente.
  • Exibe INFO:opening:已用时/超时秒数 a cada 10 segundos, facilitando a verificação de que a análise ainda está em andamento.
  • Saída de sucesso OK:文件名:session_id, com marcação (temp copy) ao degradar.
  • Tenta novamente automaticamente com uma cópia do Temp em caso de falha.

Como chamar: ```

Perguntas frequentes

O que é engenharia reversa?

É o processo de desmontar um produto (neste caso, um programa de computador) para entender como ele foi feito e como funciona, sem ter acesso aos planos originais (o código fonte).

Preciso ter o IDA Pro instalado?

A ferramenta utiliza as capacidades do IDA Pro, mas você não precisa instalá-lo separadamente. A ferramenta cuida disso.

Quais tipos de arquivos ela pode analisar?

Ela pode analisar arquivos executáveis comuns em sistemas como Windows (PE), Linux (ELF) e macOS (Mach-O).

Detalhes

Descrição original do autor

Reverse engineer binaries with IDA Pro: decompilation, disassembly, data-flow tracking, cross-references, and IDA MCP automation for deep static analysis of PE/ELF/Mach-O targets.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3305
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas