Android-apk反编译方法

下面主要说明一下反编译一个apk的步骤(Mac上操作):

准备工具:
1.dex2jar:
https://github.com/pxb1988/dex2jar
2.jdgui:
http://jd.benow.ca/
3.android-apktool:
https://ibotpeaches.github.io/Apktool/

一、查看源代码。

将准备反编译的apk的后缀由.apk改为.zip。然后解压这个zip文件,结构如图:


Android-apk反编译方法_第1张图片
image

将里面的classes.dex拷贝到dex2jar的解压目录下,打开Terminal并进入到dex2jar的解压目录下,在Terminal中输入命令./d2j-dex2jar.sh classes.dex,按下回车后,该目录下会产生一个classes-dex2jar文件。

Android-apk反编译方法_第2张图片
image

这个jar文件可以用jd-jui打开:


Android-apk反编译方法_第3张图片
image

在jd-jui的解压目录下,打开客户端选择classes-dex2jar文件打开,即可查看程序源代码部分。可以选择将其保存在本地。

二、查看资源文件。

下载来的apktool是一个jar文件,先将其改名为apktool.jar,为了方便将apktool.jar和需要反编译的apk文件放在同一目录下。
打开Terminal,(需要Java环境)输入命令: java -jar apktool.jar d 应用文件名.apk
按下回车执行后会产生一个和apk同名的文件夹,文件夹里包含了该程序的资源和xml文件。


Android-apk反编译方法_第4张图片
image

将源代码和资源文件合起来分析就好了。因为现在的应用程序大都采取了代码混淆处理,所以这种情况下使用这种方法不能看到清晰的源码,只能看到一些代码结构。反编译给我们提供了一个很好的学习渠道,可以通过反编译学习好的程序编写方法,代码结构。且用且珍惜!

你可能感兴趣的:(Android-apk反编译方法)