<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Heck's  Blog]]></title> 
<link>https://www.heckjj.com/index.php</link> 
<description><![CDATA[一瞬间的决定，往往可以改变很多，事实上，让自己成功的往往不是知识，是精神！ 如果你总是为自己找借口，那只好让成功推迟。执行力，今天！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Heck's  Blog]]></copyright>
<item>
<link>https://www.heckjj.com/how-to-android-reflect/</link>
<title><![CDATA[Android 如何反编译]]></title> 
<author>Heck &lt;@hecks.tk&gt;</author>
<category><![CDATA[编程杂谈]]></category>
<pubDate>Mon, 27 Sep 2010 10:51:51 +0000</pubDate> 
<guid>https://www.heckjj.com/how-to-android-reflect/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: 微软雅黑;">至于干嘛要反编译，嘿嘿！目的咱就不说了。。。<br/>先说些预备知识：classes.dex是java源码编译后生成的java字节码文件。但由于Android使用的dalvik虚拟机与标准的java虚拟机是不兼容的，dex文件与class文件相比，不论是文件结构还是opcode都不一样。目前常见的java反编译工具都不能处理dex文件。 <br/><br/>一般使用dexdump和Dedexer可以反dex，但是用过的人都知道这样反出来的结果可读性极差。在这个时候大家一定要相信互联网的力量，所谓只要你能想到的或许就已经有人已经做到了。瞧瞧吧，我下面要介绍的就是别人已经给我们做好的几个工具。<br/><br/>dex2jar，这个别人写的一个把.dex files转换成Java .class的小工具，很不错。基本使用方法如下：<strong><span style="color: #DC143C;">在apk中提取classes.dex文件 -> 利用dex2jar把dex转换成java jar（classes.dex2jar.jar）</span>。</strong></span><span style="font-family: 微软雅黑;"><br/><br/>到这里了，我们用普通的java反编译工具就可以看到代码了。我使用的是JD-GUI，这是一个有界面的java（.class） 代码浏览器，简单实用！另外还提供了一个Eclipse plugin（JD-Eclipse），可以吧JD-GUI的功能集成到Eclipse里面。<br/><br/>最后，在提供一个与Layout相关的工具，AXMLPrinter2.jar，该工具能吧apk中的xml文件转换成文本格式，这样就就可以直接欣赏别人程序中界面布局的实现方式啦。当然Android SDK也提供了一个类似的工具（hierarchyviewer.bat），个人感觉还不入AXMLPrinter2.jar转成xml后直接看来得痛快。<br/><br/>文中提到的所有工具都是开源或免费的，感谢这些无私奉献的人们，附工具的链接：<br/>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://code.google.com/p/dex2jar/" target="_blank">dex2jar</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://java.decompiler.free.fr/" target="_blank">JD-GUI</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://code.google.com/p/android4me/" target="_blank">AXMLPrinter2</a> <br/>&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://sourceforge.net/projects/dedexer/" target="_blank">Dedexer</a> <br/></span><br/>Tags - <a href="https://www.heckjj.com/tags/android/" rel="tag">android</a> , <a href="https://www.heckjj.com/tags/%25E5%258F%258D%25E7%25BC%2596%25E8%25AF%2591/" rel="tag">反编译</a>
]]>
</description>
</item><item>
<link>https://www.heckjj.com/how-to-android-reflect/#blogcomment</link>
<title><![CDATA[[评论] Android 如何反编译]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://www.heckjj.com/how-to-android-reflect/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>