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)

查看仓库
1022天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

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每个新进程开头必须发送一次(状态跨进程残留)
校验项值
尺寸与 GPT 逐一比对(字节精确)
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