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下载地址

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html


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

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

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

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

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

https://github.com/yuzhiqiang1993/zxing

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


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

2)打开一个混淆过后的apk
下面我们再看一个我混淆过的apk。


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

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

这里我用的是360加固。

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

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

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

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

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

好了,就这些,希望能帮到你。
--------------------- 
作者:喻志强 
来源:CSDN 
原文:https://blog.csdn.net/yuzhiqiang_1993/article/details/80674808 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值