Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ubl-itel-s23 — 为 Itel S23 (S665L) / Unisoc T606 解锁 Bootloader,使用 CVE-2022-38694 | Kitploit
工具/GitHubGitHub/aureliusivaninvenioptl/ubl-itel-s23
Android安全嵌入式系统安全侦察漏洞分析漏洞利用移动安全硬件安全学习与教育二进制利用
GitHubaureliusivaninvenioptl/ubl-itel-s23

ubl-itel-s23

为 Itel S23 (S665L) / Unisoc T606 解锁 Bootloader,使用 CVE-2022-38694

76个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

解锁引导加载程序 — Itel S23 (S665L) / Unisoc T606

利用 CVE-2022-38694 漏洞在 Unisoc T606 (UMS9230) 芯片组上解锁 Itel S23 (S665L) 引导加载程序的指南。

设备信息

属性值
品牌Itel
型号S665L (S23)
Android 版本12 (SDK 31)
构建号S665L-F065OPRSUVApAqAr-S-GL-20250207V533
处理器Unisoc T606 (UMS9230)
CPU2x Cortex-A75 + 6x Cortex-A55 (ARMv8, 64位)
存储UFS
插槽A/B

前置条件

  • Linux(已在 Fedora 43 上测试)
  • 已安装 adb 和 fastboot
  • USB 数据线(不能是仅充电线)
  • 电池电量至少 80%
  • 在开发者选项中已启用 OEM 解锁
  • 在开发者选项中已启用 USB 调试
  • 备份所有数据(解锁后将全部清除)

文件结构

root@kitploit:~
ubl-itel-s23/
├── README.md
├── CLAUDE.md
├── recovery/
│   ├── TWRP_S665L.img              # TWRP 恢复映像
│   └── OrangeFox_S665L.img         # OrangeFox 恢复映像
└── tools/
    └── spreadtrum_flash_linux/
        ├── spd_dump                 # BootROM 通信工具
        ├── gen_spl-unlock           # 解锁载荷生成器
        ├── unlock.sh                # 自动解锁脚本
        ├── fdl1-dl.bin              # 一级加载器
        ├── fdl2-dl.bin              # 二级加载器
        ├── fdl2-cboot.bin           # 用于解锁的修改版 uboot
        ├── custom_exec_no_verify_65015f08.bin  # CVE 漏洞利用载荷
        ├── custom_exec_no_verify_65015f48.bin  # CVE 漏洞利用载荷(备选)
        ├── splloader.bin            # SPL 备份(过程中生成)
        ├── uboot.bin                # uboot 备份(过程中生成)
        ├── spl-unlock.bin           # 解锁载荷(过程中生成)
        └── ums9230/itel/            # Itel UMS9230 的 FDL 二进制文件

工作原理(CVE-2022-38694)

此漏洞利用 Unisoc BootROM 的一个缺陷,允许在签名验证完成之前向内存区域写入数据。

root@kitploit:~
正常:   BootROM → verify(FDL1) → 拒绝(未签名)
漏洞利用:BootROM → overwrite verify() → verify = always_true
               → accept(FDL1) → 接受 → 解锁引导加载程序

custom_exec_no_verify 载荷(96 字节)覆盖地址 0x65015f08 处的签名验证函数指针,使 BootROM 在不检查签名的情况下接受任何 FDL1。

解锁过程

初始设置

  1. 安装 USB 访问的 udev 规则:
root@kitploit:~
sudo tee /etc/udev/rules.d/51-android.rules << 'EOF'
# Google/Android(ADB 和 Fastboot)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
# Spreadtrum/Unisoc
SUBSYSTEM=="usb", ATTR{idVendor}=="1782", MODE="0666", GROUP="plugdev"
EOF
sudo udevadm control --reload-rules && sudo udevadm trigger
  1. 将 FDL 文件和漏洞利用载荷复制到工作目录:
root@kitploit:~
cd tools/spreadtrum_flash_linux
cp ums9230/itel/fdl1-dl.bin ums9230/itel/fdl2-dl.bin ums9230/itel/fdl2-cboot.bin .
cp ums9230/custom_exec_no_verify_65015f08.bin ums9230/custom_exec_no_verify_65015f48.bin .
chmod +x spd_dump gen_spl-unlock

步骤 1 — 备份 splloader 和 uboot,擦除 splloader

手机必须开机并通过 USB 连接。执行此步骤后,手机将无法启动,直到步骤 6。

root@kitploit:~
sudo ./spd_dump exec_addr 0x65015f48 fdl fdl1-dl.bin 0x65000800 \
  fdl fdl2-dl.bin 0x9efffe00 exec \
  r splloader r uboot e splloader e splloader_bak reset

将 splloader.bin 和 uboot.bin 备份到安全位置:

root@kitploit:~
cp splloader.bin uboot.bin backup_spl/

步骤 2 — 生成解锁载荷

root@kitploit:~
./gen_spl-unlock splloader.bin 0xfd28

输出:spl-unlock.bin

偏移量 0xfd28 特定于此固件。请检查 splloader.bin 的大小 — 偏移量应与文件大小匹配。

步骤 3 — 刷写修改后的 uboot

进入 BROM 模式:关机,按住音量减,然后插入 USB。

root@kitploit:~
sudo ./spd_dump exec_addr 0x65015f08 fdl fdl1-dl.bin 0x65000800 \
  fdl fdl2-dl.bin 0x9efffe00 exec \
  w uboot fdl2-cboot.bin reset

步骤 4 — 发送解锁载荷

再次进入 BROM 模式,然后:

root@kitploit:~
sudo ./spd_dump exec_addr 0x65015f08 fdl spl-unlock.bin 0x65000800

如果看到 device removed, exiting...,则表示成功。

步骤 5 — 验证解锁状态

再次进入 BROM 模式,然后:

root@kitploit:~
sudo ./spd_dump exec_addr 0x65015f08 fdl fdl1-dl.bin 0x65000800 \
  fdl fdl2-dl.bin 0x9efffe00 exec \
  verbose 2 read_part miscdata 8192 64 m.bin reset
  • recv 64 zero = 仍然已锁定(失败)
  • recv 32 string + hash data = 已解锁(成功)

步骤 6 — 恢复 splloader 和 uboot

再次进入 BROM 模式,然后:

root@kitploit:~
sudo ./spd_dump exec_addr 0x65015f08 fdl fdl1-dl.bin 0x65000800 \
  fdl fdl2-dl.bin 0x9efffe00 exec \
  w splloader splloader.bin w uboot uboot.bin reset

手机将重启。当 Android 恢复界面出现时,选择恢复出厂设置。

通过 ADB 验证

手机启动进入 Android 后:

root@kitploit:~
adb shell getprop ro.boot.vbmeta.device_state
# 预期结果:unlocked

adb shell getprop ro.boot.flash.locked
# 预期结果:0

重要说明

  • 解锁后,手机启动时会显示警告屏幕(这是正常的)
  • OTA 更新很可能无法正常工作
  • 保修将失效
  • 不要删除 splloader.bin 和 uboot.bin — 如果出现问题,它们用于恢复
  • 步骤 1 使用地址 0x65015f48,步骤 3-6 使用 0x65015f08

致谢与参考

工具

  • spd_dump / CVE-2022-38694 解锁引导加载程序 作者 TomKing062 / QuTick102 https://github.com/TomKing062/CVE-2022-38694_unlock_bootloader

  • 恢复收集与 Spreadtrum Flash 工具(Linux) 作者 Massatriof16 https://massatriof16.github.io/recovery-collections/#alat

  • unisoc-unlock(Python 替代方案) 作者 patrislav1 https://github.com/patrislav1/unisoc-unlock

指南与参考

  • Itel S23 解锁引导加载程序指南 — XDA 论坛
  • 如何使用标识令牌解锁 Unisoc (SPD) 引导加载程序 — Hovatek
  • SUBUT — Spreadtrum/Unisoc 引导加载程序解锁工具(网页)

恢复映像

  • Itel S23 的 TWRP 和 OrangeFox — 来自 Massatriof16 恢复收集
下载工具