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