Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
idalib-cli — CLI natif pour agent encapsulant IDA Pro IDALib pour une analyse binaire sans état avec sortie JSON : désassemblage, décompilation Hex-Rays, CFG, xrefs, chaînes de caractères, et traitement IDB par lots ou en parallèle. | Kitploit
Outils/GitHubGitHub/ylca0/idalib-cli
Analyse StatiqueAnalyse de CodeAnalyse Dynamique de Code (DAST)Rétro-ingénierieScripting et AutomatisationUtilitaires et FrameworksAnalyse de BinairesRétro-Ingénierie Assistée par IA
GitHubylca0/idalib-cli

idalib-cli

CLI natif pour agent encapsulant IDA Pro IDALib pour une analyse binaire sans état avec sortie JSON : désassemblage, décompilation Hex-Rays, CFG, xrefs, chaînes de caractères, et traitement IDB par lots ou en parallèle.

56il y a 3 joursPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

idalib-cli️ idalib-cli

CLI native pour agents dédiée à IDA Pro IDALib — chaque commande prend un seul flag -d/--db, chaque réponse est du JSON.

English · 中文

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


✨ Fonctionnalités

  • 🗄️ Sans état — passez -d/--db <PATH> (un binaire ou un ) ; pas de démon, pas de gestion de session.
.i64
  • 💾 État IDB persistant — le fichier IDB est l'état : commentaires, signets, noms et analyse survivent entre les processus.
  • 🧩 Couverture IDALib complète — segments, fonctions, CFG, désassemblage, décompilation Hex-Rays, chaînes, noms, xrefs, entrées, métadonnées, commentaires, signets, signatures FLIRT.
  • ⚡ batch & parallèle — exécutez de nombreuses commandes avec un seul IDB ouvert ; diffusez une commande vers plusieurs bases de données en parallèle (glob pris en charge).
  • 🤖 Agent-first — un document JSON sur stdout, les erreurs sur stderr ; compétences incluses pour Codex / Claude Code / OpenCode.
  • 🚀 Installation

    Prérequis : IDA Pro 9.1 (sous licence, lancé une fois) · SDK IDA 9.1 décompressé (uniquement au moment de la compilation) · Rust + LLVM/Clang (prérequis 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
    

    Le SDK est nécessaire uniquement au moment de la compilation ; le binaire se lie à vos bibliothèques IDA locales à l'exécution. Vérifications de développement sans SDK : cargo test --no-default-features --features stub-idalib.

    🎮 Commandes & utilisation

    Chaque commande nécessite -d/--db <PATH> — un fichier IDB (.i64) ou un binaire (un IDB est créé à côté lors de la première utilisation). Les adresses acceptent 0x401000 ou 401000. La sortie est toujours un seul document JSON ; les erreurs vont sur stderr avec un code de sortie non nul.

    Base de données

    CommandeDescription
    idalib-cli -d <bin-or-i64> db infoChemins résolus, état IDB, taille

    Requête

    CommandeDescription
    idalib-cli -d <db> metaType de fichier, compilateur, bitness
    idalib-cli -d <db> processorInformations sur le processeur
    idalib-cli -d <db> segmentsTous les segments
    idalib-cli -d <db> segments-by-range -a <ea>Segment contenant une adresse
    idalib-cli -d <db> functions [-u]Liste des fonctions (-u = ignorer lib/thunk)
    idalib-cli -d <db> function -a <ea>Une fonction : CFG, blocs, xrefs
    idalib-cli -d <db> disasm -a <ea> [-n N]Désassembler N instructions (par défaut 8)
    idalib-cli -d <db> decompile -a <ea> [--all-blocks]Pseudo-code Hex-Rays
    idalib-cli -d <db> insn -a <ea>Instruction unique (+ classification group/is_call/is_ret)
    idalib-cli -d <db> stringsListe des chaînes
    idalib-cli -d <db> namesEmplacements nommés
    idalib-cli -d <db> xrefs [-a <ea>] [--all] [--from]Xrefs vers une adresse (par défaut) ou depuis celle-ci (--from), ou toutes
    idalib-cli -d <db> find --text <s>Rechercher des occurrences de texte
    idalib-cli -d <db> find --imm 0x1337Rechercher des occurrences de valeur immédiate
    idalib-cli -d <db> find --pattern 554889e5Rechercher un motif d'octets hexadécimal
    idalib-cli -d <db> bytes -a <ea> [-n N] [--width byte|word|dword|qword]Octets bruts (hexdump) ou entiers little-endian
    idalib-cli -d <db> entriesPoints d'entrée

    Édition (persistée dans l'IDB)

    CommandeDescription
    idalib-cli -d <db> comments get|set|append|remove -a <ea> [-c "text"]Commentaires
    idalib-cli -d <db> bookmarks list|add|get|remove -a <ea> [-d "desc"]Signets
    idalib-cli -d <db> rename -a <ea> -n <name>Renommer une fonction / un label de données
    idalib-cli -d <db> set-type -a <ea> -t "int f(int, char *);"Appliquer une déclaration de type C (prototype de fonction / type de données)
    idalib-cli -d <db> signatures --make [--only-pat]Générer des signatures FLIRT

    Combiner

    CommandeDescription
    idalib-cli -d <db> batch -- <op> [<op>...]Opérations séquentielles, IDB ouvert une seule fois
    idalib-cli parallel -d <list|glob> [--jobs N] -- <op>Une opération sur plusieurs DBs, un sous-processus chacune
    idalib-cli info [--version|--ida|--all]Version de l'outil / d'IDA, licence

    Scénarios pas à pas

    🔎 Triage d'un binaire inconnu

    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
    

    🔍 Approfondir une fonction

    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
    

    📝 Annoter les découvertes (survit entre les processus/agents)

    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
    

    ⚡ Analyse en masse de nombreux échantillons

    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"
    

    🔎 Rechercher & inspecter des données brutes

    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
    

    🤖 Inspection par lots adaptée aux agents (un seul document JSON)

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

    Guide de workflow pour agents : skills/idalib-cli/SKILL.md ; un exemple de bout en bout exécutable dans examples/workflow.sh.

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

    ⚙️ Configuration

    Fichier optionnel ~/.idapro/idalib-cli/config.toml (répertoire de base : $IDALIB_CLI_HOME) :

    ChampDescription
    idadirRépertoire d'installation d'IDA (par défaut : auto-détecté)
    idb_dirOù les nouveaux IDB sont créés (par défaut : à côté du binaire)
    default_dbUtilisé lorsque -d est omis
    saveSauvegarder l'IDB après chaque commande (par défaut true)
    auto_analyseExécuter l'auto-analyse complète lors de la création d'un IDB (par défaut true)

    ❓ FAQ

    Où va l'IDB lorsque je passe un binaire ?

    À côté du binaire : ./target.bin → ./target.bin.i64. Définissez idb_dir dans la configuration pour changer l'emplacement.

    Que font réellement batch / parallel ?

    batch ouvre l'IDB une seule fois et exécute chaque opération sur ce handle (sauvegarde une fois à la fin) — idéal lorsque vous avez besoin de plusieurs informations sur une seule base de données. parallel lance un sous-processus par base de données (IDALib n'est pas thread-safe, donc l'isolation se fait par processus) avec un pool de workers plafonné par --jobs — idéal pour de nombreux échantillons. -d accepte un chemin unique, une liste séparée par des virgules, ou un glob (*.i64).

    Deux processus peuvent-ils utiliser le même IDB en même temps ?

    Non. Un processus par IDB à la fois. parallel respecte cela en lançant un sous-processus par base de données ; pour le travail manuel multi-agents, donnez à chaque agent sa propre cible -d.

    Pourquoi la compilation nécessite-t-elle le SDK IDA ?

    idalib-rs génère ses bindings FFI au moment de la compilation en analysant les en-têtes du SDK (bindgen). Le SDK n'est fourni qu'avec votre licence Hex-Rays et n'est jamais redistribué ni intégré — le binaire compilé se lie à votre propre installation IDA à l'exécution.

    📁 Structure du projet

    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
    

    🌿 Versions & branches

    Les versions de l'outil sont x.y.z ; une branche de développement + une branche de release par version mineure :

    RéfObjectifExemple
    maindernier développement (cible de fusion de v*_dev)—
    v0.9_devbranche de développement pour l'outil 0.9.xtravail en cours
    v0.9_releasebranche stable pour l'outil 0.9.x (correctifs uniquement)backports
    v0.9.1 (tag)point de releaserelease actuelle
    Version de l'outilIDA compatibleidalib-rs
    0.9.x9.10.6.1 (épinglé =0.6.1)
    suivante (v0.10_*)nouvelle version d'IDAdépendance mise à jour

    Prendre en charge une nouvelle version d'IDA = mettre à jour la dépendance idalib, mettre à jour [package.metadata.ida] dans Cargo.toml, ouvrir une nouvelle ligne de branche (v0.10_*).

    📄 Licence

    Distribué sous la Apache License 2.0. Le champ license dans Cargo.toml déclare MIT OR Apache-2.0 pour la compatibilité avec les dépendances idalib-rs ; ce dépôt ne fournit que le texte Apache-2.0. Ne jamais committer ni redistribuer le SDK IDA.


    English · 中文

    Télécharger l’outil