Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
IDAssist — Plugin di reverse engineering basato sull'IA per IDA Pro | Kitploit
Strumenti/GitHubGitHub/symgraph/idassist
Analisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceReverse EngineeringDebuggerRaccolta InformazioniAnalisi di BinariMachine LearningApprendimento e FormazioneReverse Engineering Assistito dall'IA
GitHub
705731811 mese faRevisionato da Kitploit
symgraph/idassist

IDAssist

Plugin di reverse engineering basato sull'IA per IDA Pro

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
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.

<!-- SCREENSHOT: IDAssist main interface showing the Explain tab with a function explanation and security analysis panel -->
![Schermata](https://assets.kitploit.com/production/public/readmes/13845/a8d641f250f37a6e8112849f84bbea6d77d333b63ca8f777fbdf93f9f0d137ce.gif)

## 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:

| Livello | Budget di Pensiero | Ideale per |
|---------|-------------------|------------|
| Nessuno | Disabilitato      | Query veloci e semplici |
| Basso   | ~2K token         | Analisi semplice |
| Medio   | ~10K token        | Complessità moderata |
| Alto    | ~25K token        | Analisi 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](https://github.com/jtang613/IDAssist/releases) ed estrailo nella tua directory dei plugin di IDA:

   **Linux / macOS:**
   ```bash
   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:**
   ```bash
   <IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssist/requirements.txt
   ```

   **Windows:**
   ```cmd
   "<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](https://github.com/symgraph/idassist/blob/master/docs/getting-started.md).

## Configurazione Provider LLM

IDAssist supporta i seguenti tipi di provider:

| Tipo | Metodo di Autenticazione | Note |
|------|--------------------------|------|
| `anthropic_platform` | Chiave API | API Anthropic diretta |
| `anthropic_oauth` | OAuth (browser) | Autenticazione tramite browser |
| `anthropic_claude_cli` | CLI locale | Utilizza il binario CLI `claude` |
| `bedrock` | Credenziali AWS | API Converse AWS Bedrock diretta |
| `openai_platform` | Chiave API | API OpenAI diretta |
| `openai_oauth` | OAuth (browser) | Autenticazione tramite browser |
| `ollama` | Nessuna (locale) | Modelli self-hosted |
| `litellm` | URL proxy | Proxy multi-provider |

### Modelli Consigliati

| Provider | Modello | Punti di Forza |
|----------|---------|----------------|
| Anthropic | `claude-sonnet-4-6` | Forte analisi del codice, pensiero esteso |
| OpenAI | `gpt-5.3-codex` | Veloce, buona analisi generale |
| Ollama | `qwen2.5-coder:32b` | Locale, 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:

| Azione | Tasto Rapido | Effetto |
|--------|--------------|---------|
| Spiega Funzione | `Ctrl+Shift+E` | Apre la scheda Spiegazione e genera una spiegazione |
| Chiedi sulla Selezione | `Ctrl+Shift+Q` | Apre la scheda Query con contesto `#func` |
| Suggerimenti di Rinomina | — | Apre 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

- [Indice della Documentazione](https://github.com/symgraph/idassist/blob/master/docs/index.md)
- [Per Iniziare](https://github.com/symgraph/idassist/blob/master/docs/getting-started.md)
- Riferimenti Schede: [Spiegazione](https://github.com/symgraph/idassist/blob/master/docs/tabs/explain-tab.md) | [Query](https://github.com/symgraph/idassist/blob/master/docs/tabs/query-tab.md) | [Azioni](https://github.com/symgraph/idassist/blob/master/docs/tabs/actions-tab.md) | [Grafo Semantico](https://github.com/symgraph/idassist/blob/master/docs/tabs/semantic-graph-tab.md) | [RAG](https://github.com/symgraph/idassist/blob/master/docs/tabs/rag-tab.md) | [Impostazioni](https://github.com/symgraph/idassist/blob/master/docs/tabs/settings-tab.md)
- Flussi di Lavoro: [Spiegazione](https://github.com/symgraph/idassist/blob/master/docs/workflows/explain-workflow.md) | [Query](https://github.com/symgraph/idassist/blob/master/docs/workflows/query-workflow.md) | [Grafo Semantico](https://github.com/symgraph/idassist/blob/master/docs/workflows/semantic-graph-workflow.md)

## Homepage

[https://symgraph.ai](https://symgraph.ai)

## Licenza

Vedere il file LICENSE per i dettagli.
Scarica lo strumento