Volver a actualizaciones
Nuevo releaseSep 3, 2026

IDAssist v2.3.0

Plugin de Ingeniería Inversa Impulsado por IA para IDA Pro

Compartir

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.

Screenshot

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:

NivelPresupuesto de PensamientoMejor para
NingunoDeshabilitadoConsultas rápidas y simples
Bajo~2K tokensAnálisis directo
Medio~10K tokensComplejidad moderada
Alto~25K tokensAná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

  1. Instala el plugin (recomendado — Administrador de Plugins de IDA):

    hcli plugin install idassist
    

    Esto instala automáticamente el plugin y sus dependencias de Python en el entorno de IDA.

  2. 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.txt
    

    Windows:

    "<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.0 o C:\Program Files\IDA Pro 9.0).

    Consejo: También puedes establecer la variable de entorno IDAUSR en un directorio personalizado que contenga un subdirectorio plugins/.

  3. Abre IDAssist: Inicia IDA Pro, abre un binario y presiona Ctrl+Shift+A (o Editar > Plugins > IDAssist).

  4. Configura un proveedor: Ve a la pestaña de Configuración, haz clic en Agregar bajo Proveedores LLM y configura tu proveedor preferido.

  5. 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:

TipoMétodo de AutenticaciónNotas
anthropic_platformAPI KeyAPI directa de Anthropic
anthropic_oauthOAuth (navegador)Autenticación basada en navegador
anthropic_claude_cliCLI localUsa el binario CLI claude
bedrockCredenciales AWSAPI directa AWS Bedrock Converse
openai_platformAPI KeyAPI directa de OpenAI
openai_oauthOAuth (navegador)Autenticación basada en navegador
ollamaNinguno (local)Modelos autoalojados
litellmURL ProxyProxy multiproveedor

Modelos Recomendados

ProveedorModeloFortalezas
Anthropicclaude-sonnet-4-6Análisis de código sólido, pensamiento extendido
OpenAIgpt-5.3-codexRápido, buen análisis general
Ollamaqwen2.5-coder:32bLocal, no necesita clave API

Uso del Grafo Semántico

La pestaña Semantic Graph proporciona un grafo de conocimiento del binario:

  1. ReIndex Binary — Extrae la estructura de funciones, el grafo de llamadas y las referencias cruzadas
  2. Semantic Analysis — Genera resúmenes LLM para cada función
  3. Security Analysis — Detecta patrones de vulnerabilidad y APIs relevantes para seguridad
  4. Network Flow — Rastrea operaciones de red a través del grafo de llamadas
  5. 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ónAtajoEfecto
Explain FunctionCtrl+Shift+EAbre la pestaña Explain y genera una explicación
Ask About SelectionCtrl+Shift+QAbre la pestaña Query con contexto #func
Rename SuggestionsAbre 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

Página Principal

https://symgraph.ai

Licencia

Consulta el archivo LICENSE para más detalles.

Categorías