反编译Android应用

转载请说明出处,本文来自Android菜鸟:http://blog.csdn.net/android_cai_niao/article/details/43151831


如需要更详细的讲解,请看视频:http://edu.csdn.net/course/detail/405

由于本视频在上传后学院会对其进行转码,而转码后视频质量严重下降,导致花屏、马赛克、画面停滞等等问题,因此在学院解决这个问题之前这里会提供原视频下载,视频不大,每个视频20M左右,下载地址:http://pan.baidu.com/s/1c0tS8ik


经验分享

像这些工具类,一般工具的提供者在官网都会提供相应的使用说明,如安装说明、使用说明等,不要死记硬背这些使用步骤,只要知道它的官网即可,可以百度官网,然后在官网找到对应的使用说明即可,而且这样做有一个好处,就是这个工具有可能会更新,你可以下载最新工具来获得更好的结果,而且这些工具更新后可能连使用方法都改变了,那么以前记住的那些使用步骤将没有用,所以一旦遇到不记得使用步骤了,最好到官网查看。

JD-GUI的使用

* http://jd.benow.ca/

* http://java.decompiler.free.fr(这是官网, 目前貌似已经不提供了)

JD-GUI是一个独立的图形工具,用于显示*.class文件的Java源代码

从http://jd.benow.ca/下载:

反编译Android应用_第1张图片

打开这个压缩包如下:

反编译Android应用_第2张图片

从上图可看到,内容很简单,就是一个jd-gui.exe和一个readme.txt,从readme文件了解到如下内容:

        *  JD即JavaDecompiler的缩写,JD的主页是:http://java.decompiler.free.fr

        *  JD不需要安装也不需要配置

        *  如何使用JD-GUI
              例如,编译“Object.class”,你可以:

                 -  在命令行执行:jd-gui.exe Object.class

                 -  选择 "FileàOpen File ...",在文件中浏览到 "Object.class"

                 -  把“Object.class”拖到“jd-gui”

       *  卸载

                 - Windows:删除 “jd-gui.exe”和“jd-gui.cfg”。

                 - Linux:删除“jd-gui”应用文件和“jd-gui.cfg”。

                 - OSX:把“JD-GUI”应用拖到trash.

JD-Eclipse插件

JD-Eclipse是Eclipse的一个插件:http://jd.benow.ca/jd-eclipse/update、http://jd.benow.ca/jd-eclipse/downloads/jdeclipse_update_site.zip

在安装插件的时候会弹如下窗口,问的是“你信任这些证书吗?”,我们把它勾上,如下:

 反编译Android应用_第3张图片

dex2jar的使用

从https://code.google.com/p/dex2jar/下载:

反编译Android应用_第4张图片

这个工具的使用非常简单,它可以把Android  APK中的classes.dex解码为jar文件,使用方法如下:

1、  下载工具

2、  解压,如解压到:D:\dex2jar-0.0.9.15

3、  把你需要反编译的apk复制到这个目录,如我复制了一个abc.apk过去,则此时在cmd命令行敲如下命令:
cd /d D:\dex2jar-0.0.9.15
dex2jar apk
命令执行结束后,将会在cd/d D:\dex2jar-0.0.9.15目录下看到生成了abc.jar,用JD-GUI查看这个jar文件即可。

android-apktool的使用

android-apktool可以把AndroidManifest.xml文件和res目录下的xml文件和NinePatch图片反编译到接近原始状态,反编译后还可以重新编译回去

 

从https://code.google.com/p/android-apktool/下载

反编译Android应用_第5张图片

V1.5.2以后的版本的下载网址为:https://bitbucket.org/iBotPeaches/apktool/downloads

也可以好好阅读主页的内容,如下:

反编译Android应用_第6张图片

*  ApktoolOptions即apktool命令的一选项功能说明,当然,在安装好Apktool之后也可以直接在命令行打“apktool”即可显示命令帮助。常用选项如下:
-f     强制删除目标目录。如果试图使用反编译的文件夹已经存在
-m  
保持尽可能接近原始文件。防止重建,用于分析
-s    
这将防止反编译java源代码。这使APKclasses.dex文件编译期间简单地移动它。如果你只想编辑资源。这是推荐更快反编译和重建。
命令使用格式为:apktoold [选项]<file.apk>,经典使用如下:
把apk随意放到一个目录中,如我把abc.apk放在D:\a\b\ 目录下,则cmd命令如下:

1.        cd /d D:\a\b\

2.        apktool d -f -m -s abc.apk
命令执行完毕后,则会在D:\a\b目录下看到有一个abc目录,该目录下保存了反编译的资源文件

*  FrameworkFiles中的大概意思是,Android应用程序有可能使用Android系统内部的代码和资源,标准的Android系统你不需要做任何改动,但是一些制作商,比如HTC添加了自己的框架文件和应用,如你要解码HTC手机的联系人应用则需要另外的方法,详情看网页。

*  点击“Install”链接(https://code.google.com/p/android-apktool/wiki/Install),将会看到安装的说明页面,部分翻译如下:

快速检查

 

       Apktool 2.x (1.5.2以后的版本)

              是否安装了Java 1.7 ?

              在命令行执行 java -version是否返回 1.7?

              如果不是,请安装 Java 7 并让它成为默认。

             

       Apktool 1.x (1.5.2之前的版本)

              是否安装了Java 1.6或更高的 ?

              在命令行执行 java -version是否返回 1.6或更高?

              如果不是,请安装 Java 6 或 Java 7 。

 

安装 Apktool 2.x

       Windows:

1.        下载Windows包装器脚本(右击,保存链接apktool.bat)

2.        下载apktool-2(在这里找到最新的)

3.        将下载的jar重命名为apktool.jar

4.        把(apktool.jar & apktool.bat)移到您的Windows目录(通常是C://Windows)

5.        如果你没有访问C://windows的权限,你可以把这两个文件放在任何目录,然后将该目录添加到您的系统环境变量PATH中。

6.        尝试通过命令提示符运行apktool

你可能感兴趣的:(dex2jar,apktool,jd-gui,反编译Android应用,反编译apk)