首页> 技术观点 > 技术解读 | APP加固后包体与内存变动的那点事

技术解读 | APP加固后包体与内存变动的那点事

发布时间:2024-05-15
为了防止应用被破解,开发者普遍会对应用进行加固,为应用穿上“金钟罩铁布衫”,披上厚重的盔甲虽能提高安全性,但会影响包括App包体大小在内的核心性能,而App包体大小会直接影响App在应用市场的下载转化率。
根据谷歌数据,包体大小每上升6MB,应用下载转化率就会下降1%。不同地区转化率略有差异,APK包体大小每减少10MB ,全球平均下载转化率会提升1.75%,新兴国家代表印度和巴西下载转化率提升2.0%以上,发达国家如美国和德国下载转化率提升1.5%。
除包体大小外,加固会影响的App核心数据还包括启动时间、内存占用等数据。

谷歌开发者大会
如何在加固强度与应用性能之间找到最佳平衡点已成为业内焦点课题,为了更好地帮助各位了解加固后核心数据变动的原因,小编本次就加固形式对性能的影响进行深度解读。

包体大小

加固后的包体大小主要受加固强度影响,加固强度越高加固项及加固代码数量越高,从而导致包体变大。
1、加固项的数量:加固时会跟根据加固内容往应用包中插入代码以及库文件,加固项越多插入的代码量越多,对包体的影响越大。
2、加固代码的数量:同一个加固项,在对不同的代码进行保护时,也需要在对应的位置插入代码,插入的位置越多,多包体的影响越大。
低强度加固仅采用部分代码加壳及防篡改技术,高强度加固额外采用了代码分离、VMP、防劫持、防截屏、防模拟器、高级内存防护、本地数据加密及资源隐藏8大加固项。
进行高强度加固后仅能查看壳代码,可更好的保护App源代码,但也会导致包体变大。
在资源隐藏方面,低强度加固仅能隐藏部分文件,高强度加固后可隐藏全部内容,可通过assets目录下的文件数印证隐藏效果。
爱加密长期
关注加固对App性能的影响,并持续优化。以某知名App为例,进行低强度加固后包体增量仅0.6%,进行高强度加固后包体增量仅为2.52%!对App性能近乎无影响。

 

启动时间

 

爱加密对DEX文件进行整体加密加壳,应用启动时需要将加固的DEX文件解密后加载,加固的DEX文件越大,解密需要的时间就越长。
以某App为例,进行高强度加固后,启动时间仅增加约0.6秒,处于行业头部水平!

 

内存占用

 

App加固后的内存占用数据同应用是否采用私有API实现内存加载及DEX大小有关,因此每个App加固后的内存占用增幅可能不同。
1、私有API:Google为了提升加固包兼容性,给厂商提供了InMemoryClassloader作为内存加载接口,该接口会把加载的数据重新在匿名内存中映射一份进行加载,从而增加内存占用。使用私有API实现内存加载可减少该类内存占用,但是会导致兼容问题,每个Android版本都要进行适配。
2、DEX:加固使用mmap加载加密dex到内存,加固的DEX越大,导致内存占用越大。
以某App为例,进行高强度加固后内存占用增加了约15MB,增幅约5%。

 

企业需要根据应用加固需求,寻找在加固强度及性能影响方面均有深厚造诣的企业深度沟通,确定每个影响性能细节能否优化,如InMemoryClassloader能否换为私有化API、DEX大小并确定加固项数量。通过对细节的雕琢,提高App整体性能表现。
为提升安全防护能力,全方位保护App的安全并将对App的影响降到最低,爱加密不断升级安全加固技术。经过多次迭代更新,爱加密已拥有八代加固技术,当下根据用户具体需求,为用户提供第二代技术到第八代AII-in-VMP技术的叠加加固,通过技术的迭代,协助客户在加固强度和性能损耗之间找到最佳平衡点。
爱加密移动应用安全加固平台兼容性极强,加固包兼容性高达99%,实现ART全面兼容,可全自动一键操作,大幅降低人力开销及技术学习成本,应用加固时间短,可即时获取加固后的应用!为开发者提供全面的移动应用安全加固技术,包括Android应用加固、iOS应用加固、游戏应用加固、H5文件加固、微信小程序加固、SDK加固、so文件加固和源对源混淆加固技术,加固后的移动应用具备防逆向分析、防二次打包、防动态调试、防进程注入、防数据篡改等安全保护能力。

 

爱加密作为国内知名的移动信息安全综合服务提供商,通过不断探索与实践,已覆盖政企、运营商、金融、医疗、教育、能源等多个行业的安全业务场景。未来将持续加强自身技术、服务经验的积累,更好服务客户的网络安全需求,为国家网络安全工作提供最有力的支撑,实现产业报国。

 

END

欢迎给我们留言或评论~

我们将持续发布技术解读、解决方案、行业报告

点击关注,不错过下次精彩内容

加入收藏