0%

越狱检测是 iOS 移动端安全对抗中被讨论最多、也最容易被低估的环节。多数公开方案停留在「检查几条文件路径」的层面——这类检测在生产环境中几乎不堪一击。本文以一个国内大型金融 App(下文简称「App X」)的越狱检测实现为分析对象,从防御方的视角完整还原其三层纵深防御体系:检测层、冻结层、退出层。所有结论均来自对 rootless 越狱环境(Dopamine,iOS 16.x,arm64)的实际逆向验证,每一条检测手段背后都对应着真实的攻防博弈,而非理论推演。

阅读全文 »

xeCJK 是 XeLaTeX 下中文排版的核心引擎——几乎所有使用 XeLaTeX 编译的中文文档,都直接或间接依赖它处理字体切换、字间距和标点压缩。但 xeCJK 的内部机制鲜有系统性的介绍:多数用户只知道 \setCJKmainfont\xeCJKsetup,对「字符之间的间距是怎么插入的」「标点压缩的数据从哪里来」「为什么 \textcolor 会破坏间距」这类问题缺乏直觉。本文试图从 XeTeX 原语层出发,逐层拆解 xeCJK 的设计,让读者建立一个从整体到局部的心智模型。

阅读全文 »

ctex 是中文 LaTeX 排版的核心基础设施——几乎所有中文 LaTeX 文档都直接或间接依赖它。这段时间我集中处理了 ctex 上积压的数个 Bug,涉及字间距(CJKglue)被覆盖、macOS 15 字体检测失效、LuaTeX 下 \verb 前间距丢失、hyperref 选项冲突,以及 .spa 文件生成等问题。同时完成了旧字体钩子兼容代码的清理和版本号提升(v2.5.10 → v2.6.0)。本文逐一记录这些改动的技术细节。

阅读全文 »

CJKpunct 是 CTeX 套件中负责中文标点挤压和间距调整的宏包。它的代码年代久远——最早可追溯到 CJK 宏包时代——但至今仍是 pdfLaTeX + CJK 中文排版方案中不可替代的一环。这段时间我集中处理了 CJKpunct 上两个积压已久的 Bug(#747#671),并从零搭建了 l3build 回归测试框架,顺带完成了文档 driver 的现代化迁移和 CI 打包流水线的接入。本文记录这些工作的技术细节和背后的思考。

阅读全文 »

本文是「Pineapple」系列的第二篇,上一篇完整拆解了引擎的核心原理——数据冒险驱动的 DAG 构建、channel-per-node 并行调度、Lua 嵌入和控制流编译。之后的两天里,项目经历了 10 个版本迭代、27 次功能提交,沿三条主线推进:可观测性与调试体验运行时架构演进新算子与数据并行框架。本文逐一记录每个改动的背景、技术决策和收效。

阅读全文 »