Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
unblob — あらゆる種類のコンテナ形式からファイルを抽出する | Kitploit
ツール/GitHubGitHub/onekey-sec/unblob
組み込みシステムセキュリティリバースエンジニアリングフォレンジックデータ復旧バイナリ解析ファームウェア解析
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 パディングを特定します。
  • エントロピー解析 — 未知のチャンクに対してシャノンエントロピーとカイ二乗確率を計算。暗号化データや圧縮データの発見に役立ちます。
  • 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 をインストール(初回のみ)
git lfs install

# すべての開発依存関係をインストール
uv sync --all-extras --dev

# テストスイート全体を実行
uv run pytest tests/ -v

ドキュメント

完全なドキュメントは https://unblob.org でご覧いただけます:

  • インストール
  • ユーザーガイド
  • 対応フォーマット
  • API リファレンス
  • 開発ガイド — カスタムハンドラ、抽出ツール、プラグインの作成方法
  • コントリビューションガイド

貢献

貢献を歓迎します!新しいフォーマットのサポートを追加したい場合や既存のフォーマットを改善したい場合は、以下の手順に従ってください:

  1. イシューを開き、フォーマットについて説明してください(16進ダンプ、仕様へのリンク、サンプルファイルがあると大変役立ちます)。
  2. 開発ガイドを読み、ハンドラと抽出ツールの作成方法を学んでください。
  3. リポジトリをフォークし、変更を実装してプルリクエストを開いてください。

フォーマットのサポートが必要だが自分で実装したくない場合は、イシューを開いてください。追加を検討します。

詳細は CONTRIBUTING を参照してください。


ライセンス

unblob は MIT ライセンスの下で提供されています。

ツールをダウンロード