1.下载工具
需要如下四个反编译工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot
下载地址:http://code.google.com/p/innlab/ 页面的Downloads下可以找到对应的工具
2.解压apk文件
apk格式的文件其实也是一种压缩文件,利用一般的解压工具可以直接进行解压。如:
解压前:解压后:
3.反编译.dex文件
解压下载的dex2.jar,把解压后的文件夹放到系统盘根目录下并把这个目录加到系统path变量中,就可以直接用dex2jar.bat转换dex文件。
配置系统path变量:右击我的电脑->属性->高级->环境变量,然后在系统的path变量下加;xxx。xxx表示dex2.jar的目录。
在dos下跳到dex2.jar的解压目录下,然后输入如下命令:dex2jar.bat classes.dex。
如:
这时你会发现之前的dex2.jar 解压目录下多了一个classes_dex2jar.jar 的文件。
4.反编译.jar文件
打开压缩文件JD-GUI,运行jd-gui.exe,打开之前生成生成的.jar文件,就可看到源代码了。
5.反编译xml文件
通过以上步骤虽然说可以看到程序的源代码,但当你打开其中的xml文件想看看程序是如何布局的时候,你会发现仍然是乱码,所以这时我们需要反编译xml文件。
将下载的 apktool、apktool-install-windows-r05-ibot 解压到同一个文件夹中,使之可以看到以下3个文件:
同样配置好该目录的path变量,如第三步。打开dos跳到该目录下,输入:apktool d C:\a.apk C:\a。注意apk文件名或目录名最好不要是中文并且不能带空格,之前我就是因为这样出现了坑爹的错误,然后将手电筒 2.0.1.apk改名为a.apk错误才解决。
解释:c:\a.apk为要反编译的文件,c:\a表示反编译后的存放的目录,若存在该目录可以输入apktool d -f C:\a.apk C:\a进行覆盖。
进行了该操作之后我们就可以看到c:\a下了有反编译后的文件,打开xml文件发现也不再是乱码。
好了,通过以上一些步骤就可以自己对原作者的代码进行肆意修改了。
有时候某些作者为了防止被反编译,使用了混淆工具,会让代码让人很难以看懂,但是一般花点时间还是能看懂大概的。
其实使用混淆比较简单,只要在exlipse的配置文件中加入一句代码就ok:proguard.config=proguard.cfg。
如图:
(这篇文章是我以前在自己空间写的,现在放在csdn博客,分享给大家,希望能给需要的人带来帮助!有不当的地方也请大家指正,谢谢!)