反编译Android应用
Android反编译介绍
JD-GUI工具的使用
http://java.decompiler.free.fr (这是官网, 目前貌似已经不提供了)
读者可以进入官网看一下说明,虽然是英文的,但是不算难懂,往往官网首页会给我们提供一下比较有用的信息。例如:
引用:The “Java Decompiler project” aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions.
译:“Java编译器的项目”旨在开发工具以反编译和分析Java 5字节代码”及以上版本。引用:JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields.
译:JD-GUI是一个独立的图形工具,它显示的Java源代码”。阶级”文件。你可以浏览重建源代码JD-GUI即时访问方法和字段。
JD-GUI的使用
接下来,我们就要下载JD-GUI工具了,JD-GUI是JD Project的UI客户端,我们使用该工具可以很方便的将.class字节码文件反编译成.java源码文件,也可以用来反编译.jar文件。
如图所示,大家可以点击上面的链接下载jd-gui,由于我使用的是windows,所以我下载Windows版本的了,如果您使用的平台是Linux或者Mac,你就要下载另外两个版本了。下载好了之后,用解压缩工具解压压缩包,然后会看见压缩包中包含jd-gui.exe和readme.txt文件。按照惯例,我们需要阅读一下readme文件,里面有一些相关信息值得我们去注意,例如使用方法:
How to use JD-GUI
For example, to decompile "Object.class", you can :
译:例如,反编译“Object.class”文件时,你可以:
- execute the following command line : "jd-gui.exe Object.class".
译:在命令行中执行“jd-gui.exe Object.class”命令
- select "Open File ..." in "File" menu and browse to "Object.class".
译:在“File”菜单列表中选择“Open File...”,浏览到打开“Object.class”
- drag and drop "Object.class" onto "jd-gui".
译:直接拖拽“Object.class”到“jd-gui”上
综上,第三种拖拽的方式是最方便的,我们在使用的时候,最好使用这种,事实上至少我个人是这么个习惯的,你说呢?!
JD-Eclipse的使用
dex2jar工具的使用
官方User-Guide
这个工具的使用非常简单,它可以把Android APK中的classes.dex解码为jar文件,使用方法可以参考官网上的User-Guide如下:
- 下载dex2jar最新版http://code.google.com/p/dex2jar/downloads/list
- 解压dex2jar-version.zip文件到一个目录. 比方说 /home/panxiaobo/, C:\
unzip -x dex2jar-version.zip -d /home/panxiaobo
- 使用 dex2jar 来生成 .jar 文件. dex2jar会在工作目录下生成一个someApk-dex2jar.jar文件.
linux sh /home/panxiaobo/dex2jar-version/d2j-dex2jar.sh /home/panxiaobo/someApk.apk windows C:\dex2jar-version\d2j-dex2jar.bat someApk.apk
- 使用反编译工具获取查看源代码
就这么简单
使用方法
android-apktool工具的使用
android-apktool可以把AndroidManifest.xml文件和res目录下的xml文件和NinePatch图片反编译到接近原始状态,反编译后还可以重新编译回去
官方下载链接:https://code.google.com/p/android-apktool/
学习使用android-apktool之前,我建议先点如上链接查看一下重点的信息,例如最新版本、使用要求、使用方法等等,讲的很明晰的。由于android-apktool最新版本是2.x了,我们这里也将下载这个版本进行使用。
使用前要求
1,JDK(JRE)版本1.7及以上。安装Apktool 2.x(Windows环境)
常用命令
-f 强制删除目标目录。如果试图使用反编译的文件夹已经存在
-m 保持尽可能接近原始文件。防止重建,用于分析
-s 这将防止反编译java源代码。这使APK的classes.dex文件编译期间简单地移动它。如果你只想编辑资源。这是推荐更快反编译和重建。
经典使用如下:
apktool d -f -m -s abc.apk
使用方法
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。