apk防破解:Android apk加密方案
APP加密也称应用加密,是指对apk文件进行加密保护,防止被破解者反编译、二次打包、破解等攻击。
盗版APP不仅破坏用户信息安全,损害用户的合法利益,更直接给正版应用开发者造成巨大的商业价值损失。所以为了保护应用安全,开发者需要对APP进行加密保护。
Android APK加密方案都有哪些?为大家分析如下:
代码混淆
- 01
代码混淆是将程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。比如将代码中的各种元素,如变量、函数、类的名字改写成无意义的名字,使破解者在阅读时无法根据名字猜测其用途,增加反编译的阅读难度。
- 02
这种代码混淆方法简单、便于操作。但也因此会给开发者的调试工作带来困难,开发人员通常需要保留原始的未混淆的代码用于调试。由于混淆是不可逆的,在混淆的过程中一些不影响正常运行的信息将永久丢失,这些信息的丢失会使程序变得更加难以理解。
伪加密
- 01
首先了解下什么样的apk是经过经过伪加密的,经过压缩软件打开需要密码的就是伪加密的apk。 所谓的伪加密就是说 在 压缩文件中,压缩文件名后的PK 01 02 后的第五个字节改为0即可,解密就是对应的改为00
- 02
虽然伪加密可以起到一定防破解作用,但也会出现问题,首先使用伪加密对其APK加密后市场无法对其进行安全检测,导致部分市场会拒绝这类APK上传;其次,伪加密的加密方式和解密方式也早已公布导致它的安全程度也大大降低;再次,Android4.2.x系统无法安装伪加密的APK;最后伪加密只是对APK做简单保护,在java层源码加壳保护、核心so库、资源文件、主配文件、第三方架包方面却没有任何保护处理。
第三方应用加密
- 01
第三方应用加密平台可以从多维度对dex文件、so文件、资源文件等进行加固保护,能有效防止应用在运营推广过程中被反编译, 恶意篡改、注入扣费代码、盗取数据等。
- 02
以360加固保提供的安卓应用加密服务为例,在未经过应用加密前,apk很容易反编译得到源码。如下图,可以看到apk源码中的游戏升级逻辑。
- 03
对该apk进行加密后,该classes.dex经过360加固保的Android APK加密,再进行反编译,可以看到apk加密前后的代码结构对比。能看到右侧截图中加固后的代码文件都已经被隐藏起来,只保留了加固后的保护程序,破解者在反编译时无法找到源程序真正的代码,即可有效的避免手机APP被破解和盗版。
- 04
具体Android apk加密详细步骤,可以参考图文介绍Android APK加密方法:
- 05
总结: 360加固保Android APK加密可以提供的保护内容包括: dex文件高强度加密保护 原代码so文件加密保护 应用主配文件防篡改保护 应用资源文件加密保护 应用资源文件完整性保护 应用数据文件加密保护 应用签名校验保护 防内存截取攻击保护 应用内存非法读取/修改保护 防动态注入攻击保护