Android dex ,xml 文件反编译方法【转】

Dex 文件是Android上运行于delvik的java二进制文件,如果你对其中的内容感兴趣而开发人员没有公布源代码,你可以用如下方法反编译dex文件:

    1 解压system.img

    用xyaffs2解压system.img 等你所需要解压的img文件:

    xyaffs2 img_file output_dir

    xyaffs2可以从如下地址下载:

    http://limodev.cn/download/xyaffs.tar.gz

    2 从输出目录找到你感兴趣的apk包,用unzip解压apk文件包:

    unzip ContactsProvider.apk

    3 用dex2jar工具将解压后的文件夹中的classes.dex转换成jar文件:

    dex2jar.sh classes.dex

    或者

    dex2jar.bat classes.dex

    dex2jar的下载地址如下:

    http://code.google.com/p/dex2jar/

    非常感谢这个工具的作者 "pxb1988",我不知道作者的全名,就写了作者的网名了。

    4 用unzip解压jar文件:

    unzip classes.dex.dex2jar.jar

    5 用DJ java decompiler 反编译jar包中的class文件

    DJ一般有图形化界面,操作很简单,可以单个文件反编译,也可以批量反编译。DJ的下载地址如下:

    http://members.fortunecity.com/neshkov/dj.html

    在批量反编译时,注意将输出文件后缀改为java,默认的输出文件后缀为jad。

    6 用AXMLPrinter反编译xml文件:

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

    AXMLPrinter的下载地址如下:

    http://android4me.googlecode.com/files/AXMLPrinter2.jar

    最后,感谢以上开源软件的开发者,他们的努力工作使android的反编译容易了很多,而且反编译出来的代码可读性很高。再次感谢!

posted on 2011-01-27 09:49 挑灯看剑 阅读(6770) 评论(0)  编辑 收藏 引用 所属分类: Android

只有注册用户登录后才能发表评论。
<2011年1月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

公告

【自我介绍】 08年南开大学硕士毕业 最近关注:算法、Linux、c++、高并发 爱好:滑旱冰、打乒乓球、台球、保龄球

常用链接

随笔分类(139)

文章分类

我常去的网站

技术博客(都是大牛)

技术站点

搜索

积分与排名