リバースエンジニアリングやバイナリ解析に使える、ファイル構造を解析するパターン言語を備えたクロスプラットフォームのhexエディタ。
onekey-sec/unblob
78種類以上のアーカイブ、圧縮、ファイルシステム形式からファイルを再帰的に展開し、バイナリデータ内の未知の領域を切り出すコマンドラインツール。
- スター
- 2,634
- フォーク
- 159
- 未解決の Issue
- 56
- 最終コミット
- 昨日
これは何?
unblobは、ファームウェアイメージなどの未知のバイナリデータを解析し、その中に隠れたコンテナ形式を見つけます。SquashFS、JFFS2、UBI/UBIFS、ext、CPIO、ZIP、7-Zip、gzip、XZ、LZMAなど、既知のアーカイブ、圧縮、ファイルシステム形式を解析し、設定可能な深さまで内容を再帰的に展開します。
既知の形式に一致しないデータは未知の領域として切り出され、nullや0xFFによるパディングも自動で特定されます。こうした領域のエントロピー解析とカイ二乗検定により、暗号化または圧縮された領域を見つける手がかりを得られます。JSONレポートには、領域のオフセット、サイズ、エントロピー、所有者、アクセス権、タイムスタンプが記録されます。
通常ユーザーとして実行でき、デフォルトで複数のCPUコアを使用します。カスタム形式ハンドラーは、実行時にプラグインパスから読み込めます。pip、Docker、Nix、Kali Linuxのパッケージからインストールでき、いくつかの外部展開ユーティリティに依存します。
主な機能
- 01SquashFS、JFFS2、UBIFS、ZIPなど、78種類以上のアーカイブ、圧縮、ファイルシステム形式に対応します。
- 02設定可能な深さまで、入れ子になったコンテナを再帰的に展開します。
- 03形式の標準に基づいて、各領域の開始オフセットと終了オフセットを検出します。
- 04未知のデータを切り出し、nullや0xFFによるパディングを自動で特定します。
- 05未知の領域について、シャノンエントロピーとカイ二乗値を計算します。
- 06オフセット、サイズ、所有者、アクセス権を含むJSONレポートを出力します。
- 07実行時のプラグインパスを通じて、カスタム形式ハンドラーを読み込めます。
ユースケース
- リバースエンジニアリングの際にファームウェアイメージを展開し、ファイルシステムを調べる。
- エントロピーの結果を使って、バイナリデータ内の暗号化または圧縮された領域を特定する。
- CIや解析パイプラインで、デバイスダンプに埋め込まれたアーカイブをまとめて展開する。
- カスタムハンドラーを使って、独自コンテナ形式への対応を追加する。
クイックスタート
- 1
pipでPyPIからunblobをインストールする
pip install unblob - 2
Ubuntu/Debianに必要な外部展開ツールをインストールする
sudo apt install android-sdk-libsparse-utils e2fsprogs p7zip-full unar zlib1g-dev liblzo2-dev lzop lziprecover libhyperscan-dev zstd lz4 - 3
すべての展開ツールが利用可能であることを確認する
unblob --show-external-dependencies - 4
ファームウェアファイルを展開する
unblob firmware.bin
使う前に知っておきたいこと
- Dockerを使わない場合、複数の外部展開ツールを個別にインストールする必要があります。
- SquashFSをサポートするには、sasquatchという追加ツールを別途インストールする必要があります。
収録されている特集
トピック
よくある質問
- unblob とは?
- 78種類以上のアーカイブ、圧縮、ファイルシステム形式からファイルを再帰的に展開し、バイナリデータ内の未知の領域を切り出すコマンドラインツール。 unblobは、ファームウェアイメージなどの未知のバイナリデータを解析し、その中に隠れたコンテナ形式を見つけます。SquashFS、JFFS2、UBI/UBIFS、ext、CPIO、ZIP、7-Zip、gzip、XZ、LZMAなど、既知のアーカイブ、圧縮、ファイルシステム形式を解析し、設定可能な深さまで内容を再帰的に展開します。
- unblob は無料で使えますか?ライセンスは?
- unblob は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- unblob は今もメンテナンスされていますか?
- 活発にメンテナンス中。unblob の最終コミットは 2026年11月5日 です。
- unblob は何に使えますか?
- リバースエンジニアリングの際にファームウェアイメージを展開し、ファイルシステムを調べる。 エントロピーの結果を使って、バイナリデータ内の暗号化または圧縮された領域を特定する。 CIや解析パイプラインで、デバイスダンプに埋め込まれたアーカイブをまとめて展開する。 カスタムハンドラーを使って、独自コンテナ形式への対応を追加する。
- unblob のインストール方法は?
- pipでPyPIからunblobをインストールする: pip install unblob Ubuntu/Debianに必要な外部展開ツールをインストールする: sudo apt install android-sdk-libsparse-utils e2fsprogs p7zip-full unar zlib1g-dev liblzo2-dev lzop lziprecover libhyperscan-dev zstd lz4 すべての展開ツールが利用可能であることを確認する: unblob --show-external-dependencies ファームウェアファイルを展開する: unblob firmware.bin
- unblob はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/onekey-sec/unblob
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Unix系システム上のバイナリを解析、逆アセンブル、デバッグ、エミュレートするための、自由なリバースエンジニアリングフレームワーク兼コマンドラインツール群。
バイナリの解析、逆アセンブル、デバッグに使える、UNIX系のリバースエンジニアリングフレームワークとコマンドラインツール群。
Rust製のファームウェア解析ツール。ファイル内に埋め込まれたファイルやデータを特定し、必要に応じて抽出できます。
巨大なZIP、7z、tar、分割アーカイブを展開しながら元ファイルの容量を空け、必要な空きディスク容量を抑えるデスクトップアプリ兼CLI。
拡張子から形式を判別し、さまざまな形式のアーカイブを圧縮・展開・一覧表示できるターミナル向けCLI。