如何反编译APK?

时间:2021-10-08 03:31:01

1、概述

一些商业的app都包含很多精美的图片还有一些比较好的配置文件,以前某师兄就说过apk把后缀改为zip,然后解压一下就可以获得很多图片资源,但是这时候你打开一下解压出来的xml资源全是乱码。通过反编译不仅可以获取全部图片和正常的xml配置文件,要是没有进行代码混淆的apk还可以看到源码的!所以反编译还是要掌握一下,暑假美团外卖商家版不就是被人反编译然后发现它杀死友商的后门嘛,最近在学车,这里驾校宝典apk给反编译一下来看看吧。

2、工具

通常有Apktool或者ShakaApktool ,这里用的是Apktool做的示范  (工具下载见最后)

里面有三个工具:

【apktool】获取资源文件,提取图片文件,布局文件,还有一些XML的资源文件

【dex2jar】将APK反编译成Java源码(将classes.dex转化为jar文件)

【jd-gui】查看2中转换后的jar文件,即查看Java文件

如何反编译APK?

分为以下3步

2.1、使用apktool反编译APK获得图片与XML资源

为了方便这里将驾校宝典的apk放到 apktool2.2文件夹中,然后进入apktool2.2文件夹中,双击cmd.exe,输入

apktool.bat d com.handsgo.jiakao.android_6.2.9_liqucn.com.apk (可以使用Tab键补齐,不要傻傻的一个个敲)

如何反编译APK?

然后我们会发现在apktool2.2文件夹多出一个反编译之后的文件夹,这时候xml文件不乱码而且图片均可获得!第一步get

2.2、使用dex2jar将classes.dex转换成jar文件

这里我需要将apk改为zip解压后获取到classes.dex文件,将它复制到dex2jar.bat所在的目录下

如何反编译APK?

然后cd到dex2jar-2.0文件夹下

如何反编译APK?

然后输入:d2j-dex2jar.bat classes.dex

得到我们的jar文件

2.3、使用jd-gui查看jar包中的Java代码

打开jd-gui.exe文件夹

然后打开我们转化出来的jar包,好吧这里做了代码混淆想看源码是不可能喽,这是商业软件嘛,不混淆代码就不正常了,但是仔细看看还是可以看到用的一些控件大概逻辑之类的。

如何反编译APK?

最后想说一下,有时候反编译第一步出来是个空文件夹,那是apktool版本太低的原因,通常通过反编译看到配置文件和精美图片还是可以的,源码要看人品了。

工具下载地址http://download.csdn.net/detail/xsf50717/9252337