技术文档分类总览
移动加固推荐方案
Android 与 iOS 的保护面差异、能力支持现状、推荐组合与发布流程。
最后更新于 2025-06-06
本分类文档
共 2 篇1. 支持现状
移动端的产物形态、签名机制与运行时差异很大,先确认你面对的是哪一类:
| 平台 | 产物 | 当前建议 | 说明 |
|---|---|---|---|
| Android | APK / AAB | 客户端直接支持 | Dex 加密、反调试、反注入、Root / 模拟器检测、反截屏 |
| Android | APK 内 .so | 按 Android Native ELF 方案处理 | 符号移除、混淆、虚拟化,需要额外验证 JNI |
| iOS | IPA(Mach-O) | 以源码级 + 构建产物加固建议为主 | 受签名、App Store 加密与审核约束,方案需评估 |
具体支持范围以当前客户端版本和授权类型为准。iOS 的交付方式与 Android 不同,落地前请与技术支持确认。
2. 移动端威胁模型
移动应用面临的主要风险:
- 反编译与二次打包:拆包、修改 Dex 字节码、重签名分发。
- 动态调试与注入:Frida、Xposed、Magisk 模块、调试器附加。
- 运行时篡改:修改内存、Hook 关键函数、替换资源。
- 环境风险:Root / 越狱、模拟器、多开、云手机。
- 协议与密钥泄露:硬编码密钥、明文接口签名。
加固只能提高成本,不能替代服务端校验。授权、支付、风控的最终判断必须放在服务端。
3. 分层加固模型
| 层 | Android | iOS |
|---|---|---|
| 代码 | Dex 加密、方法混淆、.so 保护 | Swift / ObjC 符号与字符串处理、关键逻辑 native 化 |
| 资源 | 资源混淆、关键配置加密 | 资源与配置加密 |
| 运行时 | 反调试、反注入、Root / 模拟器检测 | 反调试、越狱检测、反注入 |
| 完整性 | 签名校验、包完整性 | 签名与 Team ID 校验、Mach-O 校验 |
| 业务 | 服务端签名、设备风控 | 服务端签名、DeviceCheck |
4. 推荐发布流程
Release 构建
↓
原始包自测(真机)
↓
加固 / 混淆 / 保护
↓
重签名(原证书)
↓
真机回归 + 兼容性测试
↓
内测分发 / 灰度
↓
应用商店发布
关键点:
- 先自测再加固。原始包必须能正常安装、启动和跑通核心流程。
- 加固后必须重签名。证书、签名方案(APK v2 / v3、IPA 重签名)要与发布渠道一致。
- 多 ABI 覆盖。
arm64-v8a必测,armeabi-v7a、x86_64按发布范围覆盖。 - 保留 mapping / 符号。崩溃分析需要原始符号,按版本归档。
- 分渠道验证。应用商店、企业分发、内测平台的签名和审核要求不同。
5. 合规与商店审核
- 隐私政策需要说明收集的设备信息与用途,Root / 越狱检测、设备指纹属于敏感能力。
- 不要用加固隐藏违规内容、规避审核或动态下发违规代码。
- Google Play 对动态代码加载、权限和隐私有明确限制;AAB 是推荐上传格式。
- App Store 对动态代码、热更新和加密有审核要求;加固方案不能改变审核可见的功能。
6. 选型速查
| 场景 | Android | iOS |
|---|---|---|
| 工具 / 内容类 | Dex 加密 + 反调试 | 符号处理 + 字符串加密 |
| 金融 / 支付 | Dex 加密 + 反注入 + Root / 模拟器检测 + .so 保护 | 反调试 + 越狱检测 + 完整性校验 |
| 游戏 | Dex 加密 + .so 虚拟化 + 反调试 | 关键算法 native 化 + 反调试 |
| 出海 | AAB + Dex 加密 + 隐私合规 | IPA + 符号处理 + 审核合规 |
7. 子文档
8. 相关文档
这份文档有帮助吗?欢迎反馈文档问题或补充场景。提交文档反馈