感谢您的反馈!
加固是对本身应用逻辑的一种保护。原理是首先将正常应用生成的二进制文件进行某种形式的转换,隐藏,混淆等操作,然后在程序启动或者运行时进行恢复操作,让应用在二进制文件已经被修改的前提下仍然能够正常的运行。
加固的作用主要是用来增加软件的逆向成本,保护软件的利益不受损坏。这种技术也常用来保护软件版权,防止被软件破解。
加固由于在程序中插入花指令和加密so文件,如果dex文件为6M,体积则会增加dex文件的3%-5%,再加上目前so的180k的体积,大概会增加300多k,由于我们这边还会对dex文件进行再次压缩和指令优化,同时加固方式不同也会导致体积有不同变化,实际体积增加以不同的应用最终数据为准,但总体增大应该在2%-5%之间,对于个别应用体积不增加甚至减少也属正常情况。
根据不同应用时间不同,以dex文件6M的应用程序,大约需要3-4分钟,应用越大,压缩时间越长。
加固接入方式有两种
1.通过在聚安全平台上提交apk包返回加固后的apk包。
2.通过接入api接口
1.反主流静态反编译工具apktool,dex2jar等
2.dex文件加密,隐藏,指令保护等
3.so加壳保护
由于android碎片化问题兼容性是有影响,解决该类问题目前主要有两个方面:1、主动测试兼容性机型,不断找出潜在的兼容性问题。 2 、及时收集客户反馈的问题,做相应的适配。
优势是阿里加固这边有相对独立的兼容性手机测试实验室,可以涵盖目前市场上top 200的机型,同时及时收集客户反馈问题,做相应的修改。
目前阿里系大多数应用都使用了加固,比如手淘,天猫,千牛等主要使用的是加固的反主流静态反编译工具的服务,还有些对安全性要求较高的比如阿里健康,九游客户端,交易猫等应用使用了 dex 文件加密保护等加固服务。
加固不会修改业务逻辑本身的代码,不会在应用中插入广告插件
可以将加固作为Release版本做完整性测试即可,不需要特殊维护。
优势:
1.保护自己核心代码算法,提高破解/盗版/二次打包的难度
2.还可以缓解代码注入/动态调试/内存注入攻击
劣势:
1.影响兼容性
2.影响程序运行效率.