一步步教你Android反编译

前言

反编译已经有不少大佬写过了,我这里又写了一遍。一是但愿可以更加的通俗易懂,让没接触过反编译的小伙伴能java

够快速入手。二也是但愿本身可以更加的牢记,就像是笔记同样。但愿你们可以多多支持。git

工具介绍

  1. Android反编译通常会用到三个工具。apktooldex2jarjd-gui
  2. apktool将xml资源文件反编译成能够查看。并把class.dex文编译成了能够smali文件。smali具体是什么我也不太清楚,上网查说是底层java虚拟机读的语言。
  3. dex2jar将class.dex文件转换成jar包的工具
  4. jd-gui能够读取jar包的工具
  5. 工具地址: “ https://github.com/13046434521/-”

实例

这里咱们以某TV为例。由于我的想写一个直播视频的Demo,但是没有数据,因此只能用fiddler去拦截请求。但是发现并无直接把地址直接写在返回的请求里。我的猜想是把返回的数据,拼接成了播放地址。这里咱们反编译试一下。github

1.apktool:

  • 咱们将apk文件解压。这样咱们就能获得该apk的资源文件以及class.dex文件即源代码。

解压


  • 这样咱们就获得了图片。可是咱们打开AndroidManifest和layout布局这些xml格式的文件就会发现,全是乱码。我要是想看这个Apk的布局怎么写的该怎么办呢。这时候就用到apktool了。将咱们要反编译的apk文件放进apktool的文件夹方便一会用到。 打开dos窗口,进入apktool界面。apktool d 文件名.apk

apktool


  • 这样咱们就获得了编译好的文件了。这时的xml文件已经能够查看了,而不是乱码了 。

反编译完成.png

2.dex2jar:

将classes.dex文件翻入dex2jar的文件夹。输入图中的命令,就可获得图中的jar文件,即源代码。 工具

jar文件

3.jd-gui:

将jar文件,经过jd-gui打开便可看到源代码。 布局

源代码

结尾 :

反编译出来的代码有可能,有a,b,c这种代码,那是由于打包的时候加了混淆,防止反编译。ui

反编译就说到这里了,感受排版有点乱。各位大大就凑合来吧。我去看他的源码去了。3d

喜欢的点个关注呗,大家的关注就是我最大的动里。code

仍是那句话,风力雨里在这里等你。感谢各位,但愿你们共同进步,3Q。cdn

(另外加句题外话,我发现有的公司喜欢把图片放到drawable里而不是mipmap里。好比我反编译的这个项目就是。不知道大家喜欢放到哪儿。)视频

相关文章
相关标签/搜索