Android dex ,xml 文件反编译方法

    近来忙于Android的开发,找了许多开源软件,效果都不是很好,只好找了一款商业软件,对其反汇编,

    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/


    4 用unzip解压jar文件:

    unzip classes.dex.dex2jar.jar


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

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

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

    安装好之后,安装目录下有一个jad.exe文件,执行:jad -o -r -dF:/src -sjava F:/classes/**/*.class

    -o  - overwrite output files without confirmation (default: no) 无需确定覆写文件

    -r  - restore package directory structrure 恢复包目录结构

    -s - output file extension (by default '.jad') 如果不设置为-sjava,则默认扩展名为.jad

    其他的,F:/classes/**/*.class 中的两颗接连的星,表示任意层次的子目录。


    6 用AXMLPrinter反编译xml文件:

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

  AXMLPrinter的下载地址如下:

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值