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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
spd_dump-macos — macOS向けUNISOC BootROM/FDLフラッシャー: CVE-2022-38694 exec_addr2を適用したパッチ済みspd_dump、プロトコルリファレンス、パーティションルール、バックアップ検証 (UMS9621) | Kitploit
ツール/GitHubGitHub/xun404/spd_dump-macos
Androidセキュリティ組み込みシステムセキュリティエクスプロイトハードウェアハッキングモバイルセキュリティファームウェア解析
GitHubxun404/spd_dump-macos

spd_dump-macos

macOS向けUNISOC BootROM/FDLフラッシャー: CVE-2022-38694 exec_addr2を適用したパッチ済みspd_dump、プロトコルリファレンス、パーティションルール、バックアップ検証 (UMS9621)

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

人気

すべて見る →

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

すべてのツールを探索

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

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

spd_dump for macOS

English | 日本語

UNISOC(展锐)BootROM/FDL 書き込みツールの macOS 移植版。ilyakurdyukov/spreadtrum_flash(MIT)をベースに、クローズドソースの spd_dump に exec_addr2(CVE-2022-38694 の署名検証バイパス)を追加し、macOS(arm64 + libusb)上で以下の全チェーンを実現しています:

root@kitploit:~
BootROM → CVE 越界写 → FDL1 → FDL2 → GPT 解析 → 分区读写 → reset

検証プラットフォーム:UMS9621(T158)、Android 13、kernel 5.15、GKI(init_boot)アーキテクチャ。UMS9620 ファミリはアドレス互換。その他の SoC は適合を参照。

ビルド

依存関係:Xcode CLT、brew install libusb。

root@kitploit:~
./scripts/build-macos.sh   # 产出 ./spd_dump

使用方法

ダウンロードモードに入る

電源オフの状態で Reset(または機種に応じたキーコンビネーション)を押しながら USB に接続すると、デバイスは 1782:4d00 として列挙されます。BootROM は列挙後約 20 秒間だけ応答し、その後は沈黙します(USB は残ったまま)。自動化ではデバイスの「無→有」エッジでトリガーする必要があります(scripts/runner.sh 参照)。

FDL2 をロードしてパーティションテーブルを読み取る

root@kitploit:~
./spd_dump --wait 3 exec_addr2 0x65017f08 verbose 1 \
    fdl fdl1-dl.bin 0x65000800 \
    fdl fdl2-dl.bin 0xbefffe00 \
    disable_transcode partition_list gpt.xml
パラメータ説明
exec_addr2 <addr>CVE バイパス。custom_exec_no_verify_<addr>.bin を自動ロードします。実装

バックアップ

root@kitploit:~
python3 scripts/backup_gen.py gpt.xml backup/ --img-dir data/
./spd_dump --wait 3 verbose 0 disable_transcode $(cat backup_args.txt)

backup_gen.py は GPT に基づいて read_part シーケンスを生成します(途中再開対応。GPT の size 単位は MB)。また、vbmeta* の AVB flags をオフラインで 3 に設定します(verity 0 と同等)。

書き込み

root@kitploit:~
python3 scripts/flash_gen.py gpt.xml data/ flash_ops.txt
N=$(grep -c 'write_part\|erase_part' flash_ops.txt)
{ yes yes | head -n $N; sleep 3600; } | ./spd_dump --wait 3 verbose 0 \
    disable_transcode $(cat flash_ops.txt | tr '\n' ' ')

flash_gen.py にはパーティションルールが組み込まれています(runtimenv は消去に変換、fixnv/calinv はスキップ、スロットエイリアスなしは mtime で重複排除)。末尾に erase_part userdata + reset を追加します。

プロトコルの要点

詳細は docs/protocol-notes.md を参照:

  • カスタムコマンドはオプション解析ループ内で消費する必要があります。verbose 1 はそのループを早期終了します
  • FDL2 セッションはプロセスをまたいで生存します。プロセスが終了しても FDL2 は終了しないため、パーティションコマンドをバッチで実行できます
  • 0x8A(DOWN_SIZE_ERROR)は次の用途に使われます:保護アドレスへの個別ダウンロード、runtimenv 書き込み、巨大な読み取りブロック
  • 読み取りブロックサイズの上限は 0xffff 未満、デフォルトは 4096
  • NV パーティションファミリー(nr_fixnv1)を名前アドレス指定で読み取るとセッションがハングします。ルールは docs/partition-rules.md を参照

バックアップ検証

静的パーティション(dtb など)は既知の同型イメージと md5 相互比較を行い、読み取りチェーンの正当性を検証できます。

他の SoC への適合

項目入手先
fdl1/fdl2 ロードアドレス機種の pac ファームウェア XML(SPD Research Tool で展開)
CVE blob とスタックアドレスTomKing062/CVE-2022-38694 soc/<chip>/
fdl イメージ機種の公式ファームウェアから抽出(DHTB 署名ヘッダー)

参考

  • ilyakurdyukov/spreadtrum_flash — アップストリーム(MIT)。src/ にパッチソースを含む
  • TomKing062/CVE-2022-38694_unlock_bootloader — CVE の原理と各 SoC の資料
  • YC-nw/SPRDClientCore — プロトコル定数とパーティションルールの参照
  • NCC Group — UNISOC ROM Vulnerabilities

画面なしデバイス向け Magisk su の事前承認:docs/headless-magisk-su.md。

BootROM レベルの操作は文鎮化(ブリック)のリスクがあります。必ずバックアップを取ってから自己責任で行ってください(AS IS)。

ツールをダウンロード
fdl <file> <addr>FDL イメージと SoC 固有の SRAM ロードアドレス
disable_transcode新しいプロセスの開始時に必ず 1 回送信する必要があります(状態はプロセスをまたいで残ります)
検証項目値
サイズGPT と 1 つずつ照合(バイト単位で正確)
boot / init_bootANDROID! @0
vendor_bootVNDRBOOT @0
vbmeta ファミリーAVB0 @0、flags @0x78
splloader/trustos/uboot/fdlDHTB @0
supergDla @4096 と @8192(ジオメトリ上の二重コピー)、先頭 4K はゼロ保持
NVNV(0x4E56)@0 または @0x200