越狱检测是 iOS 移动端安全对抗中被讨论最多、也最容易被低估的环节。多数公开方案停留在「检查几条文件路径」的层面——这类检测在生产环境中几乎不堪一击。本文以一个国内大型金融 App(下文简称「App X」)的越狱检测实现为分析对象,从防御方的视角完整还原其三层纵深防御体系:检测层、冻结层、退出层。所有结论均来自对 rootless 越狱环境(Dopamine,iOS 16.x,arm64)的实际逆向验证,每一条检测手段背后都对应着真实的攻防博弈,而非理论推演。
xeCJK 原理:从 interchar token 到边界恢复状态机
xeCJK 是 XeLaTeX 下中文排版的核心引擎——几乎所有使用 XeLaTeX 编译的中文文档,都直接或间接依赖它处理字体切换、字间距和标点压缩。但 xeCJK 的内部机制鲜有系统性的介绍:多数用户只知道 \setCJKmainfont 和 \xeCJKsetup,对「字符之间的间距是怎么插入的」「标点压缩的数据从哪里来」「为什么 \textcolor 会破坏间距」这类问题缺乏直觉。本文试图从 XeTeX 原语层出发,逐层拆解 xeCJK 的设计,让读者建立一个从整体到局部的心智模型。
ctex 宏包近期维护工作纪要
ctex 是中文 LaTeX 排版的核心基础设施——几乎所有中文 LaTeX 文档都直接或间接依赖它。这段时间我集中处理了 ctex 上积压的数个 Bug,涉及字间距(CJKglue)被覆盖、macOS 15 字体检测失效、LuaTeX 下 \verb 前间距丢失、hyperref 选项冲突,以及 .spa 文件生成等问题。同时完成了旧字体钩子兼容代码的清理和版本号提升(v2.5.10 → v2.6.0)。本文逐一记录这些改动的技术细节。