android开发之反编译Android应用

如今,写得赞的android项目太多了,这就不得不勾起我们的好奇心了,都说:“好奇心,害死猫!”,但是这些人贼精了,他们把项目都签名了,搞我们这行的都知道,一旦apk签了名,我反正就没有办法了,但是总有办法的,哈哈!!

JD-GUI的使用

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

JD-GUI是一个独立的图形工具,用于将*.class文件解码成.java源代码的文件。

1、从http://jd.benow.ca/下载JD-GUI工具:

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。

附英文解释:
android开发之反编译Android应用_第1张图片

JD-Eclipse插件

JD-Eclipse是Eclipse的一个插件:http://jd.benow.ca/jd-eclipse/update、http://jd.benow.ca/jd-eclipse/downloads/jdeclipse_update_site.zip
1、点击Eclipse开发工具菜单栏:“Help”–> “Install New Software…”
android开发之反编译Android应用_第2张图片

2、下载JD-Eclipse插件
android开发之反编译Android应用_第3张图片

3、在安装插件的时候会弹如下窗口,问的是“你信任这些证书吗?”,我们把它勾上,如下:
android开发之反编译Android应用_第4张图片
android开发之反编译Android应用_第5张图片

dex2jar的使用

1、从https://code.google.com/p/dex2jar/下载dex2jar工具:

这个工具的使用非常简单,它可以把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

4、命令执行结束后,将会在cd/d D:\dex2jar-0.0.9.15目录下看到生成了abc.jar,用JD-GUI查看这个jar文件即可。

android-apktool的使用

android-apktool可以把AndroidManifest.xml文件和res目录下的xml文件和NinePatch图片反编译到接近原始状态,反编译后还可以重新编译回去。
1、从https://code.google.com/p/android-apktool/下载android-apktool工具:
android开发之反编译Android应用_第6张图片
V1.5.2以后的版本的下载网址为:https://bitbucket.org/iBotPeaches/apktool/downloads
也可以好好阅读主页的内容,如下:

1、安装Apktool工具:

android开发之反编译Android应用_第7张图片

2、使用命令解码:

  • ApktoolOptions即apktool命令的一选项功能说明,当然,在安装好Apktool之后也可以直接在命令行打“apktool”即可显示命令帮助。常用选项如下:

    • -f 强制删除目标目录。如果试图使用反编译的文件夹已经存在
    • -m 保持尽可能接近原始文件。防止重建,用于分析
    • -s 这将防止反编译java源代码。这使APK的classes.dex文件编译期间简单地移动它。如果你只想编辑资源。这是推荐更快反编译和重建。

命令使用格式为:apktoold [命令选项] file.apk,经典使用如下:
把apk随意放到一个目录中,如我把abc.apk放在D:\a\b\ 目录下,则cmd命令如下:

  • cd /d D:\a\b\
  • 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:

    • 下载Windows包装器脚本(右击,保存链接apktool.bat)
    • 下载apktool-2(在这里找到最新的)
    • 将下载的jar重命名为apktool.jar
    • 把(apktool.jar & apktool.bat)移到您的Windows目录(通常是C://Windows)
    • 如果你没有访问C://windows的权限,你可以把这两个文件放在任何目录,然后将该目录添加到您的系统环境变量PATH中。
    • 尝试通过命令提示符运行apktool

详细请观看视频:http://edu.csdn.net/course/detail/405
百度云下载地址:http://pan.baidu.com/s/1c0tS8ik
特免责声明参考:http://blog.csdn.net/android_cai_niao/article/details/43151831
您还可以参考这:http://blog.csdn.net/ithomer/article/details/6727581

你可能感兴趣的:(android,反编译,dex2jar,apktool,jd-gui)