Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
idalib-cli — CLI nativo de agente que envuelve IDA Pro IDALib para análisis binario sin estado con salida JSON: desensamblado, descompilación Hex-Rays, CFG, xrefs, strings y procesamiento de IDB por lotes o en paralelo. | Kitploit
Herramientas/GitHubGitHub/ylca0/idalib-cli
Análisis EstáticoAnálisis de CódigoAnálisis Dinámico de Código (DAST)Ingeniería InversaScripting y AutomatizaciónUtilidades y FrameworksAnálisis de BinariosReversing Asistido por IA
GitHubylca0/idalib-cli

idalib-cli

CLI nativo de agente que envuelve IDA Pro IDALib para análisis binario sin estado con salida JSON: desensamblado, descompilación Hex-Rays, CFG, xrefs, strings y procesamiento de IDB por lotes o en paralelo.

56hace 3 díasAún no revisado
Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

idalib-cli️ idalib-cli

CLI nativa para agentes para IDA Pro IDALib — cada comando acepta un flag -d/--db, cada respuesta es JSON.

English · 中文

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


✨ Características

  • 🗄️ Sin estado — pasa -d/--db <PATH> (un binario o un .i64); sin daemon, sin gestión de sesiones.
  • 💾 Estado IDB persistente — el archivo IDB es el estado: comentarios, marcadores, nombres y análisis sobreviven entre procesos.
  • 🧩 Cobertura completa de IDALib — segmentos, funciones, CFG, desensamblado, descompilación Hex-Rays, cadenas, nombres, xrefs, entradas, metadatos, comentarios, marcadores, firmas FLIRT.
  • ⚡ batch y paralelo — ejecuta muchos comandos con un solo IDB abierto; distribuye un comando a muchas bases de datos de forma concurrente (soporta glob).
  • 🤖 Agent-first — un documento JSON en stdout, errores en stderr; skills incluidas para Codex / Claude Code / OpenCode.
  • 🚀 Instalación

    Requisitos previos: IDA Pro 9.1 (con licencia, iniciado al menos una vez) · SDK de IDA 9.1 descomprimido (solo en tiempo de compilación) · Rust + LLVM/Clang (requisitos de 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
    

    El SDK es necesario solo en tiempo de compilación; el binario enlaza tus bibliotecas locales de IDA en tiempo de ejecución. Comprobaciones de desarrollo sin SDK: cargo test --no-default-features --features stub-idalib.

    🎮 Comandos y uso

    Cada comando necesita -d/--db <PATH> — un archivo IDB (.i64) o un binario (se crea un IDB junto a él en el primer uso). Las direcciones aceptan 0x401000 o 401000. La salida es siempre un documento JSON; los errores van a stderr con un código de salida distinto de cero.

    Base de datos

    ComandoDescripción
    idalib-cli -d <bin-or-i64> db infoRutas resueltas, estado del IDB, tamaño

    Consulta

    ComandoDescripción
    idalib-cli -d <db> metaTipo de archivo, compilador, bits
    idalib-cli -d <db> processorInformación del procesador
    idalib-cli -d <db> segmentsTodos los segmentos
    idalib-cli -d <db> segments-by-range -a <ea>Segmento que contiene una dirección
    idalib-cli -d <db> functions [-u]Lista de funciones (-u = omitir lib/thunk)
    idalib-cli -d <db> function -a <ea>Una función: CFG, bloques, xrefs
    idalib-cli -d <db> disasm -a <ea> [-n N]Desensambla N instrucciones (por defecto 8)
    idalib-cli -d <db> decompile -a <ea> [--all-blocks]Pseudo-código de Hex-Rays
    idalib-cli -d <db> insn -a <ea>Instrucción única (+ clasificación group/is_call/is_ret)
    idalib-cli -d <db> stringsLista de cadenas
    idalib-cli -d <db> namesUbicaciones con nombre
    idalib-cli -d <db> xrefs [-a <ea>] [--all] [--from]Xrefs hacia una dirección (por defecto) o desde ella (--from), o todas
    idalib-cli -d <db> find --text <s>Busca coincidencias de texto
    idalib-cli -d <db> find --imm 0x1337Busca coincidencias de valor inmediato
    idalib-cli -d <db> find --pattern 554889e5Busca un patrón de bytes en hex
    idalib-cli -d <db> bytes -a <ea> [-n N] [--width byte|word|dword|qword]Bytes crudos (hexdump) o enteros little-endian
    idalib-cli -d <db> entriesPuntos de entrada

    Edición (persistida en el IDB)

    ComandoDescripción
    idalib-cli -d <db> comments get|set|append|remove -a <ea> [-c "text"]Comentarios
    idalib-cli -d <db> bookmarks list|add|get|remove -a <ea> [-d "desc"]Marcadores
    idalib-cli -d <db> rename -a <ea> -n <name>Renombra una función / etiqueta de datos
    idalib-cli -d <db> set-type -a <ea> -t "int f(int, char *);"Aplica una declaración de tipo C (prototipo de función / tipo de datos)
    idalib-cli -d <db> signatures --make [--only-pat]Genera firmas FLIRT

    Combinación

    ComandoDescripción
    idalib-cli -d <db> batch -- <op> [<op>...]Operaciones secuenciales, IDB abierto una vez
    idalib-cli parallel -d <list|glob> [--jobs N] -- <op>Una operación en muchas DBs, un subproceso por cada una
    idalib-cli info [--version|--ida|--all]Versión de la herramienta / IDA, licencia

    Recorridos de escenarios

    🔎 Triaje de un binario desconocido

    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
    

    🔍 Profundizar en una función

    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
    

    📝 Anotar hallazgos (sobrevive entre procesos/agentes)

    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
    

    ⚡ Análisis masivo de muchas muestras

    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"
    

    🔎 Buscar e inspeccionar datos crudos

    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
    

    🤖 Inspección por lotes para agentes (un documento JSON)

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

    Guía de flujo de trabajo para agentes: skills/idalib-cli/SKILL.md; un ejemplo ejecutable de extremo a extremo en examples/workflow.sh.

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

    ⚙️ Configuración

    Archivo opcional ~/.idapro/idalib-cli/config.toml (directorio base: $IDALIB_CLI_HOME):

    CampoDescripción
    idadirDirectorio de instalación de IDA (por defecto: autodetectado)
    idb_dirDónde se crean los nuevos IDBs (por defecto: junto al binario)
    default_dbSe usa cuando se omite -d
    saveGuarda el IDB después de cada comando (por defecto true)
    auto_analyseEjecuta el autoanálisis completo al crear un IDB (por defecto true)

    ❓ Preguntas frecuentes

    ¿Dónde va el IDB cuando paso un binario?

    Junto al binario: ./target.bin → ./target.bin.i64. Configura idb_dir en el archivo de configuración para cambiar la ubicación.

    ¿Qué hacen realmente batch / parallel?

    batch abre el IDB una vez y ejecuta cada operación contra ese handle (guarda una vez al final) — ideal cuando necesitas varios datos sobre una misma base de datos. parallel genera un subproceso por base de datos (IDALib no es thread-safe, así que el aislamiento es por proceso) con un pool de workers limitado por --jobs — ideal para muchas muestras. -d acepta una ruta única, una lista separada por comas o un glob (*.i64).

    ¿Pueden dos procesos usar el mismo IDB a la vez?

    No. Un proceso por IDB a la vez. parallel respeta esto generando un subproceso por base de datos; para trabajo manual con múltiples agentes, dale a cada agente su propio objetivo -d.

    ¿Por qué la compilación requiere el SDK de IDA?

    idalib-rs genera sus bindings FFI en tiempo de compilación analizando las cabeceras del SDK (bindgen). El SDK solo se distribuye con tu licencia de Hex-Rays y nunca se redistribuye ni se incrusta — el binario compilado enlaza tu propia instalación de IDA en tiempo de ejecución.

    📁 Estructura del proyecto

    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
    

    🌿 Versiones y ramas

    Las versiones de la herramienta son x.y.z; una rama de desarrollo + una de release por minor:

    RefPropósitoEjemplo
    mainúltimo desarrollo (destino de merge de v*_dev)—
    v0.9_devrama de desarrollo para la herramienta 0.9.xtrabajo actual
    v0.9_releaserama estable para la herramienta 0.9.x (solo correcciones)backports
    v0.9.1 (tag)punto de releaserelease actual
    Versión de la herramientaIDA compatibleidalib-rs
    0.9.x9.10.6.1 (fijado =0.6.1)
    siguiente (v0.10_*)nueva versión de IDAdependencia actualizada

    Dar soporte a una nueva versión de IDA = actualizar la dependencia idalib, actualizar [package.metadata.ida] en Cargo.toml, abrir una nueva línea de rama (v0.10_*).

    📄 Licencia

    Distribuido bajo la Apache License 2.0. El campo license en Cargo.toml declara MIT OR Apache-2.0 por compatibilidad con las dependencias de idalib-rs; este repositorio incluye únicamente el texto de Apache-2.0. Nunca hagas commit ni redistribuyas el SDK de IDA.


    English · 中文

    Descargar herramienta