android apk反编译

反编译所需工具

1.AXMLPrinter.jar

2.d2j-dex2jar.bat

3.查看Jar包的GUI工具

 

★功能实现

解压缩

apk文件其实就是一个MIME为zip的压缩包,可以用winrar软件打开看到里面的文件结构。解压缩后找到里面的classes.dex文件,classes.dex文件就是java文件编译再通过Dalvik须立即提供的dx打包工具打包而成的,接下来就用2个工具来逆向导出java源文件。

生成jar文件

d2j-dex2jar.bat和classes.dex放到同一目录下,Windows cmd下用命令定位到classes.dex所在目录,运行d2j-dex2jar.bat(空格)classes.dex生成classes-dex2jar.jar。

JD-GUI查看源码

GUI工具打开该jar包即可查看源码。


★xml文件反编译

从凡百脑以学习最多内容多半是布局文件的学习,一个优秀的程序的UI的设计是精巧的,非常值得学习

针对性的查看xml文件

将AXMLPrinter.jar文件和所有要反编译的xml文件放到同一目录下cmd定位到该目录,执行以下代码:

 

java-jar AXMLPrinter2.jar xxx.xml>yyy.txt

用这样的代码执行AndroidManifest.xml文件的反编译时没有问题的,但是在执行布局文件的反编译的时候,可能会报如下错误:

 


 

问题在于:在AndroidMainfest.xml文件中minSdkVersion <= 7 时,利用AXMLPrinter2.jar 就能正常反编译出xml文件

大于7以后就不能正常反编译xml文件(AndroidManifest.xml除外)

 

参考:http://hi.baidu.com/ghcghc/item/ecbaa1ce997cb225a0b50ac2

 

posted on 2013-09-10 20:10  you Richer  阅读(193)  评论(0编辑  收藏  举报