Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
idalib-cli — Agent-native CLI, das IDA Pro IDALib für zustandslose Binäranalyse mit JSON-Ausgabe kapselt: Disassemblierung, Hex-Rays-Dekompilierung, CFG, Xrefs, Strings sowie Batch- oder parallele IDB-Verarbeitung. | Kitploit
Tools/GitHubGitHub/ylca0/idalib-cli
Statische AnalyseCode-AnalyseDynamische Code-Analyse (DAST)Reverse EngineeringScripting & AutomatisierungDienstprogramme & FrameworksBinäranalyseKI-gestütztes Reverse Engineering
GitHubylca0/idalib-cli

idalib-cli

Agent-native CLI, das IDA Pro IDALib für zustandslose Binäranalyse mit JSON-Ausgabe kapselt: Disassemblierung, Hex-Rays-Dekompilierung, CFG, Xrefs, Strings sowie Batch- oder parallele IDB-Verarbeitung.

56vor 3 TagenNoch nicht geprüft
Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

idalib-cli️ idalib-cli

Agent-native CLI für die IDA Pro IDALib — jeder Befehl akzeptiert ein -d/--db-Flag, jede Antwort ist JSON.

English · 中文

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


✨ Funktionen

  • 🗄️ Zustandslos — übergib -d/--db <PATH> (eine Binärdatei oder eine ); kein Daemon, keine Session-Verwaltung.
.i64
  • 💾 Persistenter IDB-Zustand — die IDB-Datei ist der Zustand: Kommentare, Lesezeichen, Namen und Analyse überleben über Prozesse hinweg.
  • 🧩 Vollständige IDALib-Abdeckung — Segmente, Funktionen, CFG, Disassembly, Hex-Rays-Dekompilierung, Strings, Namen, Xrefs, Einträge, Metadaten, Kommentare, Lesezeichen, FLIRT-Signaturen.
  • ⚡ Batch & Parallel — führe viele Befehle mit einer geöffneten IDB aus; verteile einen Befehl gleichzeitig auf viele Datenbanken (Glob unterstützt).
  • 🤖 Agent-First — ein JSON-Dokument auf stdout, Fehler auf stderr; Skills für Codex / Claude Code / OpenCode enthalten.
  • 🚀 Installation

    Voraussetzungen: IDA Pro 9.1 (lizenziert, einmal gestartet) · IDA 9.1 SDK entpackt (nur zur Build-Zeit) · Rust + LLVM/Clang (bindgen-Anforderungen)

    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
    

    Das SDK wird nur zur Build-Zeit benötigt; die Binärdatei linkt zur Laufzeit gegen deine lokale IDA-Installation. Dev-Checks ohne SDK: cargo test --no-default-features --features stub-idalib.

    🎮 Befehle & Verwendung

    Jeder Befehl benötigt -d/--db <PATH> — eine IDB-Datei (.i64) oder eine Binärdatei (eine IDB wird bei der ersten Verwendung daneben erstellt). Adressen akzeptieren 0x401000 oder 401000. Die Ausgabe ist immer ein JSON-Dokument; Fehler gehen an stderr mit einem Nicht-Null-Exit-Code.

    Datenbank

    BefehlBeschreibung
    idalib-cli -d <bin-or-i64> db infoAufgelöste Pfade, IDB-Zustand, Größe

    Abfrage

    BefehlBeschreibung
    idalib-cli -d <db> metaDateityp, Compiler, Bitness
    idalib-cli -d <db> processorProzessor-Info
    idalib-cli -d <db> segmentsAlle Segmente
    idalib-cli -d <db> segments-by-range -a <ea>Segment, das eine Adresse enthält
    idalib-cli -d <db> functions [-u]Funktionsliste (-u = lib/thunk überspringen)
    idalib-cli -d <db> function -a <ea>Eine Funktion: CFG, Blöcke, Xrefs
    idalib-cli -d <db> disasm -a <ea> [-n N]N Instruktionen disassemblieren (Standard 8)
    idalib-cli -d <db> decompile -a <ea> [--all-blocks]Hex-Rays-Pseudocode
    idalib-cli -d <db> insn -a <ea>Einzelne Instruktion (+ group/is_call/is_ret-Klassifizierung)
    idalib-cli -d <db> stringsString-Liste
    idalib-cli -d <db> namesBenannte Speicherorte
    idalib-cli -d <db> xrefs [-a <ea>] [--all] [--from]Xrefs zu einer Adresse (Standard) oder von ihr (--from), oder alle
    idalib-cli -d <db> find --text <s>Text-Treffer suchen
    idalib-cli -d <db> find --imm 0x1337Immediate-Wert-Treffer suchen
    idalib-cli -d <db> find --pattern 554889e5Ein Hex-Byte-Muster suchen
    idalib-cli -d <db> bytes -a <ea> [-n N] [--width byte|word|dword|qword]Rohbytes (Hexdump) oder Little-Endian-Integer
    idalib-cli -d <db> entriesEinstiegspunkte

    Bearbeiten (in der IDB persistiert)

    BefehlBeschreibung
    idalib-cli -d <db> comments get|set|append|remove -a <ea> [-c "text"]Kommentare
    idalib-cli -d <db> bookmarks list|add|get|remove -a <ea> [-d "desc"]Lesezeichen
    idalib-cli -d <db> rename -a <ea> -n <name>Eine Funktion / ein Datenlabel umbenennen
    idalib-cli -d <db> set-type -a <ea> -t "int f(int, char *);"Eine C-Typdeklaration anwenden (Funktionsprototyp / Datentyp)
    idalib-cli -d <db> signatures --make [--only-pat]FLIRT-Signaturen generieren

    Kombinieren

    BefehlBeschreibung
    idalib-cli -d <db> batch -- <op> [<op>...]Sequenzielle Ops, IDB einmal geöffnet
    idalib-cli parallel -d <list|glob> [--jobs N] -- <op>Eine Op über viele DBs, jeweils als Subprozess
    idalib-cli info [--version|--ida|--all]Tool-/IDA-Version, Lizenz

    Szenario-Durchläufe

    🔎 Eine unbekannte Binärdatei triagieren

    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
    

    🔍 In eine Funktion eintauchen

    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
    

    📝 Erkenntnisse annotieren (überlebt über Prozesse/Agenten hinweg)

    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
    

    ⚡ Massenanalyse vieler Samples

    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"
    

    🔎 Rohdaten suchen & inspizieren

    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
    

    🤖 Agent-freundliche gebündelte Inspektion (ein JSON-Dokument)

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

    Agent-Workflow-Anleitung: skills/idalib-cli/SKILL.md; ein ausführbares End-to-End-Beispiel in examples/workflow.sh.

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

    ⚙️ Konfiguration

    Optional ~/.idapro/idalib-cli/config.toml (Basisverzeichnis: $IDALIB_CLI_HOME):

    FeldBeschreibung
    idadirIDA-Installationsverzeichnis (Standard: automatisch erkannt)
    idb_dirWo neue IDBs erstellt werden (Standard: neben der Binärdatei)
    default_dbWird verwendet, wenn -d weggelassen wird
    saveIDB nach jedem Befehl speichern (Standard true)
    auto_analyseVollständige Auto-Analyse beim Erstellen einer IDB ausführen (Standard true)

    ❓ FAQ

    Wohin geht die IDB, wenn ich eine Binärdatei übergebe?

    Neben die Binärdatei: ./target.bin → ./target.bin.i64. Setze idb_dir in der Konfiguration, um den Speicherort zu ändern.

    Was machen batch / parallel eigentlich?

    batch öffnet die IDB einmal und führt jede Op gegen dieses Handle aus (speichert einmal am Ende) — am besten, wenn du mehrere Fakten über eine Datenbank benötigst. parallel startet einen Subprozess pro Datenbank (IDALib ist nicht thread-sicher, daher Isolation per Prozess) mit einem Worker-Pool, begrenzt durch --jobs — am besten für viele Samples. -d akzeptiert einen einzelnen Pfad, eine kommagetrennte Liste oder ein Glob (*.i64).

    Können zwei Prozesse dieselbe IDB gleichzeitig verwenden?

    Nein. Ein Prozess pro IDB gleichzeitig. parallel respektiert dies, indem es einen Subprozess pro Datenbank startet; für manuelle Multi-Agent-Arbeit gib jedem Agenten sein eigenes -d-Ziel.

    Warum erfordert das Bauen das IDA SDK?

    idalib-rs generiert seine FFI-Bindings zur Kompilierzeit durch Parsen der SDK-Header (bindgen). Das SDK wird nur mit deiner Hex-Rays-Lizenz ausgeliefert und niemals weiterverbreitet oder eingebettet — die gebaute Binärdatei linkt zur Laufzeit gegen deine eigene IDA-Installation.

    📁 Projektstruktur

    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
    

    🌿 Versionen & Branches

    Tool-Versionen sind x.y.z; ein Dev- + ein Release-Branch pro Minor:

    RefZweckBeispiel
    mainneueste Entwicklung (Merge-Ziel von v*_dev)—
    v0.9_devEntwicklungsbranch für Tool 0.9.xaktuelle Arbeit
    v0.9_releasestabiler Branch für Tool 0.9.x (nur Fixes)Backports
    v0.9.1 (Tag)Release-Punktaktuelles Release
    Tool-VersionKompatible IDAidalib-rs
    0.9.x9.10.6.1 (gepinnt =0.6.1)
    nächste (v0.10_*)neue IDA-Versionaktualisierte Abhängigkeit

    Eine neue IDA-Version unterstützen = die idalib-Abhängigkeit aktualisieren, [package.metadata.ida] in Cargo.toml aktualisieren, eine neue Branch-Linie (v0.10_*) öffnen.

    📄 Lizenz

    Vertrieben unter der Apache License 2.0. Das license-Feld in Cargo.toml deklariert MIT OR Apache-2.0 für Kompatibilität mit idalib-rs-Abhängigkeiten; dieses Repository liefert nur den Apache-2.0-Text mit. Das IDA SDK niemals committen oder weiterverbreiten.


    English · 中文

    Tool herunterladen