1、下载工具:
apktool:
csdn:http://download.csdn.net/detail/vipzjyno1/7025111
googlecode:https://code.google.com/p/android-apktool/downloads/list
apktool里面的apktool.jar更新地址:
https://bitbucket.org/iBotPeaches/apktool/downloads
dex2jar:
csdn:http://download.csdn.net/detail/vipzjyno1/7025127
googlecode:http://code.google.com/p/dex2jar/downloads/list
jd-gui:
csdn:http://download.csdn.net/detail/vipzjyno1/7025145
googlecode:http://java.decompiler.free.fr/?q=jdgui
2、反编译源代码:
<1>解压apk
(1)apk也是一种压缩文件,将apk文件后缀名改为.zip或.rar,然后解压;
(2)解压后找到里面的classes.dex;
<2>解压dex2jar,并将dex转为jar
(3)解压刚才下载的dex2jar工具,得到文件夹把dex2jar;
(4)classes.dex放到dex2jar下;
(5)然后命令行转到dex2jar路径;
(6)执行命令"dex2jar.bat classes.dex ";
(7)在文件夹dex2jar里面会生成一个classes_dex2jar.jar文件;
<3>用jd-gui打开jar文件
(8)解压刚才下载的jd-gui,得到jd-gui.exe;
(9)打开jd-gui.exe,点击里面的打开文件按钮,找到classes_dex2jar.jar导入进去,就可以看到源代码了。
3、反编译资源
<1>解压刚才下载的apktool文件,得到文件夹apktool;
<2>将apk拷贝到apktool下;
<3>命令行转到apktool;
<4>执行命令:
(1)如果是原版的apktool.jar,这样执行命令:“apktool d -f [apk文件] [输出文件夹]”;
(2)如果是新版的apktool.jar,这样执行命令:“apktool d -f [apk文件] -o [输出文件夹]”;
(3)切记如果用新版jar,没有用新的方法,会报Input file not found or was not readable;
(4)推荐使用新版jar,因为随着sdk的更新,老版的jar取破解新版的sdk会报错。
4、重新打包
执行命令"apktool b [刚才反编译出来的文件夹名称]"
5、反编译xml
解压apk之后,可以直接反编译里面的xml文件,用的工具叫AXMLPrinter2.jar。
使用方法:将xml和这个jar放到同一个目录下,cmd进入这个目录,输入命令
java -jar AXMLPrinter2.jar AndroidManifest.xml >newxml.xml