防止apk反编译的有效方法
1、 首先我们找一个经过混淆代码和防二次打包的Android APK,这样的Android APK包不难找!只要到APK源代码安全检测平台,检测一下就可以知道做过什么保护。
通过图片我们可以看到这款Android APK做了混淆代码和防二次打包保护,对于其他的Android APK中的DEX、RES、SO库等文件未做任何保护。下面我就通过对APK源代码的安全分析,看看这Android APK的安全怎么样!

2、首先我先将APK反编译,看看能不能拿到代码!经过简单的反编译我们就可以轻松的拿到APK里面的源代码,下面我们就修改一下里面的东西,看看之前的APK保护是否有效!

3、配置用户权限(重要)
2、添加必须组件(重要)
完成这2个步骤我们的sdk就已经植入成功了,如图:

4、那么我们怎么解决这款APK做的保护呢?不用着急,我们慢慢来!
首先我们发现当登录的时候会提示签名信息不一致,导致不能登录!经过分析发现他是给apk做了签名信息认证,这时我们需要找到他获取签名信息的地方,如下图:

5、到这一步就可以绕过这款APK的二次打包防护了,这样我们就可以登录了!登陆后我们可以看到这款Android APK已被植入广告!

1、这里我要简单介绍一下APK的混淆代码、防二次打包的加密技术是怎么回事!
混淆代码:Android APP的源码进行混淆后混淆器将代码中的所有变量、函数、类的名称加密为简短的英文字母代号,在APP被破解后增加破解者对代码的阅读难度。 但是混淆的功效只能运作在APP已经被破解后,而且只是增加破解者的难度时间,对其防止破解的作用意义不是很大。
防二次打包:二次打包是指将APK拆包后重新打包,二次打包必将丢失原有的签名。大多数的Android开发者都是将签名信息作为认证标准,所以只要原有的签名信息改变,APK就无法正常运行。但是如果将这个认证信息功能屏蔽掉,防二次打包就失效了!
2、 通过对APK的反编译我们知道,混淆代码和防二次打包的APK加密技术已经无用!下面我们通过对DEX、RES、SO库等主要Android APK文件进行加密,看看是否能有效防止APK被破解和反编译!
我们先通过APK安全保护平台,对这款Android APK进行安全保护。步骤如下:登录/注册→上传APK→等待系统加密→完成后下载APK→给APK签名→完成!
注意:在app安全检测平台,个人信息要填写完整,否则无法正常使用。APK加密完成后,系统会发出邮件通知加密完成。最后下载APK包再次完成签名,就可以正常使用了!
3、 我们来看一下加密后的效果。我们先解压,然后反编译。当我们解压的时候会得到“解压文件损坏”的提示,而我们打开源代码却看到里面的代码已经和原来的不一样了!
