Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
idalib-cli — IDA Pro IDALib을 래핑하여 상태 비저장 JSON 출력 바이너리 분석을 제공하는 에이전트 네이티브 CLI: 디스어셈블리, Hex-Rays 디컴파일, CFG, 상호 참조, 문자열, 그리고 배치 또는 병렬 IDB 처리. | Kitploit
도구/GitHubGitHub/ylca0/idalib-cli
Static AnalysisCode AnalysisDynamic Code Analysis (DAST)Reverse EngineeringScripting & AutomationUtilities & FrameworksBinary AnalysisAI-Assisted Reversing
GitHubylca0/idalib-cli

idalib-cli

IDA Pro IDALib을 래핑하여 상태 비저장 JSON 출력 바이너리 분석을 제공하는 에이전트 네이티브 CLI: 디스어셈블리, Hex-Rays 디컴파일, CFG, 상호 참조, 문자열, 그리고 배치 또는 병렬 IDB 처리.

저장소 보기
563일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

idalib-cli️ idalib-cli

IDA Pro IDALib를 위한 에이전트 네이티브 CLI — 모든 명령은 하나의 -d/--db 플래그를 받고, 모든 응답은 JSON입니다.

English · 中文

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


✨ 기능

  • 🗄️ 무상태(Stateless) — -d/--db <PATH> (바이너리 또는 .i64)를 전달하세요. 데몬도, 세션 관리도 없습니다.
  • 💾 영구적인 IDB 상태 — IDB 파일이 곧 상태입니다. 주석, 북마크, 이름, 분석 결과가 프로세스 간에 유지됩니다.
  • 🧩 완전한 IDALib 지원 — 세그먼트, 함수, CFG, 디스어셈블리, Hex-Rays 디컴파일, 문자열, 이름, xref, 엔트리, 메타데이터, 주석, 북마크, FLIRT 시그니처.
  • ⚡ batch & parallel — 하나의 IDB를 열어둔 채 여러 명령을 실행하고, 하나의 명령을 여러 데이터베이스에 동시에 분산 실행합니다 (glob 지원).
  • 🤖 에이전트 우선 — stdout에는 하나의 JSON 문서, stderr에는 오류. Codex / Claude Code / OpenCode용 스킬 포함.
  • 🚀 설치

    사전 요구사항: IDA Pro 9.1 (라이선스 보유, 한 번 실행) · IDA 9.1 SDK 압축 해제 (빌드 시에만 필요) · Rust + LLVM/Clang (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
    

    SDK는 빌드 시에만 필요합니다. 바이너리는 런타임에 로컬 IDA 라이브러리를 링크합니다. SDK 없이 개발 검사를 하려면: cargo test --no-default-features --features stub-idalib.

    🎮 명령어 & 사용법

    모든 명령에는 -d/--db <PATH>가 필요합니다 — IDB 파일(.i64) 또는 바이너리 (처음 사용 시 옆에 IDB가 생성됨)입니다. 주소는 0x401000 또는 401000 형식을 받습니다. 출력은 항상 하나의 JSON 문서이며, 오류는 0이 아닌 종료 코드와 함께 stderr로 전달됩니다.

    데이터베이스

    명령어설명
    idalib-cli -d <bin-or-i64> db info확인된 경로, IDB 상태, 크기

    조회

    명령어설명
    idalib-cli -d <db> meta파일 형식, 컴파일러, 비트 수
    idalib-cli -d <db> processor프로세서 정보
    idalib-cli -d <db> segments모든 세그먼트
    idalib-cli -d <db> segments-by-range -a <ea>주소를 포함하는 세그먼트
    idalib-cli -d <db> functions [-u]함수 목록 (-u = lib/thunk 제외)
    idalib-cli -d <db> function -a <ea>단일 함수: CFG, 블록, xref
    idalib-cli -d <db> disasm -a <ea> [-n N]N개 명령어 디스어셈블 (기본값 8)
    idalib-cli -d <db> decompile -a <ea> [--all-blocks]Hex-Rays 의사 코드
    idalib-cli -d <db> insn -a <ea>단일 명령어 (+ group/is_call/is_ret 분류)
    idalib-cli -d <db> strings문자열 목록
    idalib-cli -d <db> names이름이 지정된 위치
    idalib-cli -d <db> xrefs [-a <ea>] [--all] [--from]주소로의 xref (기본값) 또는 주소로부터의 xref (--from), 또는 전체
    idalib-cli -d <db> find --text <s>텍스트 검색 결과
    idalib-cli -d <db> find --imm 0x1337즉시값 검색 결과
    idalib-cli -d <db> find --pattern 554889e516진수 바이트 패턴 검색
    idalib-cli -d <db> bytes -a <ea> [-n N] [--width byte|word|dword|qword]원시 바이트 (hexdump) 또는 리틀 엔디언 정수
    idalib-cli -d <db> entries진입점

    편집 (IDB에 유지됨)

    명령어설명
    idalib-cli -d <db> comments get|set|append|remove -a <ea> [-c "text"]주석
    idalib-cli -d <db> bookmarks list|add|get|remove -a <ea> [-d "desc"]북마크
    idalib-cli -d <db> rename -a <ea> -n <name>함수 / 데이터 레이블 이름 변경
    idalib-cli -d <db> set-type -a <ea> -t "int f(int, char *);"C 타입 선언 적용 (함수 프로토타입 / 데이터 타입)
    idalib-cli -d <db> signatures --make [--only-pat]FLIRT 시그니처 생성

    조합

    명령어설명
    idalib-cli -d <db> batch -- <op> [<op>...]순차 작업, IDB는 한 번만 열림
    idalib-cli parallel -d <list|glob> [--jobs N] -- <op>여러 DB에 하나의 작업, 각각 서브프로세스로 실행
    idalib-cli info [--version|--ida|--all]도구 / IDA 버전, 라이선스

    시나리오 워크스루

    🔎 알 수 없는 바이너리 분류

    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
    

    🔍 함수 파고들기

    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
    

    📝 발견 사항 주석 달기 (프로세스/에이전트 간 유지됨)

    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
    

    ⚡ 여러 샘플 일괄 분석

    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"
    

    🔎 원시 데이터 검색 & 검사

    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
    

    🤖 에이전트 친화적 일괄 검사 (하나의 JSON 문서)

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

    에이전트 워크플로 가이드: skills/idalib-cli/SKILL.md; 실행 가능한 엔드투엔드 예제는 examples/workflow.sh에 있습니다.

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

    ⚙️ 구성

    선택적 ~/.idapro/idalib-cli/config.toml (기본 디렉터리: $IDALIB_CLI_HOME):

    필드설명
    idadirIDA 설치 디렉터리 (기본값: 자동 감지)
    idb_dir새 IDB가 생성되는 위치 (기본값: 바이너리 옆)
    default_db-d를 생략했을 때 사용됨
    save각 명령 후 IDB 저장 (기본값 true)
    auto_analyseIDB 생성 시 전체 자동 분석 실행 (기본값 true)

    ❓ FAQ

    바이너리를 전달하면 IDB는 어디로 가나요?

    바이너리 옆입니다: ./target.bin → ./target.bin.i64. 위치를 변경하려면 구성에서 idb_dir을 설정하세요.

    batch / parallel은 실제로 무엇을 하나요?

    batch는 IDB를 한 번 열고 모든 작업을 해당 핸들에 대해 실행합니다 (마지막에 한 번 저장) — 하나의 데이터베이스에 대해 여러 정보가 필요할 때 최적입니다. parallel은 데이터베이스마다 하나의 서브프로세스를 생성하며 (IDALib은 스레드 안전하지 않으므로 프로세스로 격리됨), --jobs로 제한된 워커 풀을 사용합니다 — 많은 샘플에 최적입니다. -d는 단일 경로, 쉼표로 구분된 목록, 또는 glob(*.i64)을 받습니다.

    두 프로세스가 동시에 같은 IDB를 사용할 수 있나요?

    안 됩니다. 한 번에 IDB당 하나의 프로세스만 사용하세요. parallel은 데이터베이스마다 하나의 서브프로세스를 생성하여 이를 준수합니다. 수동 다중 에이전트 작업의 경우, 각 에이전트에 자체 -d 대상을 부여하세요.

    빌드에 IDA SDK가 필요한 이유는 무엇인가요?

    idalib-rs는 컴파일 시 SDK 헤더를 파싱하여 FFI 바인딩을 생성합니다 (bindgen). SDK는 Hex-Rays 라이선스와 함께만 제공되며 재배포되거나 내장되지 않습니다 — 빌드된 바이너리는 런타임에 사용자의 IDA 설치를 링크합니다.

    📁 프로젝트 구조

    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
    

    🌿 버전 & 브랜치

    도구 버전은 x.y.z 형식이며, 마이너 버전마다 하나의 dev 브랜치와 하나의 릴리스 브랜치가 있습니다:

    Ref용도예시
    main최신 개발 (v*_dev의 병합 대상)—
    v0.9_dev도구 0.9.x용 개발 브랜치현재 작업
    v0.9_release도구 0.9.x용 안정 브랜치 (수정만)백포트
    v0.9.1 (tag)릴리스 지점현재 릴리스
    도구 버전호환 IDAidalib-rs
    0.9.x9.10.6.1 (고정 =0.6.1)
    다음 (v0.10_*)새 IDA 버전의존성 범프

    새 IDA 버전 지원 = idalib 의존성 범프, Cargo.toml의 [package.metadata.ida] 업데이트, 새 브랜치 라인(v0.10_*) 생성.

    📄 라이선스

    Apache License 2.0에 따라 배포됩니다. Cargo.toml의 license 필드는 idalib-rs 의존성과의 호환성을 위해 MIT OR Apache-2.0으로 선언되어 있으나, 이 저장소는 Apache-2.0 텍스트만 포함합니다. IDA SDK를 절대 커밋하거나 재배포하지 마세요.


    English · 中文

    도구 다운로드