工具下载:http://pan.baidu.com/share/link?shareid=2338878455&uk=2147770900
一、用Apktool反编译和编译的方法
评价:它仅将DEX文件反编译成Smali源码;XML文件能生成明码格式,且较好!在命令行下,定位到apktool.bat文件夹,用以下命令进行反编译!
命令格式: apktool.bat d -f [apk文件] [输出文件夹]
比如:apktool.bat d -f SerialPort.apk SerialPort
将反编译完的文件重新打包成apk,也很简单!
命令格式: apktool.bat b [反编译输出的文件夹]
比如:apktool.bat b SerialPort
Android-apktool的官方网址:
https://code.google.com/p/android-apktool/downloads/list
二、用Dex2jar,JD-GUI,AXMLPrinter反编译的方法
评价:它能将DEX文件反编译成 Java源码; AXMLPrinter2处理XML时,常报错。查看源码:
1、首先将apk文件后缀改为zip并解压,得到classes.dex和AndroidManifest.xml。
2、将classes.dex复制到dex2jar.bat所在目录,命令行下定位到该目录。
3、运行命令:dex2jar.bat classes.dex;会生成classes_dex2jar.jar。
4、用jd-gui工具打开它,即可看到源码,并可以全部导出!
查看XML:
5、将解压得到的AndroidManifest.xml文件放到AXMLPrinter2.jar所在目录,
双击该目录下的XmlDecode.bat,可以生成xml对应的txt,它即是解码后的XML。
Dex2jar的官方网址:
http://code.google.com/p/dex2jar/downloads/list
JD-GUI的官方网址:
http://java.decompiler.free.fr/?q=jdgui
三、用Smali2Java反编译的方法
很简单,直接在图像界面下,打开APK文件,即可查看Java源码。
缺点是不能将Java文件整个导出,只能保存单个文件,并且资源用的都是ID。
Smali2java官方地址:http://www.hensence.com/cn/smali2java
四、用APK改之理(APKIDE)反编译的方法
APK改之理(ApkIDE)是个集成了Apktool,Dex2jar,JD-GUI的工具。
直接用它可查看Smali源码,再用JD-GUI可查看Java源码并导出。
APKIDE官方地址:http://www.xiaomiren.net/