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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
unblob — 모든 종류의 컨테이너 포맷에서 파일을 추출합니다. | Kitploit
도구/GitHubGitHub/onekey-sec/unblob
Embedded Systems SecurityReverse EngineeringForensicsData RecoveryBinary AnalysisFirmware Analysis
GitHubonekey-sec/unblob

unblob

모든 종류의 컨테이너 포맷에서 파일을 추출합니다.

저장소 보기
2.5k1111일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

unblob

정확하고 빠르며 사용하기 쉬운 바이너리 블롭 추출 제품군.

unblob은 알 수 없는 바이너리 블롭에서 78개 이상의 아카이브, 압축, 파일 시스템 포맷을 파싱하고, 콘텐츠를 재귀적으로 추출하며, 알 수 없는 청크를 조각냅니다. 펌웨어 이미지를 추출, 분석 및 리버스 엔지니어링하기 위한 완벽한 도구입니다.

CI PyPI version PyPI downloads License: MIT


데모

demo


기능

  • 78개 이상의 지원 포맷 — SquashFS, JFFS2, UBI/UBIFS, ext, CPIO, ZIP, 7-Zip, gzip, XZ, LZMA, LZ4 등 아카이브, 압축 스트림, 파일 시스템을 포함합니다. 전체 목록은 여기를 참조하세요.
  • 재귀적 추출 — 설정 가능한 깊이(기본값: 10단계)까지 컨테이너 안의 컨테이너를 추출합니다.
  • 정확한 청크 탐지 — 각 청크의 시작 및 끝 오프셋을 포맷 표준에 따라 식별하여 오탐을 최소화합니다.
  • 알 수 없는 청크 조각내기 — 알려진 포맷과 일치하지 않는 데이터를 조각내어 보고하며, null/0xFF 패딩을 자동으로 식별합니다.
  • 엔트로피 분석 — 알 수 없는 청크에 대해 Shannon 엔트로피 및 카이제곱 확률을 계산하여 암호화되거나 압축된 데이터를 식별하는 데 유용합니다.
  • JSON 메타데이터 보고서 — 청크 오프셋, 크기, 엔트로피, 파일 소유권, 권한, 타임스탬프 등이 포함된 구조화된 보고서를 생성합니다.
  • 멀티 프로세싱 — 빠른 추출을 위해 기본적으로 모든 CPU 코어를 사용합니다.
  • 확장 가능한 플러그인 시스템 — 사용자 정의 포맷 핸들러와 추출기를 작성하고 --plugins-path를 사용하여 런타임에 로드할 수 있습니다.
  • 상승된 권한 불필요 — 일반 사용자로 안전하게 실행됩니다.
  • 실전 검증됨 — 대규모 펌웨어 이미지 코퍼스에 대해 퍼징 테스트되었으며, 감사되고 고정된 의존성에 의존합니다.

설치

pip (대부분 사용자에게 권장)

root@kitploit:~
pip install unblob

그런 다음 필요한 외부 추출 도구를 설치하세요. Ubuntu/Debian의 경우:

root@kitploit:~
sudo apt install android-sdk-libsparse-utils e2fsprogs p7zip-full unar zlib1g-dev liblzo2-dev lzop lziprecover libhyperscan-dev zstd lz4

SquashFS 지원을 위해 sasquatch도 설치하세요:

root@kitploit:~
curl -L -o sasquatch_1.0.deb "https://github.com/onekey-sec/sasquatch/releases/download/sasquatch-v4.5.1-6/sasquatch_1.0_$(dpkg --print-architecture).deb"
sudo dpkg -i sasquatch_1.0.deb && rm sasquatch_1.0.deb

모든 추출기를 사용할 수 있는지 확인하세요:

root@kitploit:~
unblob --show-external-dependencies

Docker (필요한 모든 기능 포함)

Docker 이미지에는 모든 추출기가 번들로 포함되어 있습니다 — 추가 설정이 필요하지 않습니다:

root@kitploit:~
docker run \
  --rm \
  --pull always \
  -v /path/to/extract-dir:/data/output \
  -v /path/to/files:/data/input \
  ghcr.io/onekey-sec/unblob:latest /data/input/firmware.bin

참고: 마운트 디렉터리는 동일한 uid:gid가 소유해야 합니다. 다중 사용자 시스템에서는 명령에 -u $UID:$GID를 추가하세요.

Kali Linux

root@kitploit:~
sudo apt install unblob

Nix

root@kitploit:~
nix profile install nixpkgs#unblob

또는 NixOS/home-manager 구성에 추가하세요 — flake 및 overlay 예제는 설치 문서를 참조하세요.

소스에서 빌드

root@kitploit:~
git clone https://github.com/onekey-sec/unblob.git
cd unblob
uv sync --no-dev
uv run unblob --show-external-dependencies

Python ≥ 3.10, uv, Rust 도구 체인(컴파일된 확장용)이 필요합니다.


사용법

명령줄

파일 추출(기본적으로 출력은 <filename>_extract/에 생성됨):

root@kitploit:~
unblob firmware.bin

사용자 정의 출력 디렉터리 지정:

root@kitploit:~
unblob -e /tmp/output firmware.bin

JSON 메타데이터 보고서 생성:

root@kitploit:~
unblob --report report.json firmware.bin

재귀 깊이 제한 및 엔트로피 분석 활성화:

root@kitploit:~
unblob -d 5 -n 2 firmware.bin

매직 문자열 접두사와 일치하는 파일 건너뛰기:

root@kitploit:~
unblob --skip-magic "POSIX tar archive" firmware.bin

사용자 정의 핸들러 플러그인 로드:

root@kitploit:~
unblob -P ./myplugins/ firmware.bin

전체 CLI 참조

root@kitploit:~
Usage: unblob [OPTIONS] FILE

Options:
  -e, --extract-dir DIRECTORY     파일을 이 디렉터리로 추출합니다.
  -f, --force                     출력이 이미 존재해도 강제로 추출합니다.
  -d, --depth INTEGER             재귀 깊이 (기본값: 10).
  -n, --entropy-depth INTEGER     엔트로피 계산 깊이 (기본값: 1; 0 = 끄기).
  -P, --plugins-path PATH         제공된 경로에서 플러그인을 로드합니다.
  -S, --skip-magic TEXT           주어진 매직 접두사가 있는 파일을 건너뜁니다.
  -p, --process-num INTEGER       병렬 작업 프로세스 수 (기본값: CPU 코어 수).
  --report PATH                   JSON 메타데이터 보고서를 이 파일에 씁니다.
  -k, --keep-extracted-chunks     추출된 청크를 디스크에 유지합니다.
  --delete-extracted-files TEXT   추출 후 중간 파일을 삭제합니다.
  -v, --verbose                   자세한 출력 (-v, -vv, -vvv).
  --show-external-dependencies    필수 외부 도구와 상태를 나열합니다.
  -h, --help                      이 메시지를 표시하고 종료합니다.

Python API

root@kitploit:~
from pathlib import Path
from unblob.processing import ExtractionConfig, process_file

config = ExtractionConfig(
    extract_root=Path("/tmp/output"),
    randomness_depth=1,
)

result = process_file(config, Path("firmware.bin"))

JSON 보고서도 작성하려면:

root@kitploit:~
process_file(config, Path("firmware.bin"), report_file=Path("report.json"))

ExtractionConfig는 CLI와 동일한 옵션(max_depth, process_num, skip_magic, force_extract, keep_extracted_chunks 등)을 허용합니다. 전체 목록은 API 참조를 참조하세요.


테스트

unblob은 pytest를 사용합니다. 통합 테스트 픽스처는 Git LFS에 저장됩니다.

root@kitploit:~
# Git LFS 설치 (최초 1회)
git lfs install

# 모든 개발 의존성 설치
uv sync --all-extras --dev

# 전체 테스트 스위트 실행
uv run pytest tests/ -v

문서

전체 문서는 https://unblob.org 에서 확인할 수 있습니다:

  • 설치
  • 사용자 가이드
  • 지원 포맷
  • API 참조
  • 개발 가이드 — 사용자 정의 핸들러, 추출기, 플러그인 작성 방법
  • 기여 가이드

기여

기여를 환영합니다! 새로운 포맷 지원을 추가하거나 기존 포맷을 개선하려면:

  1. 이슈를 열어 포맷을 설명해 주세요(16진수 덤프, 사양 링크, 샘플 파일이 큰 도움이 됩니다).
  2. 개발 가이드를 읽어 핸들러와 추출기를 작성하는 방법을 알아보세요.
  3. 저장소를 포크하고 변경 사항을 구현한 후 풀 리퀘스트를 열어주세요.

포맷 지원이 필요하지만 직접 구현하고 싶지 않은 경우, 이슈를 열어주세요. 추가를 고려하겠습니다.

자세한 내용은 CONTRIBUTING을 참조하세요.


라이선스

unblob은 MIT 라이선스에 따라 라이선스가 부여됩니다.

도구 다운로드