1. 製品
  2.   圧縮
  3.   Python
  4.   Unblob
 
  

大規模ZIPアーカイブを作成・管理するための無料Pythonライブラリ

Python開発者が30以上のさまざまなアーカイブ、圧縮、ファイルシステム形式からデータをロード、抽出、解析できる、強力でオープンソースの超高速Pythonライブラリ

Unblob ライブラリとは何ですか?

Unblob は、バイナリブロブ(ファームウェアイメージ、メモリダンプ、ネットワークパケット、暗号化アーカイブなどで一般的に見られる、未知または独自形式のデータを含むファイル)の抽出を簡素化し、加速することを目的とした、必須の Python ライブラリおよびコマンドラインツールです。元々 ONEKEY によって開発・維持され、同社のプロダクション分析プラットフォームで使用されています。Unblob は、30 以上のさまざまなアーカイブ、圧縮、ファイルシステム形式をサポートすることで、これらの複雑なファイルの解析という課題を巧みに処理します。ZIP、TAR、GZIP、BZIP2、XZ、LZMA、SquashFS、CramFS、JFFS2、UBI/UBIFS、YAFFS2 などの形式を効率的に処理し、コンテンツを再帰的に抽出し、未確認のチャンクを切り出します。

MIT ライセンスの下で無料で使用できる Unblob は、非常に効率的で驚くほど汎用性があります。マルチプロセッシング、効率的なコード、メモリマップドファイル、そして Hyperscan 高性能マッチングライブラリを活用することで、驚異的な高速性能を実現します。このツールは、実績のあるルールとフォーマット標準を使用して開始オフセットと終了オフセットを特定することで、誤検知や重複チャンクを最小限に抑えます。さらに、Unblob には扱いやすい API が備わっており、ユーザーはカスタムフォーマットハンドラやエクストラクタを迅速に作成でき、動的にロードされるプラグインでコア機能を拡張することも可能です。これにより、圧縮、暗号化、埋め込みファイルシステムを含む複雑で多層的なバイナリデータの解析が必要なあらゆる人にとって、Unblob は欠かせない資産となります。

Previous Next

Unblob の開始方法

Unblob をインストールする推奨方法は pypi.org を使用することです。スムーズなインストールのために、以下のコマンドをご利用ください。

pypi から Unblob ライブラリをインストールする

 pip3 install unblob 

GitHub から unblob リポジトリをクローンする

git clone https://github.com/onekey-sec/unblob.git 
手動でインストールすることも可能です;最新のリリースファイルは GitHub リポジトリから直接ダウンロードしてください。

Python ライブラリを使用して認識されたフォーマットを抽出する

オープンソースの Unblob ライブラリは、Python アプリケーション内でさまざまなファイル形式からコンテンツを抽出する機能をサポートしています。このライブラリは、30 以上のアーカイブ、圧縮形式、ファイルシステムをサポートしています。すべてのサポートされている形式を使用するには、すべてのエクストラクタをインストールする必要があることを忘れないでください。ユーザーは、出力ディレクトリの指定、再帰深度、冗長性レベル、レポート形式など、ライブラリの動作をカスタマイズするためのさまざまなオプションを使用できます。開発者は extract_chunk メソッドを使用して、各チャンクのコンテンツを指定された出力ディレクトリに抽出できます。以下は、Python アプリケーション内でライブラリを使用してコンテンツを出力ディレクトリに抽出する方法を示すサンプルコードスニペットです。

Python ライブラリを使用してコンテンツを出力ディレクトリに抽出する方法は?

import unblob

# Scan a file for known formats
file_path = "some_file.bin"
chunks = unblob.scan_file(file_path)

# Extract each chunk to an output directory
output_dir = "some_dir"
for chunk in chunks:
unblob.extract_chunk(chunk, output_dir)

Python API を使用して ELF ファイル分析を実行する

オープンソースの Unblob ライブラリは、ソフトウェア開発者が未知のバイナリブロブから ELF ファイルを検出・抽出し、その機能や特徴を特定することを容易にします。このライブラリは 32 ビットおよび 64 ビットの ELF ファイルの両方をサポートし、x86、x86_64、ARM、MIPS、PowerPC などのさまざまなアーキテクチャに対応しています。また、実行ファイル、共有ライブラリ、オブジェクトファイル、コアダンプ、カーネルモジュールなど、さまざまな種類の ELF ファイルも取り扱うことができます。

Python API を使用したメタデータ抽出

オープンソースの Unblob ライブラリは、Python アプリケーション内でメタデータファイルを生成する機能を追加しました。ユーザーは Unblob をコマンドラインツールとして実行する際に --report オプションを使用できます。このオプションは、抽出されたファイルのパス、サイズ、タイプ、マジック、エントロピー、チャンクの詳細などの情報を含む JSON ファイルを生成します。ユーザーは --report オプションの引数として JSON ファイルの名前と保存場所を指定できます。その後、任意の JSON ビューアやパーサーを使用して metadata.json ファイルを閲覧または解析できます。

 日本