Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
jbl-wave-buds2-firmware-research — JBL Wave Buds 2(BES1306)ファームウェアのリバースエンジニアリングノートとPythonツール群:OTAコンテナ形式、フラッシュレイアウト、BLE/GATTプロトコル、CRC-32トラストモデル。 | Kitploit
ツール/GitHubGitHub/c8dhjp4tyv-bit/jbl-wave-buds2-firmware-research
組み込みシステムセキュリティBluetoothセキュリティIoTセキュリティエクスプロイトリバースエンジニアリング暗号化ハードウェアとIoTセキュリティバイナリ解析論文と研究

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ファームウェア解析
GitHubc8dhjp4tyv-bit/jbl-wave-buds2-firmware-research

jbl-wave-buds2-firmware-research

JBL Wave Buds 2(BES1306)ファームウェアのリバースエンジニアリングノートとPythonツール群:OTAコンテナ形式、フラッシュレイアウト、BLE/GATTプロトコル、CRC-32トラストモデル。

リポジトリを見る
1321日前未レビュー

JBL Wave Buds 2 — ファームウェア & OTA リバースエンジニアリング

Tests

JBL Wave Buds 2(Bestechnic BES1306、PID 2100)に関するリバースエンジニアリングの記録と再現可能なツール群:フラッシュ上のレイアウト、バイトレベルまでの OTA コンテナ形式、BLE/GATT コマンドプロトコルと BES「TOTA v2」暗号化トランスポート、デバイス側とアプリ側の信頼境界、ファクトリーコンソール、そして所有する個体に自作イメージを書き込むための再現可能な手法。

分析は 2 つのビルドにまたがる — IDA で解析した wavebuds.elf(2025年4月)と配布パッケージ 2.9.0(2026年9月)— 完全に仕様化された 8 ストリームの OTA コンテナ(バイト単位で同一の再パックにより検証済み)、アプリ側とデバイス側の両方で確認された CRC-32 整合性モデル、54/59 エントリのファクトリーコマンドテーブル、12 個の OTA RAM 状態変数、7,960 関数の列挙、およびビルド間の差分。意味的な復元は OTA/フラッシュ/CRC/ファクトリーの各サブシステムについては深く行っているが、それ以外は列挙のみである — 完全性監査を参照。

[!WARNING] これは所有者が行うハードウェア研究であり、公式の JBL アップデートではない。改変イメージの書き込みは不可逆である:ダウンロードフェーズは段階的でブリックセーフだが、CRC は有効でも壊れたイメージのアクティベーションには公開された復旧経路が存在しない。何かを再現する前に SAFETY.md を読むこと。

トルコ語版:README.tr.md

コンパニオンアプリでテスト済みの JBL Wave Buds 2:両方のイヤホンが 100% で接続され、すべてのコントロールが有効

テスト済み個体でのハードウェア結果:アプリ + ユーザー CA による MITM OTA パイプラインが検証された後、両方のイヤホンが接続し、100% を報告し、すべてのアプリコントロール(ANC/アンビエント、ジェスチャー、EQ)が動作する。1 バイト改変したイメージも同様に受け入れられ、デバイスは完全に機能し続けた。

確認された知見

アドレスは解析対象ビルド(wavebuds.elf)のものである。アドレス台帳と来歴を参照。

  • OTA イメージは暗号学的に署名されていない。デバイス側の整合性は CRC-32 のみ — ハンドラ 0x2C0918BC は設定、各セグメント、イメージ全体を CRC-32 ルーチン 0x2C0CE944(テーブル 0x2C0F5218)と "BEST" マジックでチェックする。1 バイト改変した CRC 有効なイメージが受け入れられ、起動した。
  • アプリの RSA-2048 検証器(com.jbl.counterfeit.Rsa2048DynamicVerifier)は偽造防止(デバイス真正性)のためのものであり、ファームウェア署名ではない。
  • アプリは OTA エンドポイントをピン留めしていない。ユーザーがインストールした CA だけで OTA 設定を傍受・書き換えできる。
  • OTA は段階的である:新しいイメージは実行中のアプリケーションに触れることなくフラッシュベース 0x28120000 にコピーされるため、ダウンロードフェーズはブリックセーフである。
  • 外部の BLE セントラルは OTA を駆動できない:ハンドラは内部の TWS/接続状態(0x2C0905E4:MEMORY[0x20026BA0] ∈ {2,4})でゲートされている。
  • BES TOTA v2 トランスポートは AES-128 セッションキーを完全にクライアント側で導出する。サーバー/デバイス側の秘密は存在しない。
  • ファクトリー/エンジニアリングコンソール(解析対象ビルドで 59 コマンド、2.9.0 で 54 コマンド)はデバイス識別情報(MAC/BLE アドレス)、水晶トリム、BT リンクキーの読み書きができる。その無線経由での到達可能性は UNRESOLVED である。
  • 2 つのビルドは別々にコンパイルされ、再配置されている:同一製品、シフトしたアドレス、ファクトリーエントリは 59 → 54。差分を参照。

テストした改変

改変は意図的に最小限である — 展開後イメージの 1 バイト。展開後オフセット 64096 にある RTX カーネル文字列 RTX V5.5.1 → V5.5.2 を変更し、コンテナの CRC-32 を再計算する。設計上これは見た目だけの変更である:目的はデバイスが改変済みだが CRC 有効なイメージを受け入れることを証明することであり、挙動を変えることではない。

Base (owner-supplied; not redistributed)
  official 2.9.0 package   549,558 bytes   SHA-256 836cb251f9fb2261dde14f39ba18d358c48018817f3c3d1b527e1ac5f3ab7ba2
  decompressed image       955,596 bytes   SHA-256 489663e80b76f20f4c94671064908569fac5f4e3df10ab6d7369baffe094f67d
  container CRC-32          A0C7CCEC (valid), input range [0x0, 0x862AD)

リポジトリには意図的に JBL ファームウェアを含めていません。合法的に入手したパッケージを自身で用意し、以下を再現してください:

python3 tools/ota_unpack.py  <official_2.9.0_package.bin> --extract image.bin
python3 tools/ota_repack.py  make-test <official_2.9.0_package.bin> test.bin
python3 tools/ota_unpack.py  test.bin      # exactly one decompressed byte differs; CRC valid

再パックされたコンテナの正確なバイト列は LZMA エンコーダに依存する。デバイスが検証するのは CRC-32 であり、パッケージハッシュではない(docs/04 を参照)。また、展開後の 1 バイトの差分は決定的である。アプリ経由での配信については docs/08 を参照。

図

フラッシュマップ2 MB NOR のパーティション構成
OTA コマンドフローシーケンスとその CRC-32 チェックポイント
信頼境界各ステージが検証する内容と、イメージの信頼がどこに依存するか

ドキュメント

  • 00 — 概要
  • 01 — ハードウェアとフラッシュマップ
  • 02 — OTA コンテナ形式
  • 03 — ファームウェアイメージのレイアウト
  • 04 — セキュリティモデル
  • 05 — BLE/GATT とコマンド
  • 06 — OTA プロトコル
  • 07 — アプリ側の分析
  • 08 — 配信方法
  • 09 — 関数カタログ
  • 10 — ファクトリーコンソール
  • 来歴(2 つのビルド、証拠クラス) · アドレス台帳
  • 完全性監査 · カバレッジと制約
  • 状態機械 · インシデント
  • ツールとスコープ · テストと再現性
  • 生成カタログ · IDA コマンドログ

本プロジェクトが主張しないこと

  • JBL のファームウェア、アプリ(オリジナルまたは改変版)、あるいは書き込み可能なカスタムイメージを再配布することはない。
  • デバイス真正性(模倣品対策)の経路には一切触れていない。
  • ROM ブートローダーにセキュアブートが欠けていることを証明するものではない。その領域はすべての OTA イメージの外側にあり、ダンプされていない。この主張は静的証拠と、1 台のユニットで改変イメージが起動したという観測によって範囲が限定される。
  • ファクトリーコンソールが無線経由で到達可能であるとは主張しない。
  • いかなる結果も、別のユニット、地域、またはファームウェアビルドに対して成立するとは主張しない。

コントリビューション、セキュリティ、引用

ツールをダウンロード