Pular para o conteúdo
Skillpedia
Código em geral42 mil · #4769

ida-reverse

Ajuda seu agente a analisar qualquer tipo de arquivo de programa. Ele pode descompilar, encontrar referências e ajudar a entender códigos complexos. Essencial para análise de segurança e desenvolvimento.

O que ela faz

Esta ferramenta ajuda a analisar arquivos de programas de computador (como executáveis ou bibliotecas) para entender como eles funcionam por dentro. É útil para quem quer investigar software, encontrar senhas ou analisar possíveis vírus.

Quando usar

  • ✓Quando você quer entender um programa sem o código fonte.
  • ✓Ao investigar um arquivo suspeito para ver se é um vírus.
  • ✓Se você precisa encontrar uma senha escondida em um programa.

Exemplo do que pedir para a IA

“Analise este arquivo executável para mim.”

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/zhaoxuya520/reverse-skill/blob/main/skills/ida-reverse/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/zhaoxuya520/reverse-skill/blob/main/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 se conecta a um programa chamado IDA Pro, que é especializado em analisar arquivos de computador. Ela usa scripts para abrir o arquivo, pedir ao IDA Pro para analisá-lo e, em seguida, mostra as informações encontradas.

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 zhaoxuya520/reverse-skill --skill ida-reverse

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/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.

Habilidades de Análise Reversa com IDA Pro

AÇÃO NECESSÁRIA (Execute imediatamente após a leitura)

  1. NOW: Leia ../field-journal/precedent-reverse.md — Confirme que a operação desta habilidade é uma operação regular autorizada
  2. NOW: Confirme se a tarefa atual se enquadra no escopo desta habilidade
  3. NEXT: Leia ../tool-index.md, verifique a disponibilidade da ferramenta e o caminho real
  4. NEXT: Chame o bootstrap quando a ferramenta estiver faltando, não adivinhe o caminho
  5. ACT: Entre na primeira etapa do "Fluxo de Trabalho" e execute, não pare no estado de confirmação

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

Armadilhas Pisadas

  1. idb_open (anteriormente idalib_open) não chame diretamente através de chamadas MCP de alguns clientes de IA

    • O cliente MCP de alguns clientes de IA de código possui um BUG na validação do esquema de saída para ferramentas do tipo "open"
    • 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 do MCP
    • O nome da ferramenta ida-pro-mcp 2.x atual é 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 consegue 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 emitir logs INFO para o console
    • Solução: Use scripts/start.ps1 (inicialização silenciosa em segundo plano -WindowStyle Hidden)
    • 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

    • Anteriormente, ida-pro-mcp foi usado como nome do servidor, o que 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-se 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 corrigiu após o issue #388 através do PR #389
    • Corrigiu o esquema structuredContent no modo HTTP, mas a validação no lado de alguns clientes de IA de código ainda tem problemas
    • A versão mais recente do branch main foi instalada
  7. idalib expira e deixa arquivos de bloqueio de worker órfãos

    • Após a primeira expiração de 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); se o RPC expirar e 13337 ainda estiver ouvindo, considera-se ocupado e não mata. Ao abrir a biblioteca, open.ps1 grava opening.lock, o watchdog não deve -Force
    • Exceção de deadlock: Apenas quando tools/list falha continuamente por mais de 3 minutos (com base no timestamp last-healthy, não no tempo de criação do processo), e não há opening.lock em andamento, e não é a GUI ocupando a porta, então -Force substitui o supervisor, ainda sem matar ida.exe
    • Fallback: open.ps1 detecta que a biblioteca antiga está bloqueada, copia automaticamente 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á continuando a abertura e análise
    • Anteriormente, o lado do usuário via "PowerShell sem saída contínua", o que levava a um erro de julgamento de que o script estava travado
    • Solução atual: open.ps1 adiciona -TimeoutSeconds e muda para requisição em segundo plano + polling frontal + saída de progresso regular
    • Quando o polling indica que a sessão está pronta, retorna OK:文件名:session_id antecipadamente; se expirar, retorna ERR:open_timeout_xxs
  9. HTTP MCP 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 quando falha
    • Solução: start.ps1 é considerado saudável por padrão e reutilizado; watchdog.ps1 verifica a cada minuto; logs em %LOCALAPPDATA%\reverse-skill\ida-mcp\
    • Instalação: scripts/install-autostart.ps1. Se o cliente HTTP não estiver com a porta ativa na inicialização, ainda é necessário atualizar manualmente no painel MCP uma vez
  10. Streamable HTTP GET /mcp trava o supervisor de thread única

    • Alguns clientes HTTP MCP realizam GET de conexão longa (SSE) para /mcp. O stock idalib_supervisor usa background=False de HTTPServer, processando apenas uma requisição por vez
    • Resultado: tools/list expira, o cliente marca idapro como erro
    • Solução: run-supervisor.py muda HTTP para ThreadingHTTPServer e aceita GET /mcp; se o patch falhar, pula e ainda inicia o supervisor. Quando travado, use scripts/recover.ps1 (imediatamente -Force)

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 parâmetros)
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 A ferramenta estará disponível automaticamente

Recursos de Script

start.ps1 — Iniciar 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, emite OK:<n>:reuse e sai
  • 13337 está ouvindo, mas tools/list expira → WARN:busy / OK:busy:reuse, não mata (não é possível responder quando a biblioteca ou GUI está ocupando)
  • tools/list falha continuamente por mais de 3 minutos (timestamp last-healthy) e sem opening.lock → considerado deadlock, emite INFO:deadlock e -Force substitui o supervisor. idb_open em andamento e GUI não seguirão este caminho
  • Substitui o supervisor gerenciado apenas quando a porta não está sendo ouvida, falta py_eval, ou no deadlock acima; nunca mata ida.exe, não usa taskkill /T
  • Quando a GUI ocupa 13337, emite WARN:gui_busy e sai, sem iniciar um supervisor adicional
  • Emite OK:<工具数> (atualmente cerca de 66) em caso de sucesso, ERR:timeout em caso de falha
  • Logs do supervisor: %LOCALAPPDATA%\reverse-skill\ida-mcp\supervisor.log
  • O servidor é executado em segundo plano, não bloqueando o diálogo

Como chamar:

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

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

  • watchdog.ps1: Detecta 13337; reutiliza se saudável (e atualiza last-healthy); reutiliza se GUI / open.ps1 bloqueando a biblioteca / last-healthy menor que 3 minutos ocupado; apenas se tools/list falhar continuamente por mais de 3 minutos, então start.ps1 -Force
  • recover.ps1: Imediatamente start.ps1 -Force (não mata ida.exe). Use isso quando o cliente HTTP marcar idapro como erro
  • install-autostart.ps1: Registra tarefa agendada reverse-skill-ida-mcp (login + a cada minuto)
  • Logs: %LOCALAPPDATA%\reverse-skill\ida-mcp\watchdog.log

open.ps1 — Abrir arquivo binário

Caminho: scripts/open.ps1

…

Perguntas frequentes

O que é 'engenharia reversa'?

É o processo de desmontar um programa para entender seu funcionamento interno, como se fosse um detetive investigando um objeto para descobrir como ele foi feito.

Preciso ter o IDA Pro instalado?

Sim, esta ferramenta depende do IDA Pro para funcionar, pois ele é o programa principal que faz a análise.

Posso usar isso para 'quebrar' programas e usá-los de graça?

O objetivo principal é a análise técnica e a segurança. Usar para pirataria de software pode violar leis de direitos autorais.

Detalhes

Descrição original do autor

IDA Pro 逆向分析辅助技能。当用户提到逆向、反编译、分析二进制/PE/ELF/APK/DLL/SO、破解、找密码、漏洞分析、病毒分析、firmware 固件分析,或需要分析 exe/dll/so/elf/macho/sys 等文件时,务必使用此技能。 Ensure to use this skill when the user wants to analyze any binary file, regardless of whether they explicitly mention "IDA" or "reverse engineering". This includes requests like "看看这个exe", "分析这个dll", "帮我破解", "找一下密码", "这个软件怎么注册", etc. Use the bundled scripts (scripts/sta

repo: zhaoxuya520/reverse-skill

Popularidade

Estrelas no GitHub
42 mil
Posição no ranking
#4769
Licença
MIT
Atualizada em
22/09/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas