CodeFog · 代码混淆工具

CodeFog / 首次使用教程

CodeFog 首次使用:从项目备份到混淆后验证

本教程面向第一次使用 CodeFog(原 ZFJObsLib)的开发者。工具运行在 macOS 上;处理 iOS、Objective-C、Swift 或 Flutter 项目前,请先与作者确认当前版本及所需模块的适配范围。不同语言和模块不能默认视为完全相同的处理能力。

1. 在副本中处理,先确认原项目能编译

提交当前代码或复制一份完整项目,保留依赖、资源和工程文件。在原始版本完成一次编译和关键流程测试,将其作为对照。自动备份可作为补充,不替代你自己可恢复的源码备份。

2. 从少量功能开始,逐项验证

首次运行时,先选择一项确实需要的模块,例如属性混淆或资源名处理。记录此次配置,完成编译和功能测试后,再增加其他模块。逐项处理可以帮助定位是哪一类修改引起了问题。

3. 检查忽略路径与动态引用

第三方依赖、系统接口以及运行时依赖固定名字的代码,需要先检查过滤和忽略规则。比如服务端 JSON 字段映射的数据模型、反射读取的类名和通过字符串拼接的图片名称,不能只依赖静态文本替换。

文档中的路径示例:仅忽略 Home 下的 Models 目录时,使用 Home/Models 区分同名目录。过滤路径应按实际文件目录填写。忽略规则的作用范围因模块而异;日志出现一个文件名,并不等于该文件中所有标识都已被修改。

查看忽略路径说明 · 查看混淆与资源问题问答

4. 保存配置、日志与映射列表

为每次处理保存原始版本、使用的配置、日志及导出的映射列表,和发布版本关联存档。文档介绍了后续处理时导入映射列表的操作,但代码或工具版本变化后,仍应重新验证结果,不能只凭导入成功判断兼容。

5. 编译通过后,还要测试运行结果

常见情况如何定位?

图片消失:先对照原版本,检查是否通过字符串拼接引用图片。资源重命名后,动态组合的引用不一定能自动替换。

模型字段解析失败:检查是否混淆了服务器字段对应的模型属性,根据需要过滤具体文件或目录,再用副本重试。

工程引用报错:检查虚拟分组与实际目录的对应关系,对照备份恢复;不要在唯一的工作副本上连续尝试。

遇到其他编译错误:先保留日志,回到最后一个可编译版本,减少本次开启的模块。咨询时提供工具版本、项目语言及错误信息,先移除源码中的私密内容。

授权、支持与能力边界

CodeFog 需要付费激活。购买 CDK 前请联系作者确认适配、授权范围与支持事项。源码混淆会增加阅读与分析成本,但不能保证无法反编译,也不能保证 App Store 审核通过。

下载 macOS 版本 · 联系作者确认适配 · 完整使用问答