Android反编译

工欲善其事必先利其器,反编译apk,首先我们需要必须的工具

  • apktool
  • dex2jar
  • jd-gui
  • AXMLPrinter

我做了一下整理,可以直接在这里下载所需的全部工具 下载链接

工具介绍

apktool

获取资源文件,比如图片或者布局XML文件

dex2jar

将class.dex文件转化成jar包

jd-gui

查看class.dex转化的jar包
AXMLPrinter

还原xml文件

获取资源文件和XML文件

apktool获取资源文件:将aapt.exe,apktool.bat,apktool.jar 放到同一目录下,定位到apktool文件夹,运行一下命令:apktool.bat d -f test.apk test

apktool.bat d -f [apk文件] [输出的文件夹]

Android反编译_第1张图片

反编译之后会在apktool所在目录下新建一个文件夹,文件夹目录如下
Android反编译_第2张图片

如果发现反编译出来的都是smali文件,可能是你使用的是旧的apktool,建议去官方网址下载 apktool官方下载网址,也可以使用我已经打包好的全套文件百度网盘下载

获取Java源代码

将apk文件更改后缀名为zip或者rar,解压之后目录如下:
Android反编译_第3张图片
可以看到,目录下面包含多个.dex文件,一般的小项目都会只有一个.dex文件,我这个是以支付宝为例,项目比较多,进行了分包处理。

在命令行下定位到dex2jar.bat所在的目录,dex2jar [dex文件的路径]
Android反编译_第4张图片

在dex所在的目录下会生成一个class_dex2jar.jar文件,运行jd-gui文件夹下的jd-gui.exe ,并且用改工具打开之前生成的class_dex2jar.jar文件就可以查看Java源码啦。
Android反编译_第5张图片

获取AndroidManifest.xml

打开我们解压后的apk文件夹,你会发现 Android开发必须的 AndroidManifest.xml文件,打开文件:
Android反编译_第6张图片
wf,什么鬼,全是乱码。下面就要用到我们的AXMLPrinter工具来还原AndroidManifest.xml
命令行定位到AAXMLPrinter2.jar所在目录,运行下面的命令:

java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest2.txt

你会发现在AXMLPrinter2.jar目录下,会生成一个AndroidManifest2.txt,打开AndroidManifest2.txt发现我们能看懂了:
Android反编译_第7张图片

这就是本次与大家分享的Android反编译,希望对大家有用。

你可能感兴趣的:(android,android,反编译)