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

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

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

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

工具目录

分类

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

ubl-itel-s23

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

425个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

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

解锁引导加载程序 — 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 → 验证(FDL1) → 拒绝(未签名)
漏洞流程:BootROM → 覆盖 verify() → verify = 始终返回真
               → 接受(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 Tool (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 Recovery Collections
下载工具