APK资源混淆与重签名配置笔记
我更建议把APK加固看成一个逐步收敛的配置过程:先使用默认组合确认应用能安装运行,再根据代码、资源和渠道风险增加保护。工具位于安卓APK资源混淆加密重签名工具。

从模式开始
全量处理会解包、混淆、重编译,所有选项可用;轻量处理不解包,速度更快、风险更低,适合解包失败、加固后闪退和急需交付,但只支持部分选项,属于专业版。切换模式后,软件会自动关闭仅全量支持的项目。
六组设置分别是通用、DEX代码混淆、资源混淆、APK防篡改、APK文件处理和APK优化处理。前四组中,DEX、资源、防篡改、优化只支持全量;通用和文件处理支持全量、轻量。闪退和功能失效重点看DEX与防篡改,打不开和解析失败重点看文件处理。
参数、包名和证书
应用名称不能包含 <、>、'、"、&。包名只能包含英文字母、数字、点号、下划线,至少两段且每段以字母开头,例如 com.example.app。版本名不能为空,版本码须是1~2100000000的整数。批量处理不能修改名称、包名、版本号。
改包名后是不同应用,不能覆盖安装;推送、支付、地图、统计等平台配置要同步修改。“生成随机包名”和“自动随机”可生成或自动替换包名,“批量不改文件名”让输出沿用原文件名。增加包体积为0~1024MB,0表示关闭。
随机种子不填,每次结果不同;填整数后,相同APK、配置、种子能得到相同结果,包括随机名称和资源。它适合复现问题和追踪发布,但不能与“自动重置证书”一起启用;不同软件版本不保证算法一致。
APK处理后需要重签名。可以使用内建证书或“添加证书”导入自有证书。“重置证书”生成新证书,新包不能覆盖旧包;“自动重置”每次更换证书,与随机种子互斥。
名称、代码、资源
重命名模式有字母数字、不可见字符、特殊符号、英文单词、Unicode和混合模式。字母数字兼容性最好,混合模式为专业版。组件类名、应用包名、资源名、XML命名空间等关键位置仍会使用普通字母数字,其他模式要真机验证。
类、方法、域重命名建议一起开启。若使用反射、JNI、插件化、热修复或写死名称,将相关包放入DEX忽略列表 注入垃圾代码会加入成体系的垃圾类和方法,增加体积与耗时但不超过DEX容量;垃圾指令、垃圾分支、垃圾跳转、指令乱序改变表现形式但不改变执行结果。调用隐藏包装调用关系,字符串加密隐藏URL、请求参数、密钥、提示文案。
DEX加壳保护静态代码,DEX文件加壳增强是专业版并自动开启DEX加壳;DEX拆分把DEX拆成若干份;So文件加密保护C/C++代码。加壳侵入性高,需要完整回归,少数国外小众杀毒软件报壳或误报属于可能现象。
资源名称混淆处理 res,增强版提升随机程度并属于专业版。图片资源混淆处理 res 和 assets,改变特征值且肉眼几乎无差异,点九图不处理。文本资源混淆处理 assets 中的html、js、css、json。XML混淆处理Manifest及 res 下XML并打乱元素顺序。
内部包名混淆隐藏目录组织;Assets加密处理 assets;JS加密混淆保护H5和混合开发脚本,增强版为专业版并自动启用基础项;随机资源注入增加资源数量和结构复杂度。
两类运行保护
防篡改包括包名防修改、APK防重签、反调试、VPN检测和ROOT检测,异常时退出。测试包建议关闭;使用代理、VPN、ROOT设备或抓包联调时关闭相关选项。
防止反编译和APK文件魔改作用于整体包结构。targetSdkVersion大于等于30时,APK文件魔改后无法安装到Android 11及更高版本。APK伪加密阻止部分工具识别内容;兼容安卓8版本支持Android 8但强度略低,属于专业版并自动启用APK伪加密。
ARSC魔改处理资源索引,DEX魔改处理DEX结构且轻量模式支持;DEX魔改不要重复作用于已处理包。APK高级保护进一步处理资源索引和Manifest,属于专业版实验性功能。APK垃圾注解增加干扰,文件时间混淆修改时间戳,使用随机种子时会自动处理时间。
资源防解压处理 res,普通解压及反编译工具不能直接提取;强制v2签名,仅支持Android 7.0及以上。移除无用代码、移除日志信息可长期开启。
四种组合
默认兼容:适合首次、复杂机型和曾有兼容问题的APP。
平衡推荐:加入字符串加密、调用隐藏、指令乱序、类/方法/域重命名、垃圾代码、资源名称/图片/文本混淆、Assets加密、JS加密混淆、移除无用代码和日志。
防护优先:在平衡基础上增加DEX加壳及增强、DEX魔改、ARSC魔改、防止反编译、So文件加密、APK伪加密、垃圾注解和文件时间混淆,发布前必须真机回归。
故障收敛:轻量模式→关闭类重命名、DEX加壳、DEX魔改→把SDK加入DEX忽略列表 https://apkobf.leapever.com/docs/dex-ignore-list →关闭ROOT、VPN、反调试→检查诊断日志。
不要把“全选”当作安全性答案;过度加固会增加闪退、功能异常和应用市场拒审。报壳或误报时可关闭DEX加壳、APK文件魔改和APK伪加密。配置可保存或通过“文件→导出配置”迁移,种子可复现结果。
最后
代码、资源、运行时和包结构分别解决不同问题。加固只能提高逆向成本,不能提供绝对安全;最终应把处理包安装到真机,完整验证核心业务。
扫描二维码推送至手机访问。
版权声明:本文由YLong软件发布,如需转载请注明出处。
本文链接:https://www.ylongsoft.com/post/apk-resource-obfuscation-signing-notes.html


