Android apk 反编译

来源:互联网 发布:股票个股分析软件 编辑:程序博客网 时间:2024/06/03 20:27

通过反编译第三方apk,学习和借鉴他人代码是学习Android的一个重要途径之一。下面是我对反编译的笔

记整理。

测试环境:windows。

使用工具:apktool(资源文件获取,可以提取出图片和布局文件)

                    dex2jar(源码文件获取,将class.dex转换成jd-gui可查看阅读的.jar文件)

                    jd-gui   (源码查看,查看class.dex转化成.jar文件)

整合包下载:反编译工具整合包

   

反编译流程:

一,反编译得到res目录下的图片资源和xml文件、AndroidManifest.xml等

1、下载上面的整合包解压得到:apktool.rar,dex2jar-0.0.9.15.zip,jd-gui-0.3.5.windows.zip。将它们

分别解压到各自文件名的目录下。

2、apptool.jar解压后其目录三个文件:aapt.exe,apktool.bat,apktool.jar。将需要解压的apk拷贝到其

目录下,打开命令窗口,定位到 .\apktool 目录下执行命令:apktool.bat d -f mapp-debug.apk -o mapp

(命令中mapp-debug.apk 为要反编译的apk,mapp为输出文件夹,即:apktool.bat d -f [apk] -o [输出文件夹])

效果如图所示:



执行完成后查看mapp文件夹:就会发现有res文件夹,里面有我们需要的布局,图片,动画等。


二反编译得到Java的源码病查看源码

1、将mapp-debug.apk的后缀名.apk 改成.rar或.zip。然后解压到map-debug文件夹,得到我们所需的

classes.dex文件。

2、将classes.dex拷贝到 \dex2jar-0.0.9.15目录下,执行命令:dex2jar.bat   classes.dex。在其目录下

会生成文件classes_dex2jar.jar。

3、使用jd-gui.exe取查阅classes_dex2jar.jar。


输入dex2jar.bat   classes.dex效果如下:


使用jd-gui.exe查看源码效果图:



三,反编译过程种曾经遇到过的异常:

1、Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file...

这个问题的原因是apktool版本过低,过去最新的apktool.jar替换原来的。最新apktool.jar下载

2、Input file was not found or was not readable

apktool升级到2.0以上时,使用方式已经替换,格式为:apktool.bat d -f [apk] -o [输出文件夹]

具体参数意义可输入apktool回车。


0 0
原创粉丝点击