反编译也不是什么新鲜的东西了。但是为了保护我们自己项目的代码,我们还是要通过反编译工具来检测一下我们的代码是否安全。
本文我们来使用一个开源的工具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等,相对麻烦一些。

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

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

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


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

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

  1. Android反编译工具jadx详细使用方法

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

  2. android反编译工具jadx卡死解决方案。

    jadx卡死解决 概述 问题点 解决方案 概述 在android的app中,由于dex部分是由java代码实现的,dex可以直接被apktool,androidkiller,jeb等工具进行反编译分析 ...

  3. Android反编译工具使用方法

    Android反编译工具使用方法 前言 apktool使用方法 dex2jar使用方法 jd-gui使用方法 前言 Android的反编译主要分为两个部分,一个是对资源的反编译(使用apktool), ...

  4. Android反编译工具与实践

    版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl What is Android Android is a mobile operating s ...

  5. Android反编译软件(附图详细教程)

    在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎么去实现的,这时,你便可以对改应用 ...

  6. Android反编译工具及使用

    文章目录 1. 工具 2. 步骤 3. 资源反编译 4 反编译出来的APK重新打包 5. 反编译工具jadx 1. 工具 Android反编译需要以下两款工具 dex2jar-- 这个工具用于将 de ...

  7. Android反编译工具与反编译步骤及常见问题

    Android代码混淆很大程度上就是为了别人反编译我们的代码,用反编译工具也可以测试我们的代码是否混淆成功. "工欲善其事,必先利其器",先介绍一下反编译的工具: apktool. ...

  8. Android反编译工具的使用(保姆级教程)

    Android反编译工具的使用(保姆级教程) 网上关于Android反编译的文章很多,但是好多都比较杂,就打算自己写一下,顺便也能加深一下印象. 一.常用反编译文件的介绍 apktool apktoo ...

  9. 【Android 安全】DEX 加密 ( 常用 Android 反编译工具 | apktool | dex2jar | enjarify | jd-gui | jadx )

    文章目录 一.apktool 1.apktool 简介 2.直接解压 3.使用 apktool 反编译 4.使用 apktool 重新打包 二.dex2jar 1.dex2jar 简介 2.dex2j ...

最新文章

  1. CPU值满resmgr:cpu quantum造成的Oracle等待事件解决办法
  2. 寒武纪招聘|智能驾驶类、算法类、软件类、芯片类等岗位(校招/社招)
  3. 设置更改root密码 ,连接mysql,mysql常用命令
  4. 16、IN和NOT IN用法详解
  5. 崩坏3服务器维护多久,崩坏35月28日停服维护多久?4.0版本更新内容汇总[图]
  6. boost::hana::drop_back用法的测试程序
  7. JS循环执行函数setInterval
  8. spring的bean不能注入的几种原因及分析
  9. php大作业含代码_目标检测 | 目标检测技巧大汇总(含代码与解读)
  10. c#中高效的excel导入oracle的方法
  11. Hadoop(八)网站流量分析
  12. react动态添加背景图片/不同内容添加对应背景
  13. redis优化,bigkey,hotkey,配置优化,缓存雪崩、缓存穿透、缓存击穿
  14. java拆分excel_apache poi拆分excel表格
  15. word多个标题一不能显示在一页
  16. [Java]分布式自平衡多文件云传输
  17. java电信计费项目论文_电信计费系统的设计与实现毕业论文.doc
  18. (九)STM32——Systemlnit初始化函数讲解
  19. 阿迪達斯NFT狂卷兩千多萬美元,但過程並非一帆風順
  20. 【无标题】codesys与rte关系

热门文章

  1. 后台管理界面的简单布局
  2. 自己做了一款新浪博客自动访客工具
  3. seresnet50训练自己的数据集_SSD框架训练自己的数据集
  4. 音频音量调整中的ramp up down
  5. sfc 修复 xp rpc服务器,SFC—系统文件检查程序命令 System File Checker
  6. java中amal_影中真相 | 历史是无情者对无脑者的胜利
  7. 微信跨公众号支付(appid 与 openid 不匹配)
  8. linux服务器格式化恢复,LINUX下误删除、格式化恢复解决方案
  9. 基于二分查找的抽签游戏算法的优化
  10. bzoj 4245: [ONTAK2015]OR-XOR