9月27
至于干嘛要反编译,嘿嘿!目的咱就不说了。。。
先说些预备知识:classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。目前常见的java反编译工具都不能处理dex文件。
一般使用dexdump和Dedexer可以反dex,但是用过的人都知道这样反出来的结果可读性极差。在这个时候大家一定要相信互联网的力量,所谓只要你能想到的或许就已经有人已经做到了。瞧瞧吧,我下面要介绍的就是别人已经给我们做好的几个工具。
dex2jar,这个别人写的一个把.dex files转换成Java .class的小工具,很不错。基本使用方法如下:在apk中提取classes.dex文件 -> 利用dex2jar把dex转换成java jar(classes.dex2jar.jar)。
到这里了,我们用普通的java反编译工具就可以看到代码了。我使用的是JD-GUI,这是一个有界面的java(.class) 代码浏览器,简单实用!另外还提供了一个Eclipse plugin(JD-Eclipse),可以吧JD-GUI的功能集成到Eclipse里面。
最后,在提供一个与Layout相关的工具,AXMLPrinter2.jar,该工具能吧apk中的xml文件转换成文本格式,这样就就可以直接欣赏别人程序中界面布局的实现方式啦。当然Android SDK也提供了一个类似的工具(hierarchyviewer.bat),个人感觉还不入AXMLPrinter2.jar转成xml后直接看来得痛快。
文中提到的所有工具都是开源或免费的,感谢这些无私奉献的人们,附工具的链接:
dex2jar
JD-GUI
AXMLPrinter2
Dedexer
来源:Heck's Blog
地址:https://www.heckjj.com/how-to-android-reflect/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!
先说些预备知识:classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的,dex文件与class文件相比,不论是文件结构还是opcode都不一样。目前常见的java反编译工具都不能处理dex文件。
一般使用dexdump和Dedexer可以反dex,但是用过的人都知道这样反出来的结果可读性极差。在这个时候大家一定要相信互联网的力量,所谓只要你能想到的或许就已经有人已经做到了。瞧瞧吧,我下面要介绍的就是别人已经给我们做好的几个工具。
dex2jar,这个别人写的一个把.dex files转换成Java .class的小工具,很不错。基本使用方法如下:在apk中提取classes.dex文件 -> 利用dex2jar把dex转换成java jar(classes.dex2jar.jar)。
到这里了,我们用普通的java反编译工具就可以看到代码了。我使用的是JD-GUI,这是一个有界面的java(.class) 代码浏览器,简单实用!另外还提供了一个Eclipse plugin(JD-Eclipse),可以吧JD-GUI的功能集成到Eclipse里面。
最后,在提供一个与Layout相关的工具,AXMLPrinter2.jar,该工具能吧apk中的xml文件转换成文本格式,这样就就可以直接欣赏别人程序中界面布局的实现方式啦。当然Android SDK也提供了一个类似的工具(hierarchyviewer.bat),个人感觉还不入AXMLPrinter2.jar转成xml后直接看来得痛快。
文中提到的所有工具都是开源或免费的,感谢这些无私奉献的人们,附工具的链接:
dex2jar
JD-GUI
AXMLPrinter2
Dedexer
来源:Heck's Blog
地址:https://www.heckjj.com/how-to-android-reflect/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!
互联网造就了哪十大疾病?
Android:apk文



