
IDAssist v2.3.0
Plugin de Engenharia Reversa com IA para IDA Pro
IDAssist
Plugin de Engenharia Reversa com IA para o IDA Pro
Autor: Jason Tang
Descrição
O IDAssist é um plugin para IDA Pro que integra análise baseada em LLM diretamente na interface do IDA, fornecendo engenharia reversa de binários assistida por IA por meio de provedores LLM configuráveis, gráficos de conhecimento semântico, pesquisa de documentos RAG e suporte a uma grande diversidade de provedores LLM.
Construído com Python e PySide6, o IDAssist é executado como um painel acoplável dentro do IDA Pro 9.0+ e se comunica com provedores LLM (OpenAI, Anthropic, Ollama, LiteLLM e outros) para analisar funções, sugerir renomeações, responder perguntas sobre código e construir um gráfico de conhecimento pesquisável de um binário inteiro.

Principais Funcionalidades
Explicação de Funções — Gere explicações detalhadas em linguagem natural de funções descompiladas com análise automática de segurança, incluindo nível de risco, perfil de atividade, flags de segurança e detecção de API.
Chat de Consulta Interativo — Faça perguntas sobre o binário com histórico de chat persistente. Use macros de contexto (#func, #addr, #line, #range) para injetar código de função, endereços ou intervalos de desmontagem nas consultas.
Ações Automatizadas — Sugestões de renomeação assistidas por IA para funções, variáveis e tipos. Revise as alterações propostas em uma tabela com pontuações de confiança e aplique as ações selecionadas de volta ao IDB.
Gráfico de Conhecimento Semântico — Construa e explore um gráfico de conhecimento das funções do binário, relacionamentos de chamada, fluxos de dados e características de segurança. Inclui renderização gráfica visual, pesquisa semântica e detecção de comunidades.
Pesquisa de Documentos RAG — Faça upload de documentos de referência (.txt, .md, .rst, .pdf) e use-os como contexto durante consultas LLM. Suporta pesquisa híbrida texto+vetor via indexação Whoosh.
Integração SymGraph — Envie e receba nomes de funções, nomes de variáveis, tipos e dados de gráfico para a plataforma colaborativa SymGraph. Inclui um assistente de várias etapas com resolução de conflitos para pull.
Gerenciamento de Configurações — Configure vários provedores LLM e MCP, gerencie credenciais da API SymGraph, customize o prompt do sistema e defina caminhos de banco de dados.
Capacidades Avançadas
Agente ReAct
A aba Consulta suporta um modo de agente autônomo ReAct (Raciocínio + Ação). Quando ativado, o LLM planeja uma estratégia de investigação, executa ferramentas para coletar informações, reflete sobre as descobertas e sintetiza uma resposta abrangente — tudo automaticamente em várias rodadas de raciocínio.
Pensamento Estendido
Configure níveis de esforço de raciocínio para controlar quanto o LLM "pensa" antes de responder:
| Nível | Orçamento de Pensamento | Melhor para |
|---|---|---|
| Nenhum | Desativado | Consultas rápidas e simples |
| Baixo | ~2K tokens | Análise direta |
| Médio | ~10K tokens | Complexidade moderada |
| Alto | ~25K tokens | Análise profunda, código complexo |
Integração MCP
O IDAssist pode se conectar a servidores MCP externos para interações LLM aumentadas por ferramentas, onde o modelo pode inspecionar funções programaticamente, ler desmontagem, consultar referências cruzadas e modificar o IDB durante o raciocínio. São suportados tanto servidores MCP baseados em URL (SSE ou HTTP Streamable) quanto servidores MCP baseados em stdio iniciados a partir de um comando CLI local. O IDAssist também fornece ferramentas internas integradas para chamada de funções sem exigir um servidor MCP externo.
Chamada de Funções
Provedores LLM com suporte a chamada de ferramentas podem invocar funções de análise do IDA durante a conversa, permitindo investigação iterativa sem intervenção manual.
Feedback RLHF
Forneça feedback positivo/negativo sobre explicações e respostas de consultas. O feedback é armazenado localmente e pode ser usado para melhorar a engenharia de prompts e a seleção de modelos.
Arquitetura
O IDAssist segue um padrão MVC (Model-View-Controller):
- Views (
src/views/) — Widgets de aba PySide6 que emitem sinais na interação do usuário - Controllers (
src/controllers/) — Conectam sinais da view a chamadas de serviço, gerenciam estado - Services (
src/services/) — Lógica de negócios, provedores LLM, acesso a banco de dados, análise de gráficos - Ferramentas Internas (
src/services/internal_tools.py) — Definições de ferramentas específicas do IDA para chamada de funções LLM - Ferramentas de Gráfico (
src/services/graphrag/graphrag_tools.py) — Ferramentas de leitura/escrita de gráfico semântico para interação LLM
Princípios de design principais:
- Todas as chamadas de API do IDA são executadas na thread principal via
execute_on_main_thread() - As respostas do LLM são transmitidas incrementalmente para a interface
- Bancos de dados SQLite locais para persistência (nenhum banco de dados externo necessário)
- Registro de serviços singleton com inicialização thread-safe
Início Rápido
-
Instale o plugin (recomendado — Gerenciador de Plugins do IDA):
hcli plugin install idassistIsso instala automaticamente o plugin e suas dependências Python no ambiente do IDA.
-
Ou instale manualmente (a partir do tarball de lançamento):
Baixe o zip da última versão em GitHub Releases e extraia-o no diretório de plugins do IDA:
Linux / macOS:
unzip IDAssist-*.zip -d ~/.idapro/plugins/Windows: Extraia o zip em
%APPDATA%\Hex-Rays\IDA Pro\plugins\.Em seguida, instale as dependências usando o Python empacotado do IDA (não o Python do sistema):
Linux / macOS:
<IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssist/requirements.txtWindows:
"<IDA_INSTALL_DIR>\python3\python.exe" -m pip install -r "%APPDATA%\Hex-Rays\IDA Pro\plugins\IDAssist\requirements.txt"Substitua
<IDA_INSTALL_DIR>pelo caminho de instalação do seu IDA Pro (por exemplo,/opt/idapro-9.0ouC:\Program Files\IDA Pro 9.0).Dica: Você também pode definir a variável de ambiente
IDAUSRpara um diretório personalizado contendo um subdiretórioplugins/. -
Abra o IDAssist: Inicie o IDA Pro, abra um binário e pressione
Ctrl+Shift+A(ou Edit > Plugins > IDAssist). -
Configure um provedor: Vá para a aba Configurações, clique em Adicionar em Provedores LLM e configure seu provedor preferido.
-
Analise uma função: Navegue até qualquer função, clique na aba Explicar e pressione Explicar Função.
Para instruções detalhadas de configuração, veja Primeiros Passos.
Configuração do Provedor LLM
O IDAssist suporta os seguintes tipos de provedor:
| Tipo | Método de Autenticação | Notas |
|---|---|---|
anthropic_platform | API Key | API Anthropic direta |
anthropic_oauth | OAuth (navegador) | Autenticação baseada em navegador |
anthropic_claude_cli | CLI local | Usa o binário claude da CLI |
bedrock | Credenciais AWS | API AWS Bedrock Converse direta |
openai_platform | API Key | API OpenAI direta |
openai_oauth | OAuth (navegador) | Autenticação baseada em navegador |
ollama | Nenhum (local) | Modelos auto-hospedados |
litellm | URL de Proxy | Proxy multi-provedor |
Modelos Recomendados
| Provedor | Modelo | Pontos Fortes |
|---|---|---|
| Anthropic | claude-sonnet-4-6 | Análise de código forte, pensamento estendido |
| OpenAI | gpt-5.3-codex | Rápido, boa análise geral |
| Ollama | qwen2.5-coder:32b | Local, não precisa de chave API |
Usando o Gráfico Semântico
A aba Gráfico Semântico fornece um gráfico de conhecimento do binário:
- ReIndexar Binário — Extrai estrutura de funções, grafo de chamadas e referências cruzadas
- Análise Semântica — Gera resumos LLM para cada função
- Análise de Segurança — Detecta padrões de vulnerabilidade e APIs relevantes para segurança
- Fluxo de Rede — Rastreia operações de rede através do grafo de chamadas
- Detecção de Comunidades — Agrupa funções relacionadas em módulos
Explore o gráfico via Visualização em Lista (chamadores, chamados, arestas, flags), Gráfico Visual (diagrama de nós interativo com expansão N-hop) ou Pesquisa (7 tipos de consulta, incluindo pesquisa semântica, funções semelhantes e contexto de chamada).
Ações do Menu de Contexto
Clique com o botão direito em qualquer visualização de Desmontagem ou Pseudocódigo para acessar:
| Ação | Atalho | Efeito |
|---|---|---|
| Explicar Função | Ctrl+Shift+E | Abre a aba Explicar e gera explicação |
| Perguntar Sobre Seleção | Ctrl+Shift+Q | Abre a aba Consulta com contexto #func |
| Sugestões de Renomeação | — | Abre a aba Ações e gera sugestões |
Requisitos
- IDA Pro 9.0+ com Python 3 e PySide6
- Decompilador Hex-Rays (recomendado para recursos de pseudocódigo)
- Pacotes Python listados em
requirements.txt
Documentação
- Índice de Documentação
- Primeiros Passos
- Referências de Abas: Explicar | Consulta | Ações | Gráfico Semântico | RAG | Configurações
- Fluxos de Trabalho: Explicar | Consulta | Gráfico Semântico
Página Inicial
Licença
Consulte o arquivo LICENSE para obter detalhes.