使用 CVE-2022-46689 在 iOS 上覆盖字体的概念验证应用。
适用于 iOS 16.1.2 及更早版本(已在 iOS 16.1 上测试),可在未越狱设备上运行。
IPA 可在 Releases 部分获取。
包含的字体:
您还可以导入为 iOS 移植的自定义字体。
DejaVu Sans Condensed | DejaVu Serif | DejaVu Sans Mono | Choco Cooky

Go Regular | Go Mono | Segoe UI | Comic Sans MS

Hanna Soft + JoyPixels | Bronkoh | Noto Serif SC | Fira Sans

屏幕截图致谢:@ev_ynw 提供的移植 Hanna Soft 和 Bronkoh 字体,JoyPixels 提供的 emoji 字体
据我所知,CVE-2022-46689 问题只允许您覆盖每 16384 个字节中的 16383 个字节:页面的最后一个字节无法写入。
(我可能是错的)
为了解决这个问题,我使用 WOFF2 webfont 格式打包字体,该格式受 iOS 支持。WOFF2 使用 Brotli 进行压缩,这让我可以插入填充以跳过最后一个字节。
有关详细信息,请参阅 repackfonts/make_woff2src.sh:此脚本:
repackfonts/BrotliPadding.swift 解压 WOFF2 文件并插入填充,以跳过第 16384 个字节