Android之反编译

Android之反编译工具: http://www.cnblogs.com/freeliver54/archive/2011/10/19/2172272.htmlAndroid中比较好的反编译方法:
http://www.maxhis.info/androiding/android-apk-decompile/ http://hi.baidu.com/atell/blog/item/4e8482f9eb33de056c22ebac.html
[发现光链接,我自己查看都有点麻烦,重新整理下,来源于上面的地址!]

S1: 下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。以下是下载地址:
dex2jar: http://laichao.googlecode.com/files/dex2jar-0.0.7-SNAPSHOT.zip JD-GUI: http://laichao.googlecode.com/files/jdgui.zip
具体步骤:
> 首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录,运行
    dex2jar.bat classes.dex

生成classes.dex.dex2jar.jar
[其实可以使用dex2jar Phone.apk,无需解压(今天突然发现)] 
运行JD-GUI,打开上面生成的jar包,即可看到源代码了。
[注:1 .这里有可能报错,是缺少包的原因,我的Lib下有slf4j-api-1.5.6.jar | asm-debug-all.jar | slf4j-simple-1.5.6.jar | commons-io-2.0.jar | dex2jar-0.0.7.11-SNAPSHOT.jar
       2. 这里资源文件,xml文件还是打不开的。采用S2 ]
S2: 如果是只是汉化软件,这将特别有用。首先还是下载工具,这次用到的是apktool,下载地址:

http://code.google.com/p/android-apktool/,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。

具体步骤:
将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar;
在命令行下定位到apktool.bat文件夹,输入以下命令:
apktool d C:\***.apk  C:\***文件夹

命令行解释:apktool d [要反编译的apk文件 ] [输出文件夹],特别注意:你要反编译的文件一定要放在C盘的根目录里;

将反编译完的文件重新打包成apk,很简单,输入apktool b c:\***文件夹(你编译出来文件夹)即可。

这里ApkTool得到资源文件,JD得到java源码。
因为ApkTool得到的JAVA源码的中间文件smali,得用JD反编译工具才可以!

你可能感兴趣的:(android)