您的位置:首页 > 编程语言

反编译apk文件 得到其源代码

2012-09-19 14:08 281 查看
下文来自:

http://hi.baidu.com/jeremylai/item/d6efce77405f802e5d1789f5

====================================================================

反编译apk文件,得到其源代码的方法!!

dex2jar和JD-GUI这2个工具配合学习android太靠谱了,所以放上来给大家共享,开源的好处就是好东西大家一起分享。

dex2jar下载地址:http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip

JD-GUI下载地址:

windows版JD-GUI:http://laichao.googlecode.com/files/jdgui.zip

Linux版JD-GUI:http://laichao.googlecode.com/files/jd-gui-0.3.2.linux.i686.tar.gz

1.首先找到Android软件安装包中的classes.dex

把apk文件改名为.zip,然后解压缩其中的classes.dex文件,它就是java文件编译再通过dx工具打包成的,所以现在我们就用上述提到的2个工具来逆方向导出java源文件

2.把classes.dex拷贝到dex2jar.bat所在目录。

windows系统下:

在命令行模式下定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex,生成classes.dex.dex2jar.jar

Ubuntu系统下:(3楼正解!)

在终端下定位到dex2jar.sh所在目录,运行

sh dex2jar.sh classes.dex

则可生成classes.dex.dex2jar.jar

3.运行JD-GUI工具(它是绿色无须安装的),打开上面的jar文件,即可看到源代码。点击File > Save Source或者 File > Save All Sources可以class/jar转成.java保存

注:

用以上方法,测试了一下,太可怕了,原来自己也开源居然不知道。 通过这个方法能得到很多的有用的代码、资源,怪不得很多人善于山寨!
1. 对于 dex2jar, 建议到http://code.google.com/p/dex2jar/downloads/list 下载最新版本,以前的老版本在将.dex文件反编译为.jar文件时,有时会报异常信息!导致反编译不成功!

2. 解压后得到的xml文件是不可读取的,需要用工具再进行转换
AXMLPrinter(转换为可读的xml,下载地址:http://code.google.com/p/android4me/downloads/list ),自己将AXMLPrinter2.jar拷贝到与 需要转为可读的xml放在同一位置。

下面为我的cmd命令:

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>cd C:\apk_reverse

C:\apk_reverse>java -jar AXMLPrinter2.jar AndroidManifest.xml > new.xml

C:\apk_reverse>


参考资料:

/article/7698685.html

备注:关于mac 机器上如何反编译apk 源代码

请参考 : http://note.sdo.com/u/xbpiao/n/AfuqL~jxhThgLX0200014i
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: