Torna agli aggiornamenti
New releaseSep 3, 2026

IDAssist v2.3.0

Plugin di reverse engineering basato sull'IA per IDA Pro

Condividi

IDAssist

Plugin di Reverse Engineering Alimentato dall'IA per IDA Pro

Autore: Jason Tang

Descrizione

IDAssist è un plugin per IDA Pro che integra l'analisi basata su LLM direttamente nell'interfaccia di IDA, offrendo reverse engineering binario assistito dall'IA attraverso provider LLM configurabili, grafi di conoscenza semantica, ricerca documentale RAG, e supporta un'ampia varietà di provider LLM.

Costruito con Python e PySide6, IDAssist funge da pannello ancorabile all'interno di IDA Pro 9.0+ e comunica con provider LLM (OpenAI, Anthropic, Ollama, LiteLLM e altri) per analizzare funzioni, suggerire rinomine, rispondere a domande sul codice e costruire un grafo di conoscenza ricercabile dell'intero binario.

Schermata

Funzionalità Principali

Spiegazione delle Funzioni — Genera spiegazioni dettagliate in linguaggio naturale delle funzioni decompilate con analisi di sicurezza automatica che include livello di rischio, profilo di attività, flag di sicurezza e rilevamento API.

Chat di Query Interattiva — Poni domande sul binario con cronologia chat persistente. Usa le macro di contesto (#func, #addr, #line, #range) per iniettare codice di funzioni, indirizzi o intervalli di disassemblaggio nelle query.

Azioni Automatiche — Suggerimenti di rinomina basati sull'IA per funzioni, variabili e tipi. Rivedi le modifiche proposte in una tabella con punteggi di confidenza, poi applica le azioni selezionate all'IDB.

Grafo di Conoscenza Semantica — Costruisci ed esplora un grafo di conoscenza delle funzioni del binario, delle relazioni di chiamata, dei flussi di dati e delle caratteristiche di sicurezza. Include rendering visivo del grafo, ricerca semantica e rilevamento di comunità.

Ricerca Documentale RAG — Carica documenti di riferimento (.txt, .md, .rst, .pdf) e usali come contesto durante le query LLM. Supporta la ricerca ibrida testo+vettore tramite indicizzazione Whoosh.

Integrazione SymGraph — Invia e ricevi nomi di funzioni, nomi di variabili, tipi e dati del grafo sulla piattaforma collaborativa SymGraph. Include una procedura guidata multi-step con risoluzione dei conflitti per i pull.

Gestione delle Impostazioni — Configura più provider LLM e MCP, gestisci le credenziali API di SymGraph, personalizza il prompt di sistema e imposta i percorsi dei database.

Capacità Avanzate

Agente ReAct

La scheda Query supporta una modalità agente ReAct (Reasoning + Acting) autonoma. Quando abilitata, l'LLM pianifica una strategia di indagine, esegue strumenti per raccogliere informazioni, riflette sui risultati e sintetizza una risposta completa — tutto automaticamente attraverso più cicli di ragionamento.

Pensiero Esteso

Configura i livelli di sforzo di ragionamento per controllare quanto l'LLM 'pensa' prima di rispondere:

LivelloBudget di PensieroIdeale per
NessunoDisabilitatoQuery veloci e semplici
Basso~2K tokenAnalisi semplice
Medio~10K tokenComplessità moderata
Alto~25K tokenAnalisi approfondita, codice complesso

Integrazione MCP

IDAssist può connettersi a server MCP esterni per interazioni LLM potenziate da strumenti, dove il modello può ispezionare programmaticamente le funzioni, leggere il disassemblaggio, interrogare i cross-reference e modificare l'IDB durante il ragionamento. Sono supportati sia server MCP basati su URL (SSE o Streamable HTTP) sia server MCP basati su stdio avviati da un comando CLI locale. IDAssist fornisce anche strumenti interni integrati per il function calling senza richiedere un server MCP esterno.

Function Calling

I provider LLM con supporto per tool-calling possono invocare funzioni di analisi di IDA a metà conversazione, consentendo un'indagine iterativa senza intervento manuale.

Feedback RLHF

Fornisci feedback pollice su/pollice giù su spiegazioni e risposte alle query. Il feedback viene archiviato localmente e può essere utilizzato per migliorare l'ingegneria del prompt e la selezione del modello.

Architettura

IDAssist segue un pattern MVC (Model-View-Controller):

  • Viste (src/views/) — Widget di scheda PySide6 che emettono segnali sull'interazione utente
  • Controller (src/controllers/) — Collegano i segnali delle viste alle chiamate dei servizi, gestiscono lo stato
  • Servizi (src/services/) — Logica di business, provider LLM, accesso al database, analisi del grafo
  • Strumenti Interni (src/services/internal_tools.py) — Definizioni di strumenti specifici di IDA per il function calling LLM
  • Strumenti del Grafo (src/services/graphrag/graphrag_tools.py) — Strumenti di lettura/scrittura del grafo semantico per l'interazione LLM

Principi chiave di progettazione:

  • Tutte le chiamate API di IDA vengono eseguite sul thread principale tramite execute_on_main_thread()
  • Le risposte LLM vengono trasmesse in modo incrementale all'interfaccia utente
  • Database SQLite locali per la persistenza (nessun database esterno richiesto)
  • Registro dei servizi singleton con inizializzazione thread-safe

Avvio Rapido

  1. Installa il plugin (consigliato — IDA Plugin Manager):

    hcli plugin install idassist
    

    Questo installa automaticamente il plugin e le sue dipendenze Python nell'ambiente di IDA.

  2. Oppure installa manualmente (dal tarball della release):

    Scarica l'ultimo zip della release da GitHub Releases ed estrailo nella tua directory dei plugin di IDA:

    Linux / macOS:

    unzip IDAssist-*.zip -d ~/.idapro/plugins/
    

    Windows: Estrai lo zip in %APPDATA%\Hex-Rays\IDA Pro\plugins\.

    Poi installa le dipendenze usando il Python fornito con IDA (non il Python di 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"
    

    Sostituisci <IDA_INSTALL_DIR> con il percorso di installazione di IDA Pro (ad es., /opt/idapro-9.0 o C:\Program Files\IDA Pro 9.0).

    Suggerimento: Puoi anche impostare la variabile d'ambiente IDAUSR su una directory personalizzata contenente una sottodirectory plugins/.

  3. Apri IDAssist: Avvia IDA Pro, apri un binario e premi Ctrl+Shift+A (o Edit > Plugins > IDAssist).

  4. Configura un provider: Vai alla scheda Impostazioni, clicca Aggiungi sotto Provider LLM e configura il tuo provider preferito.

  5. Analizza una funzione: Vai a una qualsiasi funzione, clicca sulla scheda Spiegazione e premi Spiega Funzione.

Per istruzioni di configurazione dettagliate, vedi Per Iniziare.

Configurazione Provider LLM

IDAssist supporta i seguenti tipi di provider:

TipoMetodo di AutenticazioneNote
anthropic_platformChiave APIAPI Anthropic diretta
anthropic_oauthOAuth (browser)Autenticazione tramite browser
anthropic_claude_cliCLI localeUtilizza il binario CLI claude
bedrockCredenziali AWSAPI Converse AWS Bedrock diretta
openai_platformChiave APIAPI OpenAI diretta
openai_oauthOAuth (browser)Autenticazione tramite browser
ollamaNessuna (locale)Modelli self-hosted
litellmURL proxyProxy multi-provider

Modelli Consigliati

ProviderModelloPunti di Forza
Anthropicclaude-sonnet-4-6Forte analisi del codice, pensiero esteso
OpenAIgpt-5.3-codexVeloce, buona analisi generale
Ollamaqwen2.5-coder:32bLocale, nessuna chiave API necessaria

Utilizzo del Grafo Semantico

La scheda Grafo Semantico fornisce un grafo di conoscenza del binario:

  1. ReIndicizza il Binario — Estrae la struttura delle funzioni, il grafo delle chiamate e i cross-reference
  2. Analisi Semantica — Genera riassunti LLM per ogni funzione
  3. Analisi di Sicurezza — Rileva pattern di vulnerabilità e API rilevanti per la sicurezza
  4. Flusso di Rete — Traccia le operazioni di rete attraverso il grafo delle chiamate
  5. Rilevamento di Comunità — Raggruppa funzioni correlate in moduli

Esplora il grafo tramite la Vista Elenco (chiamanti, chiamati, archi, flag), Grafo Visivo (diagramma interattivo di nodi con espansione N-hop) o Ricerca (7 tipi di query inclusi ricerca semantica, funzioni simili e contesto di chiamata).

Azioni del Menu Contestuale

Fai clic con il tasto destro in qualsiasi vista Disassembly o Pseudocode per accedere:

AzioneTasto RapidoEffetto
Spiega FunzioneCtrl+Shift+EApre la scheda Spiegazione e genera una spiegazione
Chiedi sulla SelezioneCtrl+Shift+QApre la scheda Query con contesto #func
Suggerimenti di RinominaApre la scheda Azioni e genera suggerimenti

Requisiti

  • IDA Pro 9.0+ con Python 3 e PySide6
  • Decompilatore Hex-Rays (consigliato per le funzionalità di pseudocodice)
  • Pacchetti Python elencati in requirements.txt

Documentazione

Homepage

https://symgraph.ai

Licenza

Vedere il file LICENSE per i dettagli.

Categorie