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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
binbloom — 生バイナリファームウェア解析ソフトウェア | Kitploit
ツール/GitHubGitHub/quarkslab/binbloom
組み込みシステムセキュリティリバースエンジニアリングバイナリ解析ファームウェア解析
GitHubquarkslab/binbloom

binbloom

生バイナリファームウェア解析ソフトウェア

リポジトリを見るウェブサイト
5836143年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

概要

このプロジェクトの目的は、生のバイナリファームウェアを解析し、その特徴の一部を自動的に判別することです。このツールは基本的に単純な統計処理のみを行うため、すべてのアーキテクチャに対応しています。

主な機能:

  • ロードアドレス: binbloomは生のバイナリファームウェアを解析し、そのロードアドレスを判別できます。
  • エンディアン: binbloomはヒューリスティックを用いてファームウェアのエンディアンを判別できます。
  • UDSデータベース: binbloomは生のバイナリファームウェアを解析し、UDSコマンドIDを含む配列が含まれているか確認できます。

ダウンロード / インストール

最初に、gitリポジトリをクローンします:

root@kitploit:~
git clone https://github.com/quarkslab/binbloom.git
cd binbloom

最新バージョンをビルドするには(Linuxのみ):

root@kitploit:~
autoreconf -i
./configure
make
sudo make install

はじめに

ファームウェアのエンディアンとベースアドレスを判別する

root@kitploit:~
binbloom firmware.bin

このコマンドは以下のような出力を表示します:

root@kitploit:~
[i] 32-bit architecture selected.
[i] File read (20480 bytes)
[i] Endianness is LE                                
[i] 6 strings indexed                                    
[i] Found 3 base addresses to test                    
[i] Base address seems to be 0x60000000 (not sure)
 More base addresses to consider (just in case):
  0x005b5000 (0)
  0x0bcd0000 (0)

この出力では、3行目に推測されたエンディアン(LE、リトルエンディアン)が表示され、6行目に推測されたアドレス(0x60000000)が表示されています。6つのテキスト文字列と3つの可能なベースアドレスが特定されています。アーキテクチャが指定されていない場合、デフォルトでは32ビットアーキテクチャと見なされます。

各候補アドレスの後の括弧内の値は対応するスコアです。スコアが高いほど、そのアドレスである可能性が高くなります。

64ビットファームウェアのエンディアンとベースアドレスを判別する

root@kitploit:~
binbloom -a 64 firmware.bin
root@kitploit:~
[i] 64-bit architecture selected.
[i] File read (327680 bytes)
[i] Endianness is LE                                
[i] 717 strings indexed                                  
[i] Found 7535 base addresses to test                 
[i] Base address found: 0x0000000000010000.                          
 More base addresses to consider (just in case):
  0x000000000000e000 (276)
  0x000000000000f000 (242)
  0x0000000000011000 (175)
  0x000000000000d000 (167)
  0x000000000000b000 (121)
  0x0000000000013000 (107)
  0x0000000000012000 (100)
  [...]

-aオプションはbinbloomに64ビットファームウェアを考慮するように指示します。上記の出力では、推測されたベースアドレスが0x10000であることが示されています。

binbloomが正しく判定できない場合にエンディアンを強制する

小さなファームウェア(サイズ < 10 Kbytes)を扱う場合、binbloomのエンディアン検出は信頼できず、誤った結果をもたらし、予期しないベースアドレスにつながる可能性があります。その場合は、-eオプションを使用してエンディアンを指定できます:

root@kitploit:~
binbloom -e be firmware.bin

次のような出力が生成されます:

root@kitploit:~
[i] Selected big-endian architecture.
[i] File read (1048576 bytes)
[i] Endianness is BE
[i] 764 strings indexed                                  
[i] Found 18615 base addresses to test                
[i] Base address seems to be 0x00000000 (not sure).
 More base addresses to consider (just in case):
  0x3f740000 (121043)
  0x7ff48000 (61345)
  0x41140000 (59552)
  [...]

これによりエンディアンが強制され(この場合はビッグエンディアン)、binbloomはこの設定に基づいてベースアドレスを推測します。

UDSデータベースを見つける(ECUのファームウェア用)

root@kitploit:~
binbloom -a 32 -e be -b 0x0 firmware.bin
root@kitploit:~
[i] 32-bit architecture selected.
[i] Selected big-endian architecture.
[i] Base address 0x0000000000000000 provided.
[i] 764 strings indexed                                  
Most probable UDS DB is located at @000ee8c8, found 7 different UDS RID
Identified structure:
struct {
	code *p_field_0;
	code *p_field_1;
	uint32_t dw_2;
}

この解析はヒューリスティックに基づいているため、誤検出が発生する可能性があります。binbloomが見つけた可能性のあるUDSデータベースのリストを読み、いずれか該当するものがあるか確認する必要があります。Binbloomは特定した構造体を出力に提供し、一部の逆アセンブラが構造体宣言に続くメモリを解析できるようにします。

高度なオプション

-tオプションを使用してマルチスレッドを有効にすることで、ベースアドレスの検索処理を高速化できます。デフォルトではシングルスレッドが使用されます。

root@kitploit:~
binbloom -t 8 firmware.bin

-dオプションで有効になるディープサーチモードも実装されていますが、まだ実験的です。このモードは他の方法が機能しない場合に有効なベースアドレスを見つける可能性がありますが、処理が遅く完了に時間がかかる場合があります。

ツールにさらに多くの情報を表示させたい場合は、1つ以上の-vオプションを使用してください。

このプロジェクトについて

著者

  • Guillaume Heilles (@PapaZours)
  • Damien Cauquil (@virtualabs)

ライセンス

binbloomはApache 2.0ライセンスの下で提供されています。

ツールをダウンロード