Android反编译工具jadx详细使用方法以及混淆和加固的对比

反编译也不是什么新鲜的东西了。但是为了保护我们自己项目的代码,我们还是要通过反编译工具来检测一下我们的代码是否安全。
本文我们来使用一个开源的工具jadx来实现对apk文件的反编译。

1.下载安装jadx
jadx开源在github上了,我们可以直接去github上下载压缩包即可。这里我的环境是windows10。
jadx github下载地址

打开连接,找到最新版本,直接下载zip文件后解压即可。
这里写图片描述

然后找到解压目录的bin目录,双击打开jadx-gui.bat
这里写图片描述

如果打开顺利,你会看到这样的界面

这里写图片描述

如果双击打开时只是闪一下黑框,那说明你的环境有问题。jadx必须要运行在java8 64位的jdk上。
如果打不开很可能是你安装的是32位或者低版本的jdk。这个时候可以重新去下载安装java8 64位的jdk。下面给出官网下载地址。

java se下载地址
这里写图片描述

完成安装后记得重新配置一下java环境。确保环境正确。然后再次打开jadx即可。

2.使用
下载能成功打开我们基本上就已经完成了一大半了,剩下的就是简单的使用了。

点击file-open file 然后选择apk文件,我们就可看到反编译后的源代码了。

1)打开一个没有任何处理的apk文件看一下

我们先来看一下我之前的一个小的开源项目。是一个基于zxing的扫描二维码项目,也开源在github上了,有需要的朋友可以看一下。觉得还行的话顺便给个star呦。
zxing 扫描二维码

这个项目是开源的,我没有做任何处理,没有混淆,也没有加固。我们通过jadx打开看看是什么样的。
这里写图片描述

可以看到,包名,包结构,类名以及类文件都原封不动的显示出来了。也就是说如果你的项目不做任何处理的话,那别人通过反编译工具就能很清晰的看到你的源代码。

2)打开一个混淆过后的apk
下面我们再看一个我混淆过的apk。
这里写图片描述

可以看到,一些包名包括类中的变量名,方法名等都被改成了毫无意义的字母。还有一些类文件隐藏掉了。
这样就大大增加了阅读者查看代码逻辑的难度。

3)打开一个加固过后的apk

这里我用的是360加固。

这里写图片描述

可以看到,加固后的我们能看到的代码很少,而且跟源代码完全不一样,连原本的包名都没有了。

由此对比可以看出,
混淆只是增加了阅读源代码的难度,隐藏了部分代码,而加固相当于阻止了我们查看源代码的一切信息。

混淆在我们打包的时候会自动混淆,比较方便,而加固需要我们手动上传apk文件,有些还需要我们上传jks等,相对麻烦一些。

结论:如果项目对安全性要求不是很高的话,混淆一下就可以了,如果要求很高,最好还是加固一下。

关于混淆规则可以看看我的这篇博客 多模块混淆规则详解

好了,就这些,希望能帮到你。


如果你觉得本文对你有帮助,麻烦动动手指顶一下,算是对本文的一个认可,如果文中有什么错误的地方,还望指正,转载请注明转自喻志强的博客 ,谢谢!

©️2020 CSDN 皮肤主题: 书香水墨 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值