VcnStudio 4.7.0 安卓插件新增并优化了代码混淆功能;在工程配置/编译选项/开启“编译时混淆代码”;在编译时、会将代码中窗口的组件名、窗口成员名、变量名、事件、函数与事件参数值 变成随机字符串。
但需要注意:
开启代码混淆后;部分情况会导致编译失败、或APP崩溃;以下为详细说明:
1. 在函数中使用 @{ } 包裹的 Java 代码中不能直接使用函数的参数名称、因为开启混淆后、会混淆函数参数、但Java代码中用到的参数不会被混淆;因此在项目中使用原生代码时、不能开启混淆。
2. 窗口代码中的成员变量混淆后、在其它窗口中不能直接通过窗口对象调用、请使用 保存/读取 对象函数。
3. 公用模块中的使用 静态 关键字修饰的变量不会被混淆、但普通模块内成员变量会被混淆;混淆后在外部不可使用;请使用函数替代。
关于以上问题;在后续版本中将给出解决方案。
这种混淆有些麻烦 不如直接封装第三方加固,或者编译后自动通过第三方混淆加固
第三方免费加固的也容易被破;因为内置的字节处理、加密算法的偏移量值都是固定的;不过VCN已经支持自定义编写SO库文件了、在后面的版本会更新相关教程;让用户自己写SO库的偏移算法加固自己APP的DEX;从而可以完全实现自定义加固APK文件;防止网上那种一键脱固的工具。
这种混淆有些麻烦 不如直接封装第三方加固,或者编译后自动通过第三方混淆加固