
IDAssist v2.3.0
Plugin de Ingeniería Inversa Impulsado por IA para IDA Pro
IDAssist
Plugin de Ingeniería Inversa Potenciado por IA para IDA Pro
Autor: Jason Tang
Descripción
IDAssist es un plugin para IDA Pro que integra análisis potenciado por LLM directamente en la interfaz de IDA, proporcionando ingeniería inversa de binarios asistida por IA mediante proveedores LLM configurables, grafos de conocimiento semántico, búsqueda de documentos RAG, y soporta una amplia diversidad de proveedores LLM.
Construido con Python y PySide6, IDAssist se ejecuta como un panel acoplable dentro de IDA Pro 9.0+ y se comunica con proveedores LLM (OpenAI, Anthropic, Ollama, LiteLLM, y más) para analizar funciones, sugerir renombres, responder preguntas sobre el código y construir un grafo de conocimiento buscable de un binario completo.

Funcionalidades Principales
Explicación de Funciones — Genera explicaciones detalladas en lenguaje natural de funciones descompiladas con análisis de seguridad automático que incluye nivel de riesgo, perfil de actividad, banderas de seguridad y detección de APIs.
Chat de Consultas Interactivo — Haz preguntas sobre el binario con historial de chat persistente. Usa macros de contexto (#func, #addr, #line, #range) para inyectar código de funciones, direcciones o rangos de desensamblado en las consultas.
Acciones Automatizadas — Sugerencias de renombrado potenciadas por IA para funciones, variables y tipos. Revisa los cambios propuestos en una tabla con puntuaciones de confianza, luego aplica las acciones seleccionadas a la IDB.
Grafo de Conocimiento Semántico — Construye y explora un grafo de conocimiento de las funciones del binario, relaciones de llamadas, flujos de datos y características de seguridad. Incluye representación visual del grafo, búsqueda semántica y detección de comunidades.
Búsqueda de Documentos RAG — Sube documentos de referencia (.txt, .md, .rst, .pdf) y úsalos como contexto durante las consultas LLM. Soporta búsqueda híbrida texto+vector mediante indexación Whoosh.
Integración con SymGraph — Envía y recibe nombres de funciones, nombres de variables, tipos y datos del grafo hacia la plataforma colaborativa SymGraph. Incluye un asistente de varios pasos con resolución de conflictos para las descargas.
Gestión de Configuración — Configura múltiples proveedores LLM y MCP, gestiona credenciales de la API de SymGraph, personaliza el prompt del sistema y establece rutas de bases de datos.
Capacidades Avanzadas
Agente ReAct
La pestaña Query admite un modo de agente autónomo ReAct (Razonamiento + Actuación). Cuando está habilitado, el LLM planifica una estrategia de investigación, ejecuta herramientas para recopilar información, reflexiona sobre los hallazgos y sintetiza una respuesta completa, todo automáticamente a lo largo de múltiples rondas de razonamiento.
Pensamiento Extendido
Configura niveles de esfuerzo de razonamiento para controlar cuánto "piensa" el LLM antes de responder:
| Nivel | Presupuesto de Pensamiento | Mejor para |
|---|---|---|
| Ninguno | Deshabilitado | Consultas rápidas y simples |
| Bajo | ~2K tokens | Análisis directo |
| Medio | ~10K tokens | Complejidad moderada |
| Alto | ~25K tokens | Análisis profundo, código complejo |
Integración MCP
IDAssist puede conectarse a servidores MCP externos para interacciones LLM aumentadas con herramientas, donde el modelo puede inspeccionar funciones mediante programación, leer desensamblado, consultar referencias cruzadas y modificar la IDB durante el razonamiento. Se admiten tanto servidores MCP basados en URL (SSE o Streamable HTTP) como servidores MCP basados en stdio iniciados desde un comando CLI local. IDAssist también proporciona herramientas internas integradas para llamadas a funciones sin necesidad de un servidor MCP externo.
Llamadas a Funciones
Los proveedores LLM con soporte para llamadas a herramientas pueden invocar funciones de análisis de IDA durante la conversación, permitiendo una investigación iterativa sin intervención manual.
Retroalimentación RLHF
Proporciona retroalimentación de pulgar arriba/abajo sobre explicaciones y respuestas a consultas. La retroalimentación se almacena localmente y puede usarse para mejorar la ingeniería de prompts y la selección de modelos.
Arquitectura
IDAssist sigue un patrón MVC (Modelo-Vista-Controlador):
- Vistas (
src/views/) — Widgets de pestañas PySide6 que emiten señales al interactuar con el usuario - Controladores (
src/controllers/) — Conectan las señales de las vistas con las llamadas a servicios, gestionan el estado - Servicios (
src/services/) — Lógica de negocio, proveedores LLM, acceso a base de datos, análisis de grafos - Herramientas Internas (
src/services/internal_tools.py) — Definiciones de herramientas específicas de IDA para llamadas a funciones LLM - Herramientas de Grafo (
src/services/graphrag/graphrag_tools.py) — Herramientas de lectura/escritura de grafos semánticos para interacción LLM
Principios clave de diseño:
- Todas las llamadas a la API de IDA se ejecutan en el hilo principal mediante
execute_on_main_thread() - Las respuestas del LLM se transmiten de forma incremental a la interfaz de usuario
- Bases de datos SQLite locales para persistencia (no requiere base de datos externa)
- Registro de servicios singleton con inicialización segura para subprocesos
Inicio Rápido
-
Instala el plugin (recomendado — Administrador de Plugins de IDA):
hcli plugin install idassistEsto instala automáticamente el plugin y sus dependencias de Python en el entorno de IDA.
-
O instala manualmente (desde el archivo comprimido de la versión):
Descarga el zip de la última versión desde GitHub Releases y extráelo en tu directorio de plugins de IDA:
Linux / macOS:
unzip IDAssist-*.zip -d ~/.idapro/plugins/Windows: Extrae el zip en
%APPDATA%\Hex-Rays\IDA Pro\plugins\.Luego instala las dependencias usando el Python incluido con IDA (no el Python de tu 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"Reemplaza
<IDA_INSTALL_DIR>con la ruta de instalación de IDA Pro (por ejemplo,/opt/idapro-9.0oC:\Program Files\IDA Pro 9.0).Consejo: También puedes establecer la variable de entorno
IDAUSRen un directorio personalizado que contenga un subdirectorioplugins/. -
Abre IDAssist: Inicia IDA Pro, abre un binario y presiona
Ctrl+Shift+A(o Editar > Plugins > IDAssist). -
Configura un proveedor: Ve a la pestaña de Configuración, haz clic en Agregar bajo Proveedores LLM y configura tu proveedor preferido.
-
Analiza una función: Navega a cualquier función, haz clic en la pestaña Explain y presiona Explain Function.
Para instrucciones detalladas de configuración, consulta Primeros Pasos.
Configuración de Proveedores LLM
IDAssist soporta los siguientes tipos de proveedores:
| Tipo | Método de Autenticación | Notas |
|---|---|---|
anthropic_platform | API Key | API directa de Anthropic |
anthropic_oauth | OAuth (navegador) | Autenticación basada en navegador |
anthropic_claude_cli | CLI local | Usa el binario CLI claude |
bedrock | Credenciales AWS | API directa AWS Bedrock Converse |
openai_platform | API Key | API directa de OpenAI |
openai_oauth | OAuth (navegador) | Autenticación basada en navegador |
ollama | Ninguno (local) | Modelos autoalojados |
litellm | URL Proxy | Proxy multiproveedor |
Modelos Recomendados
| Proveedor | Modelo | Fortalezas |
|---|---|---|
| Anthropic | claude-sonnet-4-6 | Análisis de código sólido, pensamiento extendido |
| OpenAI | gpt-5.3-codex | Rápido, buen análisis general |
| Ollama | qwen2.5-coder:32b | Local, no necesita clave API |
Uso del Grafo Semántico
La pestaña Semantic Graph proporciona un grafo de conocimiento del binario:
- ReIndex Binary — Extrae la estructura de funciones, el grafo de llamadas y las referencias cruzadas
- Semantic Analysis — Genera resúmenes LLM para cada función
- Security Analysis — Detecta patrones de vulnerabilidad y APIs relevantes para seguridad
- Network Flow — Rastrea operaciones de red a través del grafo de llamadas
- Community Detection — Agrupa funciones relacionadas en módulos
Explora el grafo a través de la List View (llamadores, llamados, aristas, banderas), Visual Graph (diagrama de nodos interactivo con expansión de N saltos) o Search (7 tipos de consulta que incluyen búsqueda semántica, funciones similares y contexto de llamadas).
Acciones del Menú Contextual
Haz clic derecho en cualquier vista de Desensamblado o Pseudocódigo para acceder a:
| Acción | Atajo | Efecto |
|---|---|---|
| Explain Function | Ctrl+Shift+E | Abre la pestaña Explain y genera una explicación |
| Ask About Selection | Ctrl+Shift+Q | Abre la pestaña Query con contexto #func |
| Rename Suggestions | — | Abre la pestaña Actions y genera sugerencias |
Requisitos
- IDA Pro 9.0+ con Python 3 y PySide6
- Descompilador Hex-Rays (recomendado para funciones de pseudocódigo)
- Paquetes de Python listados en
requirements.txt
Documentación
- Índice de Documentación
- Primeros Pasos
- Referencias de Pestañas: Explain | Query | Actions | Semantic Graph | RAG | Settings
- Flujos de Trabajo: Explain | Query | Semantic Graph
Página Principal
Licencia
Consulta el archivo LICENSE para más detalles.