Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
idalib-cli — CLI nativo per agenti che incapsula IDA Pro IDALib per l'analisi binaria stateless con output JSON: disassemblaggio, decompilazione Hex-Rays, CFG, xref, stringhe e elaborazione IDB in batch o parallela. | Kitploit
Strumenti/GitHubGitHub/ylca0/idalib-cli
Analisi StaticaAnalisi del CodiceAnalisi Dinamica del Codice (DAST)Reverse EngineeringScripting e AutomazioneUtilità e FrameworkAnalisi di BinariReverse Engineering Assistito dall'IA
GitHubylca0/idalib-cli

idalib-cli

CLI nativo per agenti che incapsula IDA Pro IDALib per l'analisi binaria stateless con output JSON: disassemblaggio, decompilazione Hex-Rays, CFG, xref, stringhe e elaborazione IDB in batch o parallela.

563 giorni faNon ancora revisionato
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

idalib-cli️ idalib-cli

CLI agent-native per IDA Pro IDALib — ogni comando accetta un flag -d/--db, ogni risposta è JSON.

English · 中文

IDA Pro 9.1 idalib-rs 0.6.1 v0.9.1 Apache-2.0


✨ Funzionalità

  • 🗄️ Senza stato — passa -d/--db <PATH> (un binario o un .i64); nessun daemon, nessuna gestione di sessione.
  • 💾 Stato IDB persistente — il file IDB è lo stato: commenti, segnalibri, nomi e analisi sopravvivono tra processi.
  • 🧩 Copertura IDALib completa — segmenti, funzioni, CFG, disassemblaggio, decompilazione Hex-Rays, stringhe, nomi, xref, entry, metadati, commenti, segnalibri, firme FLIRT.
  • ⚡ batch e parallelo — esegui molti comandi con un solo IDB aperto; distribuisci un comando su molti database in parallelo (glob supportato).
  • 🤖 Agent-first — un documento JSON su stdout, errori su stderr; skill incluse per Codex / Claude Code / OpenCode.
  • 🚀 Installazione

    Prerequisiti: IDA Pro 9.1 (con licenza, avviato almeno una volta) · IDA 9.1 SDK estratto (solo in fase di build) · Rust + LLVM/Clang (requisiti bindgen)

    root@kitploit:~
    export IDADIR="/Applications/IDA Professional 9.1.app/Contents/MacOS"  # IDA install dir
    export IDASDKDIR=/path/to/idasdk91                                     # unpacked SDK (absolute path!)
    
    git clone <this-repo> && cd idalib-cli
    cargo install --path .
    
    idalib-cli info    # ✅ verify tool version, IDA version, license
    

    L'SDK è necessario solo in fase di build; il binario collega le tue librerie IDA locali a runtime. Verifiche di sviluppo senza SDK: cargo test --no-default-features --features stub-idalib.

    🎮 Comandi e utilizzo

    Ogni comando richiede -d/--db <PATH> — un file IDB (.i64) o un binario (un IDB viene creato accanto ad esso al primo utilizzo). Gli indirizzi accettano 0x401000 o 401000. L'output è sempre un documento JSON; gli errori vanno su stderr con un codice di uscita non zero.

    Database

    ComandoDescrizione
    idalib-cli -d <bin-or-i64> db infoPercorsi risolti, stato IDB, dimensione

    Query

    ComandoDescrizione
    idalib-cli -d <db> metaTipo di file, compilatore, bitness
    idalib-cli -d <db> processorInformazioni sul processore
    idalib-cli -d <db> segmentsTutti i segmenti
    idalib-cli -d <db> segments-by-range -a <ea>Segmento che contiene un indirizzo
    idalib-cli -d <db> functions [-u]Elenco funzioni (-u = salta lib/thunk)
    idalib-cli -d <db> function -a <ea>Una funzione: CFG, blocchi, xref
    idalib-cli -d <db> disasm -a <ea> [-n N]Disassembla N istruzioni (default 8)
    idalib-cli -d <db> decompile -a <ea> [--all-blocks]Pseudo-codice Hex-Rays
    idalib-cli -d <db> insn -a <ea>Singola istruzione (+ classificazione group/is_call/is_ret)
    idalib-cli -d <db> stringsElenco stringhe
    idalib-cli -d <db> namesPosizioni con nome
    idalib-cli -d <db> xrefs [-a <ea>] [--all] [--from]Xref verso un indirizzo (default) o da esso (--from), o tutti
    idalib-cli -d <db> find --text <s>Cerca occorrenze di testo
    idalib-cli -d <db> find --imm 0x1337Cerca occorrenze di valore immediato
    idalib-cli -d <db> find --pattern 554889e5Cerca un pattern di byte esadecimale
    idalib-cli -d <db> bytes -a <ea> [-n N] [--width byte|word|dword|qword]Byte grezzi (hexdump) o interi little-endian
    idalib-cli -d <db> entriesPunti di ingresso

    Modifica (persistita nell'IDB)

    ComandoDescrizione
    idalib-cli -d <db> comments get|set|append|remove -a <ea> [-c "text"]Commenti
    idalib-cli -d <db> bookmarks list|add|get|remove -a <ea> [-d "desc"]Segnalibri
    idalib-cli -d <db> rename -a <ea> -n <name>Rinomina una funzione / etichetta dati
    idalib-cli -d <db> set-type -a <ea> -t "int f(int, char *);"Applica una dichiarazione di tipo C (prototipo di funzione / tipo di dato)
    idalib-cli -d <db> signatures --make [--only-pat]Genera firme FLIRT

    Combina

    ComandoDescrizione
    idalib-cli -d <db> batch -- <op> [<op>...]Operazioni sequenziali, IDB aperto una sola volta
    idalib-cli parallel -d <list|glob> [--jobs N] -- <op>Un'operazione su molti DB, un sottoprocesso ciascuno
    idalib-cli info [--version|--ida|--all]Versione tool / IDA, licenza

    Scenari di esempio

    🔎 Triage di un binario sconosciuto

    root@kitploit:~
    idalib-cli -d ./sample meta            # what is it? (filetype/compiler/bitness)
    idalib-cli -d ./sample segments        # memory layout
    idalib-cli -d ./sample strings         # quick hints
    idalib-cli -d ./sample functions -u    # user code only
    

    🔍 Approfondire una funzione

    root@kitploit:~
    idalib-cli -d ./sample function -a 0x401000       # CFG + blocks + xrefs
    idalib-cli -d ./sample decompile -a 0x401000      # read the pseudo-code
    idalib-cli -d ./sample disasm -a 0x401000 -n 20   # or the raw instructions
    idalib-cli -d ./sample xrefs -a 0x401000 --all    # who calls it
    

    📝 Annotare i risultati (sopravvive tra processi/agenti)

    root@kitploit:~
    idalib-cli -d ./sample comments set -a 0x401000 -c "parses config, see 0x402100"
    idalib-cli -d ./sample bookmarks add -a 0x401000 -d "entry point"
    idalib-cli -d ./sample comments get -a 0x401000    # verify
    

    ⚡ Analisi in blocco di molti campioni

    root@kitploit:~
    # first pass: create IDBs + overview for every sample
    idalib-cli parallel -d "./samples/*.bin" -- "batch -- meta functions -u"
    
    # deep pass: decompile one hot function in every IDB
    idalib-cli parallel -d "./samples/*.i64" --jobs 8 -- "decompile -a 0x401000"
    

    🔎 Cerca e ispeziona dati grezzi

    root@kitploit:~
    idalib-cli -d ./sample find --text "MAGIC"            # string hits
    idalib-cli -d ./sample find --imm 0x1337              # immediate-value hits
    idalib-cli -d ./sample find --pattern 554889e5        # byte pattern (prologue)
    idalib-cli -d ./sample bytes -a 0x401000 -n 32        # hexdump
    idalib-cli -d ./sample bytes -a 0x401000 --width qword -n 4
    idalib-cli -d ./sample xrefs -a 0x401000 --from       # outgoing refs (calls)
    idalib-cli -d ./sample rename -a 0x401000 -n decrypt  # label it
    idalib-cli -d ./sample set-type -a 0x401000 -t "int f(const char *, int);"  # set prototype
    

    🤖 Ispezione in batch per agenti (un documento JSON)

    root@kitploit:~
    idalib-cli -d ./sample batch -- "meta" "segments" "functions -u" "decompile -a 0x401000"
    

    Guida al flusso di lavoro per agenti: skills/idalib-cli/SKILL.md; un esempio end-to-end eseguibile in examples/workflow.sh.

    Output di esempio (decompile)
    root@kitploit:~
    {
      "id": 7,
      "start": "0x401000",
      "end": "0x401080",
      "size": 128,
      "name": "main",
      "blocks": 3,
      "decompiled": true,
      "pseudocode": "int __cdecl main(...) { ... }"
    }
    

    ⚙️ Configurazione

    File opzionale ~/.idapro/idalib-cli/config.toml (directory base: $IDALIB_CLI_HOME):

    CampoDescrizione
    idadirDirectory di installazione IDA (default: rilevata automaticamente)
    idb_dirDove vengono creati i nuovi IDB (default: accanto al binario)
    default_dbUsato quando -d è omesso
    saveSalva l'IDB dopo ogni comando (default true)
    auto_analyseEsegui l'auto-analisi completa quando crei un IDB (default true)

    ❓ FAQ

    Dove va l'IDB quando passo un binario?

    Accanto al binario: ./target.bin → ./target.bin.i64. Imposta idb_dir nella configurazione per cambiare la posizione.

    Cosa fanno esattamente batch / parallel?

    batch apre l'IDB una volta e esegue ogni operazione su quell'handle (salva una volta alla fine) — ideale quando ti servono diversi fatti su un singolo database. parallel avvia un sottoprocesso per database (IDALib non è thread-safe, quindi l'isolamento è per processo) con un pool di worker limitato da --jobs — ideale per molti campioni. -d accetta un singolo percorso, una lista separata da virgole o un glob (*.i64).

    Possono due processi usare lo stesso IDB contemporaneamente?

    No. Un processo per IDB alla volta. parallel rispetta questo avviando un sottoprocesso per database; per il lavoro manuale multi-agente, assegna a ogni agente il proprio target -d.

    Perché la build richiede l'IDA SDK?

    idalib-rs genera i suoi binding FFI in fase di compilazione analizzando gli header dell'SDK (bindgen). L'SDK viene fornito solo con la tua licenza Hex-Rays e non viene mai ridistribuito o incorporato — il binario compilato collega la tua installazione IDA a runtime.

    📁 Struttura del progetto

    root@kitploit:~
    idalib-cli/
    ├── src/
    │   ├── cli.rs            # clap definitions; every command + -d/--db
    │   ├── ops/              # metadata, comments, bookmarks, db, batch, parallel, ...
    │   ├── session/          # config.toml handling
    │   └── helpers/          # JSON output views
    ├── stubs/idalib/         # dev-only API stub (SDK-free checks, never shipped)
    ├── tests/                # integration tests
    ├── skills/idalib-cli/   # single agent skill (workflow guide)
    └── examples/workflow.sh  # runnable end-to-end example
    

    🌿 Versioni e branch

    Le versioni del tool sono x.y.z; un branch di sviluppo + uno di release per ogni minor:

    RefScopoEsempio
    mainsviluppo più recente (target di merge di v*_dev)—
    v0.9_devbranch di sviluppo per il tool 0.9.xlavoro corrente
    v0.9_releasebranch stabile per il tool 0.9.x (solo fix)backport
    v0.9.1 (tag)punto di rilasciorelease corrente
    Versione toolIDA compatibileidalib-rs
    0.9.x9.10.6.1 (pinned =0.6.1)
    next (v0.10_*)nuova versione IDAdipendenza aggiornata

    Supportare una nuova versione IDA = aggiornare la dipendenza idalib, aggiornare [package.metadata.ida] in Cargo.toml, aprire una nuova linea di branch (v0.10_*).

    📄 Licenza

    Distribuito sotto la Apache License 2.0. Il campo license in Cargo.toml dichiara MIT OR Apache-2.0 per compatibilità con le dipendenze di idalib-rs; questo repository include solo il testo Apache-2.0. Non committare né ridistribuire mai l'IDA SDK.


    English · 中文

    Scarica lo strumento