Android安全性优化——APP加固

现今移动应用市场火爆,APP数量呈爆发式增长,随着5G的逐渐广泛应用,APP增长趋势不断。正因APP的泛滥,网络攻击者的目标也在逐渐转移,数亿的移动互联网用户暴露在病毒攻击的范围之内,也使得手机APP安全形势更加不容乐观。

移动应用中同样储存着不少数据,为保障APP的安全,除了定期对其进行安全检测外,还做好安全加固工作,防止二次打包、防止篡改、防止被破解等等,提前进行加密加固工作,保障开发者和用户的利益。

APP加固的概念

APP加固是指通过一些加固技术对apk进行加固,防止别人反编译我们的apk获取源码和资源文件,大致原理是:先将java语法翻译成c/c++代码,然后将c/c++代码编译成.so库。目前市场主流的APP加固公司有三家,分别是:梆梆加固,360和爱加密。他们的大致流程如下:

  1. 首先,去对应网站注册帐号;
  2. 然后,上传已经签名过的app到网站,等待加固完成;
  3. 最后,加固完成后,下载加固好的apk文件,注意,由于对apk加固会更改apk文件,因此下载下来后,还需要对apk进行重新签名,每个网站都提供了自己的签名工具。

加固原理是什么?

APP加固是对APP代码逻辑的一种保护。原理是将应用文件进行某种形式的转换,包括不限于隐藏,混淆,加密等操作,进一步保护软件的利益不受损坏。

Android安全性优化——APP加固_第1张图片

1、Android加固

android应用安全加固,使用DEX

VMP、DEX函数抽取加密机动态还原、DEX文件加壳、SO文件加固、H5文件混淆、SDK加固、资源文件完整性保护、防调试保护、签名校验、防截屏、防劫持技术,使加固后的应用具备防逆向分析、防二次打包、防动态调试、防动态注入、防数据篡改等安全防护能力。

2、SDK加固

SDK加固使用DEX加壳、DEX源码分离及动态还原、DEX

VMP、防调试等技术对AAR、JAR文件进行加固,使加固后的AAR、JAR文件具备防逆向分析、防动态调试等安全防护能力;对于SO文件,使用SO加固技术;对于IOS

SDK,使用IOS源码混淆技术。

3、SO加固

SO加固使用SO加壳、SO混淆、SO VMP、SO

Linker、防调试、防调用、加固绑定等技术,使加固后的SO文件具备防逆向分析、防动态调试、防动态注入、防窃取等安全防护能力,降低SO文件被破解的风险。

4、H5加固

H5安全加固使用源码混淆技术,对应用内调用的H5文件、通过浏览器访问的H5文件、微信公众号和微信小程序进行加固,同时支持一次一密,即同一个页面每次被访问时代码都不相同,提高了H5文件被破解的难度,增强了H5文件的安全性。

APP加固方法

1、源码加密。大家在做APP加固 的时候,是可以采用源码加密的方法的,这个可以防二次打包,可以做资源文件保护以及so文件和Dex文件保护。其实,每个加密项目又还包含了很多的小项目,比如对于dex文件来说,它进行加密保护的时候,是需要加壳保护的,还可以是加花以及动态类加载等的方法。

2、应用加密。这个APP加固的方法也是包括两种技术的,一种是清场技术,一种是log日志输入屏蔽技术。对于清场技术来说,它是依赖于云端的白名单,黑名单的,这个应用在每次启动的时候,就会自动的进行本地的白名单和黑名单的数据更新,如果它检测到异常的情况的话,就会对用户进行提示的。

3、数据安全。这种APP加固 方法的功能是非常多的,不仅可以进行页面的防劫持,进行截屏保护和本地数据的保护,还可以做内存数据的防查询,虚拟键盘和协议加密等的内容,对于它的防截屏,录屏的功能来说,它是通过hook技术监控系统来进行底层的截屏相关操作的,这样就能够防止相关函数的调用了。

可见,APP加固 的方法是有很多的,尤其是数据安全方面的功能是非常强大的,它还可以在界面中加入一些代码,以防止页面被截屏。APP加固其实是一个比较庞大的工程,对于它的原理,将会接下来给大家介绍。

更多Android app安全加密技术;可往B站视频: 华为资深专家深度教学;AndroidIO加密文件改造全过程;dex文件加密、解密;apk打包、解包、加壳、脱壳!

Android核心技术:《Android架构技术进阶》

Android安全性优化——APP加固_第2张图片

总结

1、静态层面

有防逆向,如DEX文件的保护、SO文件的保护、SDK的保护以及JS、H5、HTML等文件的保护,利用一些加固技术去做防逆向的保护。静态层面还有签名保护,主要是防篡改,一个是代码防篡改,一个是资源文件防篡改。将防篡改技术加入进来,嵌入之后,就能实现静态层面的防篡改。

2、动态层面

主要是防调试,一般是通过动态调试来查看你这个平台的逻辑是什么样的,要有防动态调试的技术。还要放进程调试、防内存DUMP、防模拟器、防HOCK攻击等。

3、数据层面

要有数据的防泄漏,像针对内存数据的保护,内存中的数据有没有加密?使用完后有没有及时释放?日志数据,有没有存储一些关键的数据?有没有存储一些敏感数据?以及在数据传输的过程中的一些加固技术要加入进来。针对页面数据的保护,有应用防截屏、应用防劫持、安全键盘等。

你可能感兴趣的:(Android性能优化,Android开发,android,apk加固,安全性优化,性能优化,dex加密解密)