Android apk反编译之android APK有效加密方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android apk反编译之有效防止破解和反编译加密方法对于Android开发者来说,自己开发的Android APP被破解是个让人头疼的事。
那有什
么办法能防止Android apk反编译和破解呢?一般的混淆代码和防二次打包还有效么?我们通过下面的内容来验证一下!
首先我们找一个经过混淆代码和防二次打包的Android APK,这样的Android APK包不难找!只要到爱加密APK源代码安全检测平台,检测一下就可以知道做过什么保护。
通过图片我们可以看到这款Android APK做了混淆代码和防二次打包保护,对于其他的Android APK中的DEX、RES、SO库等文件未做任何保护。
下面我就通过对APK源代码的安全分析,看看这Android APK的安全怎么样!
首先我先将APK反编译,看看能不能拿到代码!经过简单的反编译我们就可以轻松的拿到APK里面的源代码,下面我们就修改一下里面的东西,看看之前的APK保护是否有效!
1、配置用户权限(重要)
2、添加必须组件(重要)
完成这2个步骤我们的sdk就已经植入成功了,如图:
那么我们怎么解决这款APK做的保护呢?不用着急,我们慢慢来!
首先我们发现当登录的时候会提示签名信息不一致,导致不能登录!经过分析发现他是给apk做了签名信息认证,这时我们需要找到他获取签名信息的地方,如下图:
到这一步就可以绕过这款APK的二次打包防护了,这样我们就可以登录了!登陆后我们可以看到这款Android APK已被植入广告!
这里我要简单介绍一下APK的混淆代码、防二次打包的加密技术是怎么回事!
混淆代码:
Android APP的源码进行混淆后混淆器将代码中的所有变量、函数、类的名称加密为简短的英文字母代号,在APP被破解后增加破解者对代码的阅读难度。
但是混淆的功效只能运作在APP已经被破解后,而且只是增加破解者的难度时间,对其防止破解的作用意义不是很大。
防二次打包:
二次打包是指将APK拆包后重新打包,二次打包必将丢失原有的签名。
大多数的Android开发者都是将签名信息作为认证标准,所以只要原有的签名信息改变,APK就无法正常运行。
但是如果将这个认证信息功能屏蔽掉,防二次打包就失效了!
通过对APK的反编译我们知道,混淆代码和防二次打包的APK加密技术已经无用!下面我们通过对DEX、RES、SO库等主要Android APK文件进行加密,看看是否能有效防止APK被破解和反编译!
我们先通过爱加密的APK安全保护平台,对这款Android APK进行安全保护。
步骤如下:
登录/注册→上传APK→等待系统加密→完成后下载APK→给APK签名→完成!
注意:
在爱加密APK源代码安全保护平台,个人信息要填写完整,否则无法正常使用。
APK 加密完成后,系统会发出邮件通知加密完成。
最后下载APK包再次完成签名,就可以正常使用了!
下面我们对加密过得APK进行源代码的安全检测,看看对DEX、RES、SO库等主要文件的加密,是否真能防止破解和反编译!
经过爱加密APK源代码安全检测平台的检测,我们看到这款APK已经做了相当高级的加密保护。
但是面对破解技术是否有效果呢?我们试着对破解一下!
我们先解压,然后反编译。
当我们解压的时候会得到“解压文件损坏”的提示,而我们打开源代码却看到里面的代码已经和原来的不一样了!
所以我们最后得到总结就是对DEX、RES、SO库等主要APK文件的加密是有效的,因为我们根本无法拿到里面的代码,无法进行任何修改。
这是我的Android APK防止破解和反编译的经验分享,希望可以帮到Android开发者朋友!。