Volver a actualizaciones
Nuevo releaseSep 15, 2026

IDAssist v2.4.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:

Categorías