文档资源混淆

资源混淆

预计阅读时间:8 分钟

什么是资源混淆?

资源混淆是对应用中的图片、音频、配置文件等资源文件进行重命名或修改, 防止通过资源文件名推断应用功能,同时增加逆向分析的难度。

支持的资源类型

图片资源

.png, .jpg, .gif, .webp

音频资源

.mp3, .wav, .m4a, .caf

配置文件

.json, .plist, .xml

混淆方式

1. 文件名混淆

将有意义的文件名替换为随机字符串

login_button.pngzfj_8xK9m.png

2. Assets.xcassets 混淆

混淆 Asset Catalog 中的图片集名称

icon_settingszfj_3nM7k

3. 图片内容修改

微调图片像素,改变文件哈希值

视觉上无差异,但文件指纹完全不同

配置选项

启用资源混淆

obfuscateResource: true

混淆 Assets

obfuscateAssets: true

修改图片哈希

modifyImageHash: true

资源白名单

resourceWhitelist: []

自动更新引用

资源混淆后,CodeFog 会自动更新以下位置的引用:

源代码中的资源引用
Storyboard/XIB 文件
Info.plist 配置
Assets.xcassets 内容
LaunchScreen.storyboard
项目配置文件

注意事项

  • AppIcon 和 LaunchImage 默认不混淆
  • 通过字符串拼接加载的资源需要手动处理
  • 第三方 SDK 的资源文件建议加入白名单
  • 混淆后请检查所有图片是否正常显示