Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
idalib-cli — CLI nativo para agentes que encapsula o IDA Pro IDALib para análise binária sem estado com saída JSON: desmontagem, descompilação Hex-Rays, CFG, xrefs, strings e processamento de IDB em lote ou paralelo. | Kitploit
Ferramentas/GitHubGitHub/ylca0/idalib-cli
Análise EstáticaAnálise de CódigoAnálise Dinâmica de Código (DAST)Engenharia ReversaScripting e AutomaçãoUtilitários e FrameworksAnálise de BináriosEngenharia Reversa Assistida por IA
GitHubylca0/idalib-cli

idalib-cli

CLI nativo para agentes que encapsula o IDA Pro IDALib para análise binária sem estado com saída JSON: desmontagem, descompilação Hex-Rays, CFG, xrefs, strings e processamento de IDB em lote ou paralelo.

56há 3 diasAinda não revisado
Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

idalib-cli️ idalib-cli

CLI nativa para agentes do IDA Pro IDALib — cada comando aceita uma flag -d/--db, cada resposta é JSON.

English · 中文

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


✨ Recursos

  • 🗄️ Sem estado — passe -d/--db <PATH> (um binário ou um .i64); sem daemon, sem controle de sessão.
  • 💾 Estado persistente do IDB — o arquivo IDB é o estado: comentários, favoritos, nomes e análise sobrevivem entre processos.
  • 🧩 Cobertura completa do IDALib — segmentos, funções, CFG, desmontagem, descompilação Hex-Rays, strings, nomes, xrefs, entradas, metadados, comentários, favoritos, assinaturas FLIRT.
  • ⚡ batch e paralelo — execute muitos comandos com um IDB aberto; distribua um comando para muitos bancos de dados simultaneamente (glob suportado).
  • 🤖 Focado em agentes — um documento JSON em stdout, erros em stderr; skills incluídas para Codex / Claude Code / OpenCode.
  • 🚀 Instalação

    Pré-requisitos: IDA Pro 9.1 (licenciado, iniciado uma vez) · SDK do IDA 9.1 descompactado (apenas em tempo de build) · Rust + LLVM/Clang (requisitos do 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
    

    O SDK é necessário apenas em tempo de build; o binário vincula suas bibliotecas locais do IDA em tempo de execução. Verificações de desenvolvimento sem um SDK: cargo test --no-default-features --features stub-idalib.

    🎮 Comandos e uso

    Todo comando precisa de -d/--db <PATH> — um arquivo IDB (.i64) ou um binário (um IDB é criado ao lado dele no primeiro uso). Endereços aceitam 0x401000 ou 401000. A saída é sempre um documento JSON; erros vão para stderr com um código de saída diferente de zero.

    Banco de dados

    ComandoDescrição
    idalib-cli -d <bin-or-i64> db infoCaminhos resolvidos, estado do IDB, tamanho

    Consulta

    ComandoDescrição
    idalib-cli -d <db> metaTipo de arquivo, compilador, bits
    idalib-cli -d <db> processorInformações do processador
    idalib-cli -d <db> segmentsTodos os segmentos
    idalib-cli -d <db> segments-by-range -a <ea>Segmento que contém um endereço
    idalib-cli -d <db> functions [-u]Lista de funções (-u = ignorar lib/thunk)
    idalib-cli -d <db> function -a <ea>Uma função: CFG, blocos, xrefs
    idalib-cli -d <db> disasm -a <ea> [-n N]Desmonta N instruções (padrão 8)
    idalib-cli -d <db> decompile -a <ea> [--all-blocks]Pseudo-código Hex-Rays
    idalib-cli -d <db> insn -a <ea>Instrução única (+ classificação group/is_call/is_ret)
    idalib-cli -d <db> stringsLista de strings
    idalib-cli -d <db> namesLocais nomeados
    idalib-cli -d <db> xrefs [-a <ea>] [--all] [--from]Xrefs para um endereço (padrão) ou a partir dele (--from), ou todos
    idalib-cli -d <db> find --text <s>Busca ocorrências de texto
    idalib-cli -d <db> find --imm 0x1337Busca ocorrências de valor imediato
    idalib-cli -d <db> find --pattern 554889e5Busca um padrão de bytes hex
    idalib-cli -d <db> bytes -a <ea> [-n N] [--width byte|word|dword|qword]Bytes brutos (hexdump) ou inteiros little-endian
    idalib-cli -d <db> entriesPontos de entrada

    Edição (persistida no IDB)

    ComandoDescrição
    idalib-cli -d <db> comments get|set|append|remove -a <ea> [-c "text"]Comentários
    idalib-cli -d <db> bookmarks list|add|get|remove -a <ea> [-d "desc"]Favoritos
    idalib-cli -d <db> rename -a <ea> -n <name>Renomeia uma função / rótulo de dados
    idalib-cli -d <db> set-type -a <ea> -t "int f(int, char *);"Aplica uma declaração de tipo C (protótipo de função / tipo de dados)
    idalib-cli -d <db> signatures --make [--only-pat]Gera assinaturas FLIRT

    Combinação

    ComandoDescrição
    idalib-cli -d <db> batch -- <op> [<op>...]Operações sequenciais, IDB aberto uma vez
    idalib-cli parallel -d <list|glob> [--jobs N] -- <op>Uma operação em muitos DBs, subprocesso para cada
    idalib-cli info [--version|--ida|--all]Versão da ferramenta / IDA, licença

    Passo a passo de cenários

    🔎 Triagem de um binário desconhecido

    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
    

    🔍 Aprofundar em uma função

    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 descobertas (sobrevive entre processos/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álise em massa de muitas amostras

    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 inspecionar dados brutos

    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
    

    🤖 Inspeção em lote amigável para agentes (um documento JSON)

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

    Guia de fluxo de trabalho para agentes: skills/idalib-cli/SKILL.md; um exemplo executável de ponta a ponta em examples/workflow.sh.

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

    ⚙️ Configuração

    Opcional ~/.idapro/idalib-cli/config.toml (diretório base: $IDALIB_CLI_HOME):

    CampoDescrição
    idadirDiretório de instalação do IDA (padrão: detectado automaticamente)
    idb_dirOnde novos IDBs são criados (padrão: ao lado do binário)
    default_dbUsado quando -d é omitido
    saveSalva o IDB após cada comando (padrão true)
    auto_analyseExecuta análise automática completa ao criar um IDB (padrão true)

    ❓ Perguntas frequentes

    Para onde vai o IDB quando passo um binário?

    Ao lado do binário: ./target.bin → ./target.bin.i64. Defina idb_dir na configuração para alterar o local.

    O que batch / parallel realmente fazem?

    batch abre o IDB uma vez e executa cada operação contra esse handle (salva uma vez no final) — melhor quando você precisa de vários fatos sobre um banco de dados. parallel gera um subprocesso por banco de dados (o IDALib não é thread-safe, então o isolamento é por processo) com um pool de workers limitado por --jobs — melhor para muitas amostras. -d aceita um único caminho, uma lista separada por vírgulas ou um glob (*.i64).

    Dois processos podem usar o mesmo IDB ao mesmo tempo?

    Não. Um processo por IDB por vez. parallel respeita isso gerando um subprocesso por banco de dados; para trabalho manual com múltiplos agentes, dê a cada agente seu próprio alvo -d.

    Por que a compilação exige o SDK do IDA?

    idalib-rs gera seus bindings FFI em tempo de compilação analisando os cabeçalhos do SDK (bindgen). O SDK é fornecido apenas com sua licença Hex-Rays e nunca é redistribuído ou embutido — o binário compilado vincula sua própria instalação do IDA em tempo de execução.

    📁 Estrutura do projeto

    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
    

    🌿 Versões e branches

    As versões da ferramenta são x.y.z; um branch de desenvolvimento + um de release por minor:

    RefPropósitoExemplo
    maindesenvolvimento mais recente (alvo de merge de v*_dev)—
    v0.9_devbranch de desenvolvimento para a ferramenta 0.9.xtrabalho atual
    v0.9_releasebranch estável para a ferramenta 0.9.x (apenas correções)backports
    v0.9.1 (tag)ponto de releaserelease atual
    Versão da ferramentaIDA compatívelidalib-rs
    0.9.x9.10.6.1 (fixado em =0.6.1)
    próxima (v0.10_*)nova versão do IDAdependência atualizada

    Suportar uma nova versão do IDA = atualizar a dependência idalib, atualizar [package.metadata.ida] em Cargo.toml, abrir uma nova linha de branch (v0.10_*).

    📄 Licença

    Distribuído sob a Apache License 2.0. O campo license em Cargo.toml declara MIT OR Apache-2.0 para compatibilidade com as dependências do idalib-rs; este repositório fornece apenas o texto da Apache-2.0. Nunca faça commit ou redistribua o SDK do IDA.


    English · 中文

    Baixar ferramenta