?
Android菜鸟日记
25 android反编译
写在最前面的话:之所以写这个是感觉目前市场上的书写的内容都不够,那么有很多大公司的android apk写的不错,教下师弟们反编译去看看人家怎么写的,加以学习,请勿用于抄袭或者任何形式的不正确的行为,这样违背了我的初衷谢谢。
?
所有要用到的文件在附件
?
用dex2jar来反编译classes.dex
1.首先用压缩软件打开apk[我这里打开的是京东的=-=#感谢京东apk]
??
得到:
2.把里面的classes.dex拿出来 放到dex2jar文件夹下。
?
?
?
?
?
3.然后打开CMD[win+r 键入cmd]
Cd? 定位到你要使用的目录
键入以下代码
Dex2jarclasses.dex 如图
其实是用dex2jar.bat去反编译classes.dex成jar
此时目录文件夹[dex2jar-0.0.7-SNAPSHOT文件夹]下会多出一个classes.dex.dex2jar.jar文件.
?
4.用jd-gui打开classes.dex.dex2jar.jar得到下图
下面不说了 你懂得 自己看吧? 一般大的apk都做了混淆 找些小的看
?
?
?
?
AXMLPrinter2.jar查看apk的xml文件
有些不懂得布局是如何做的怎么办呢?AndroidManifest不知道怎么写?
看打开APK看RES下XML文件撒。
什么直接打开编译有问题?[如下图]
?
乱码了。
?
怎么解决呢?
其实apk的xml文件时需要解析一下的,这里提供一个通过使用AXMLPrinter2来解决xml乱码的问题。
?
1.首先吧AXMLPrinter2下载下来放到任意文件夹,然后把你要查看的xml文件也丢到那个文件夹。如下图
2.依旧进入cmd cd到当前目录执行一下代码
Java=jar AXMLPrinter2.jar main.xml>xxx.txt?//main.xml是你要反编译的文件xxx.txt是转换后的存储文件。 Xxx.txt你写成随意.xml亦可。[写txt是为了和编译前得文件分辨]
将会得到一个xxx.txt
打开xxx.txt你想要的东西就会出来了。
[截图内容为京东客户端的AndroidManifest.xml文件]
?
?
先写这么多吧,以后想到再写,以上大多数是我自己的经验,可能有些不符合别人习惯但是我觉得挺好的。个人按照自己需求选择性学习。有更好的办法请使用更好的办法在写这篇文章的时候我还没想到更好的解决办法。
?
2011-10-23
poolo
?