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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/helgesverre/sony-vp-extract
組み込みシステムセキュリティBluetoothセキュリティ暗号化/復号化ツールリバースエンジニアリングワイヤレスセキュリティ暗号化ハードウェアセキュリティファームウェア解析
GitHubhelgesverre/sony-vp-extract

sony-vp-extract

Sony WH-1000XM4の暗号化された音声パックから音声ガイドMP3プロンプトを復号化および抽出します。AESキーはAiroha MT2811 SoCのBluetoothファームウェアダンプを介して抽出されました。

リポジトリを見る
25252ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Sony WH-1000XM4 ボイスパック抽出ツール

Sony WH-1000XM4 Voice Pack Extractor RACE Protocol Amp ライセンス: MIT

Sony WH-1000XM4 の暗号化されたファームウェアファイルから、音声ガイダンスのMP3プロンプトを復号・抽出します。

AES-128-CBC 鍵は、ヘッドホンのAiroha MT2811ファームウェアをBluetooth Low Energy経由で RACEプロトコル を使ってダンプし、ARM Cortex-M4 FOTA復号ルーチンを逆アセンブルすることで抽出しました。詳細な技術解説: docs/WRITEUP.md

クイックスタート

root@kitploit:~
# Bun のインストール(未インストールの場合)
curl -fsSL https://bun.sh/install | bash

git clone https://github.com/HelgeSverre/sony-vp-extract.git
cd sony-vp-extract
bun install

# Sony CDNから自動ダウンロード後、抽出
bun run cli/extract.ts --all

使用方法

root@kitploit:~
# すべて抽出 — voice-packs/ が空の場合、Sony CDNから自動ダウンロード
bun run cli/extract.ts --all [input-dir] [output-dir]

# 単一のボイスパックを抽出
bun run cli/extract.ts voice-packs/VP_english_UPG_03.bin extracted/

# ボイスパック情報を表示
bun run cli/extract.ts --info voice-packs/VP_english_UPG_03.bin

# ダウンロードのみ(抽出なし)
bun run cli/extract.ts --download [output-dir]

Python 版の代替方法

root@kitploit:~
uv run extract_all.py

1コマンドで Sony CDN からのダウンロード、復号、抽出までを実行します。依存関係はインラインで宣言されています(PEP 723) — uv run が自動的に全て処理します。

対応言語

言語ファイルプロンプト数CDN
🇬🇧 英語VP_english_UPG_03.bin54ダウンロード
🇫🇷 フランス語VP_french_UPG_03.bin54ダウンロード
🇩🇪 ドイツ語VP_german_UPG_03.bin54ダウンロード
🇪🇸 スペイン語VP_spanish_UPG_03.bin54ダウンロード
🇮🇹 イタリア語VP_italian_UPG_03.bin54ダウンロード
🇵🇹 ポルトガル語VP_portuguese_UPG_03.bin54ダウンロード
🇳🇱 オランダ語VP_dutch_UPG_03.bin54ダウンロード
🇸🇪 スウェーデン語VP_swedish_UPG_03.bin54ダウンロード
🇫🇮 フィンランド語VP_finnish_UPG_03.bin54ダウンロード
🇹🇷 トルコ語VP_turkish_UPG_03.bin54ダウンロード

ボイスパックのフォーマット

root@kitploit:~
┌───────────────────────────────────────┐
│  Header (4096 bytes)                  │
│  ├── 0x000  Random nonce (32 bytes)   │
│  └── 0x100  TLV metadata             │
│       ├── compression_type = 2        │
│       ├── body_size                   │
│       ├── decompressed_size (1 MB)    │
│       └── SHA-256 of decompressed     │
├───────────────────────────────────────┤
│  Body (offset 0x1000+)               │
│  AES-128-CBC encrypted               │
│  └── LZMA1 compressed                │
│       └── Voice guidance image (1MB)  │
│            ├── Header (version+count) │
│            ├── Entry table (54 × 8B)  │
│            │   (size, abs_offset)     │
│            └── MP3 files (48kHz mono) │
└───────────────────────────────────────┘

鍵

root@kitploit:~
AES-128-CBC Key: eibohjeCh6uegahf
AES-128-CBC IV:  miefeinuShu9eilo

MT2811 CM4 ファームウェアの .rodata セクション内、フラッシュオフセット 0xD53A(鍵)と 0xD529(IV)にASCII文字列としてハードコードされているのを発見しました。この鍵は、全てのWH-1000XM4ユニットおよび全ての言語パックで共通です。

発見方法

  1. WH-1000XM4 に 接続 (ヘッドホンは電話とペアリング済み)
  2. RACE(Airoha Command Extensions)BLE GATT サービスを 発見
  3. RACE_STORAGE_PAGE_READ(コマンド 0x0403)を使用して、フラッシュからCM4ファームウェア59KBを ダンプ
  4. ファームウェアオフセット 0x81F4 でAES S-box を 特定
  5. ARMベクターテーブルのリテラルプールからランタイムベースアドレス 0x04200000 を 特定
  6. FOTA復号関数を 逆アセンブル し、リテラルプールからの鍵読み込みを追跡

詳細な技術解説: docs/WRITEUP.md

前提条件

  • Bun ≥ 1.0 — TypeScript CLI 用
  • uv — Python スクリプト用(依存関係はインラインメタデータで自動解決)

自分で鍵を抽出する

鍵を独立して検証したい場合は、自分のペアリング済みWH-1000XM4ヘッドホンからファームウェアをダンプし、鍵を抽出できます。

root@kitploit:~
# BLE経由でファームウェアをダンプし、鍵を抽出
uv run cli/extract_key.py

# 既にファームウェアダンプを持っている場合:
uv run cli/extract_key.py --firmware your_dump.bin

# Bun版(ファームウェアダンプが必要):
bun run cli/extract.ts --extract-key your_dump.bin

このツールはファームウェアバイナリ内でAES S-boxを検索し、隣接するnull終端16バイトASCII文字列を見つけ、各候補ペアをボイスパックの復号を試行して有効なLZMAヘッダーがあるか検証します。

プロジェクト構成

root@kitploit:~
├── cli/
│   ├── extract.ts          # Bun CLI ツール(抽出+鍵検索)
│   └── extract_key.py      # Python BLE ファームウェアダンプ+鍵検索
├── docs/
│   └── WRITEUP.md          # 完全な技術解説
├── voice-packs/            # ダウンロードされた .bin ファイル(gitignore)
├── extracted/              # 抽出されたMP3プロンプト(gitignore)
├── extract_all.py          # Python版抽出スクリプト
├── package.json
└── README.md

免責事項

このプロジェクトは、個人所有のハードウェアに対して教育目的で実施されたセキュリティ研究を文書化したものです。解析されたヘッドホンは通常通りペアリング・接続されており、不正アクセスは行われていません。

ボイスパック .bin ファイルおよび抽出されたMP3プロンプトはソニー株式会社の著作物であり、このリポジトリには 含まれていません。CLIツールは実行時にソニーの公開CDNから直接ダウンロードします。復号されたボイスパックや抽出されたMP3ファイルを再配布しないでください。このツールは研究および相互運用性の目的でのみ提供されます。

ライセンス

MIT

ツールをダウンロード