跳到主要内容

设置说明

本文按照软件界面的分组,逐一介绍每一个设置项的作用与注意事项。软件的选项较多,一般保持默认勾选的组合即可获得最高的兼容性,其余选项可以根据自己 APK 的实际情况逐步测试后再上线使用。

配置截图​

配置截图

界面分区说明​

首页的选项按作用位置分成若干组,每组标题右侧都有一个总开关,勾选即代表启用该组功能,取消勾选则会关闭该组下的全部选项。

分组作用范围处理模式要求
通用设置应用名称、包名、版本、签名等全量处理 / 轻量处理
DEX 代码混淆代码层面的混淆与保护仅全量处理
资源混淆设置图片、文本、JS、Assets 等资源仅全量处理
APK 防篡改运行时对包名、签名、环境的校验仅全量处理
APK 文件处理APK 包结构与文件层面的保护全量处理 / 轻量处理
APK 优化处理精简体积、清理调试信息仅全量处理
说明

全量处理需要解包再重新编译,支持全部选项;轻量处理不解包,只支持少量选项。两者的区别见文末的轻量处理模式介绍。

通用设置​

处理模式​

  • 全量处理(解包 + 重编译,支持所有混淆选项):功能最完整,推荐日常使用;
  • 轻量处理(不解包,仅支持少部分混淆选项):处理速度快、不容易出错,适合加固后出现闪退、解包失败或急需交付的场景。

轻量处理属于专业版功能,免费版点击时会提示购买。

APP 名称、包名与版本号​

打开 APK 后会自动读取这些信息,可以直接修改后重新打包:

  • APP 名称:即桌面上显示的应用名,不能包含 <、>、'、"、& 等特殊符号;
  • 包名:只能包含英文字母、数字、点号和下划线,至少两段且每段以字母开头,例如 com.example.app;
  • 版本号:包含显示用的版本名(VersionName)和系统使用的版本码(VersionCode)。VersionName 不能为空,VersionCode 需要填写 1~2100000000 之间的整数。
注意

修改包名后,处理后的 APK 与原包不是同一个应用,无法覆盖安装,也无法沿用原来的推送、支付、地图等第三方平台配置。批量处理模式下不支持修改应用名称、包名和版本号。

  • 生成随机包名:一键生成随机包名,适合需要多开的场景;
  • 自动随机:勾选后每次处理的包名都会自动随机生成;
  • 批量不改文件名:批量处理时,输出文件沿用原 APK 的文件名,方便核对。

增加包体积​

填写 0~1024 之间的整数,单位为 MB。软件会向包中加入随机数据,把 APK 体积增大到接近目标大小,常用于混淆关键文件的位置、拉开不同渠道包的体积差异。填写 0 表示不增加体积。

随机种子​

留空时每次处理的结果都不同;填写一个整数后,在相同的 APK、相同的配置、相同的种子下,可以得到完全一致的混淆结果,包括随机名称、随机资源等。

适合用于回归测试、问题复现、对比混淆前后的差异。批量处理时软件会为每个 APK 自动派生不同的种子,保证各包结果稳定且互不相同。

注意
  • 使用随机种子时不能同时勾选「自动重置证书」,否则签名证书无法保持一致,软件会拦截该组合。
  • 软件升级后,随机算法可能调整,同一种子在不同版本之间不保证得到完全相同的结果。

签名证书​

处理后的 APK 需要重新签名才能安装。软件默认使用内建证书,也可以点击「添加证书」导入自己的证书。

  • 重置证书:删除当前默认签名证书,下次处理时自动生成新证书。重置后新包无法覆盖安装旧包,请谨慎操作;
  • 自动重置:每次处理都自动更换一次证书,适合需要每个包签名都不相同的场景(与随机种子互斥)。

重命名模式​

该选项决定软件生成的随机名称使用什么风格的字符,影响类名、方法名、变量名等重命名效果。

模式名称效果特点
字母数字由小写字母和数字组成兼容性最好,软件默认选项
不可见字符使用肉眼看不到的零宽字符反编译工具中几乎看不到名字,可读性极差
特殊符号使用箭头、数学与几何等符号字符名称显示混乱,难以复制搜索
英文单词由完整的英文单词组合而成看起来就像正常业务代码,隐蔽性好
Unicode使用中文、日文、韩文等文字名称可读性差,搜索与定位困难
混合模式每个名称随机选用上面几种风格之一风格杂乱组合,专业版功能

混合模式示例

注意
  • 为保证 APK 能够正常安装运行,凡是组件类名、应用包名、资源名、XML 命名空间等关键位置,都会自动使用普通的字母数字,不受所选模式影响。
  • 字母数字的兼容性最好。不可见字符、特殊符号、Unicode 的保护效果更强,但对个别机型、应用市场审核或第三方工具有概率出现显示、复制或兼容问题,发布前请务必安装验证。
  • 重命名只作用于参与混淆的代码,被「DEX 忽略列表」跳过的第三方 SDK 不会被重命名。

DEX 代码混淆​

该组作用于代码本身,是全量处理模式下的核心保护能力。

类重命名​

把代码中的类名全部替换为无意义的随机名称,并同步修改所有引用位置,使反编译后看不出类的原始用途,大幅提升静态分析的难度。

方法重命名​

把类中的方法名替换为随机名称,配合类重命名使用,让反编译出来的代码完全失去可读性,难以判断每个方法的作用。

域重命名​

把类中的成员变量(字段)名称替换为随机名称,隐藏变量含义,进一步增加分析成本。

注意

三项重命名都会改写代码中的名称。如果项目中使用反射、JNI、插件化、热修复或代码里写死了类名/方法名字符串,请把相关包加入 DEX 忽略列表。

注入垃圾代码​

在应用中随机生成大量看起来像正常业务代码的垃圾类和方法,混杂在真实代码之中。相比其他注入选项,这些垃圾代码是成体系的代码而不是零散指令,反编译后会看到大量似是而非的业务逻辑,很难快速区分哪些是真代码,从而大幅提升定位关键逻辑的成本。

注意
  • 会增加包体积和处理耗时,追求极致体积时可以关闭。
  • 软件会自动控制注入量,避免超出 DEX 的容量上限。
  • 与「DEX 加壳」同时开启时,壳代码同样会被注入垃圾内容。

注入垃圾指令​

在代码中插入不影响程序结果的无用指令,使方法的指令流变长、变乱,反编译后代码显得冗长难读。

注入垃圾分支​

在代码中插入无意义的条件分支语句,让反编译工具得到的流程图变复杂,增加人工阅读和自动化分析的难度。

注入垃圾跳转​

在方法中插入无效的跳转,打乱指令的线性顺序,使反编译工具还原代码时更容易出错或产生混乱的控制流。

指令乱序​

打乱方法内部指令的执行顺序(不改变运行结果),让还原出来的代码不符合常规写法,难以阅读和理解。

调用隐藏​

对代码中的调用语句进行包装隐藏,使反编译后看不到直接的调用关系,难以顺着调用链追踪核心逻辑。

字符串加密​

加密代码中的明文字符串,运行时再解密使用。反编译后看不到原始的 URL、接口地址、密钥、提示语等内容,防止敏感信息泄露。

DEX加壳​

给 DEX 文件增加一层保护壳,静态分析工具无法直接看到壳内代码,有效保护代码实现细节。

DEX文件加壳增强​

在 DEX 加壳的基础上进一步强化,保护更难被脱壳和分析。属于专业版功能,勾选时会自动启用 DEX 加壳。

DEX拆分​

随机把 DEX 拆分成若干份,增加反编译时查看完整代码的难度。

So文件加密​

对 APK 中的 so 动态库进行加密处理,保护使用 C/C++ 编写的核心代码。

注意

DEX 加壳、加壳增强属于高侵入性保护,处理后建议完整安装并回归主要业务;个别加固后的包可能被部分小众杀毒软件提示有壳,属于正常现象。

资源混淆设置​

资源名称混淆​

把 res 目录下的资源名称全部替换为无意义的随机名称,让对方无法从资源名判断其用途。

资源名称混淆增强​

进一步提升资源名称的随机程度,名称更加杂乱。属于专业版功能,勾选时会自动启用资源名称混淆。

图片资源混淆​

对 res 和 assets 中的图片数据进行细微调整,肉眼几乎察觉不到差异,但文件的特征值会改变,防止通过比对图片内容定位或被直接盗用。

说明

点九图(.9.png)不会被处理,避免影响拉伸效果。

文本资源混淆​

对 assets 目录中的 html、js、css、json 等文本资源做处理,改变文件内容的同时不影响正常使用,保护前端和配置文件不被直接查看或复制。

XML混淆​

对 Manifest 及 res 下的 XML 文件做结构层面的处理,使部分反编译工具无法正确解析,同时打乱元素的排列顺序。

内部包名混淆​

修改代码内部的包结构与包名为无意义的名称,隐藏项目的目录组织方式。

Assets加密​

对 assets 目录中符合条件的文件进行加密,加密后的文件无法直接打开查看。

JS加密混淆​

对 assets 目录中的 JS 文件进行混淆加密,保护 H5、混合开发业务的前端代码。

JS加密混淆增强​

在 JS 加密混淆的基础上提高强度。属于专业版功能,勾选时会自动启用 JS 加密混淆。

注入随机资源​

向 APK 中随机注入若干额外资源,让资源的总数和结构变得复杂,增加从资源入手分析的难度。

APK 防篡改​

以下选项会在应用运行时进行检测,检测到异常即退出应用。

包名防修改​

处理后的 APK 如果包名被修改,运行将闪退,防止应用被二次打包改名。

APK防重签​

处理后的 APK 如果使用其他证书重新签名,运行将闪退,防止应用被重新打包分发。

反调试​

应用被附加调试时自动退出,防止通过动态调试分析或修改业务逻辑。

VPN检测​

检测到手机开启了代理或 VPN 时自动退出,防止被抓包分析。

ROOT检测​

检测到设备已 ROOT 时自动退出,防止在 ROOT 环境下被 hook 或注入分析。

注意

这几项都是「检测到异常即退出」的强策略。如果目标用户会使用代理、ROOT 设备或需要抓包联调,请按需关闭对应选项;测试包建议先全部关闭。

APK 文件处理​

防止反编译​

对 APK 包结构做处理,使常见的反编译工具无法直接解析,部分工具会直接报错或只能解析出残损内容。

APK文件魔改​

对 APK 文件整体结构进行修改,避免包被第三方反编译软件解析和重新打包。

注意

targetSdkVersion 大于等于 30 的包,开启后无法在 Android 11 及更高版本上安装,对兼容性有要求的包请勿使用。

APK伪加密​

对 APK 压缩包做伪加密处理,使部分工具无法识别包内内容,从而保护包内的资源文件。

伪加密兼容安卓8​

在伪加密的基础上兼容 Android 8 系统,强度会略有降低,兼容性更好。属于专业版功能,勾选时会自动启用 APK 伪加密。

ARSC魔改​

对资源索引表文件进行处理,使部分反编译工具报错、无法解析 APK。

DEX魔改​

在不影响正常安装运行的前提下对 DEX 文件结构做处理,使常见反编译工具无法正确解析出代码,保护强度较高,且轻量处理模式同样支持。

注意
  • 建议不要对已经做过 DEX 魔改的包重复处理。
  • 该选项会重写 DEX 内容,之后会统一重新对齐和签名,不影响签名结果。
  • 属于结构性保护,上线前请在真机上安装并做完整的业务回归。

APK高级保护​

对 APK 内部的资源索引与 Manifest 做进一步保护,增强防反编译能力。属于专业版功能。

注意

该项属于实验性保护,勾选项时请特别注意:正式发布前务必进行安装与业务回归,确认功能不受影响。

APK垃圾注解​

向 APK 压缩包中注入垃圾注解信息,使部分反编译软件无法识别,从而无法反编译 APK。

文件时间混淆​

修改 APK 内部文件的时间信息,防止通过分析文件时间戳推断出关键文件或修改顺序。勾选随机种子时会自动一并处理。

资源防解压​

对 res 目录下的资源文件进行处理,处理后的文件无法被普通解压工具正常解压,也无法被反编译工具直接提取出来。

注意

该选项强制使用 v2 签名,处理后的 APK 仅支持 Android 7.0 及以上系统。

APK 优化处理​

移除无用代码​

移除代码中的注释、调试信息等无用内容,减小体积的同时减少可泄露的信息。

移除日志信息​

移除 Java 代码中的日志输出语句,防止调试日志泄露接口、参数、业务流程等信息。

轻量处理模式介绍​

轻量处理模式可以在不解包的情况下对 APK 直接进行处理,适用于以下情况:

  • APK 结构特殊、加固过或重编译容易出错;
  • 解包后的包无法正常运行,只想做基础保护;
  • 希望处理速度更快、风险更低。

目前轻量处理模式支持的功能包括:增加包体积、防止反编译、文件时间混淆、APK 文件魔改、APK 伪加密(含兼容安卓 8)、ARSC 魔改、DEX 魔改、资源防解压、APK 高级保护、APK 垃圾注解以及重新签名相关选项。

切换到轻量处理模式时,软件会自动关闭仅全量处理支持的选项,无需手动调整。

使用建议​

  • 初次使用:保持默认勾选的组合处理一次,安装运行验证业务正常后,再逐步增加其他选项。
  • 追求兼容性:关闭「DEX 加壳」「APK 文件魔改」「APK 伪加密」「资源防解压」等结构性、签名类选项。
  • 追求保护强度:在验证通过的前提下,组合使用类/方法/域重命名 + 注入垃圾代码 + 字符串加密 + DEX 加壳增强 + DEX 魔改,并配合不易冲突的重命名模式。
  • 出问题时的排查顺序:先切到轻量处理模式验证基础链路,再关闭重命名类、加壳类选项逐步定位,必要时把相关 SDK 加入 DEX 忽略列表。
  • 配置复用:调好的参数可以点击「保存配置」,下次启动自动载入;也可以通过「文件 → 导出配置」导出给团队或命令行使用。

注意事项​

注意
  • DEX 加壳、APK 文件魔改、APK 伪加密等选项可能导致少数国外小众杀毒软件报毒或提示有壳,属于正常现象,可以忽略。
  • 涉及包名、签名、结构的保护开启后,原本(未开启这些选项)的包无法覆盖安装新包,请提前通知测试与运营。
  • 修改包名或使用「自动重置证书」后,第三方平台(推送、支付、统计、地图等)的配置需要同步更新。
  • 加固属于高风险操作,任何选项调整后都请在真机上安装并回归核心业务流程,不要直接发布。

相关文档​