安卓软件的反编译
2016-04-12 00:28
387 查看
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
在安卓平台如此火热,有不少开发者想要学习别人先进的开发思想,因此就不得不进行反编译,对于反编译软件,仅供学习使用
在准备反编译之前,我们需要下载工具:
1、dex2jar下载 2、jd_gui 下载
反编译的步骤有3步:
1、直接将安装包更名,文件格式从*.apk改为*.zip后直接使用解压缩软件打开就能过获取apk文件相关文件,能够查看图片文件,如下图为打开安装包之后的文件及文件夹,其作用分别为:
AndroidManifest.xml是每个APK都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等信息。因为xml文件都是经过压缩的,所以不可以直接打开。
res文件:res文件夹下为所有的资源文件,其中含有图片资源等。
resources.arsc文件:为编译后的二进制资源文件。
META-INF文件:META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。
classes.dex是java源码编译后生成的java字节码文件。
图 1 改apk格式为zip格式后解压得到的文件
2、将classes.dex复制到下载的dex2jar文件夹下面,然后在命令提示符输入 dex2jar.bat classes.dex,回车后能够看到如下图所示
图2 dex
接着在文件夹dex2jar下出现classes_dex2jar.jar的新文件,如下图所示
3、现在打开下载好的软件jd-gui.exe,使用这个软件打开刚才生成的jar文件,将会看到下面的效果,即安卓软件的源代码,就这样我们完成了软件的反编译,就可以学习别人的编程思想了
图3 源代码查看
上面就是反编译的步骤,希望对大家的开发学习有用。谢谢
在安卓平台如此火热,有不少开发者想要学习别人先进的开发思想,因此就不得不进行反编译,对于反编译软件,仅供学习使用
在准备反编译之前,我们需要下载工具:
1、dex2jar下载 2、jd_gui 下载
反编译的步骤有3步:
1、直接将安装包更名,文件格式从*.apk改为*.zip后直接使用解压缩软件打开就能过获取apk文件相关文件,能够查看图片文件,如下图为打开安装包之后的文件及文件夹,其作用分别为:
AndroidManifest.xml是每个APK都必须定义和包含的,它描述了应用的名字、版本、权限、引用的库文件等信息。因为xml文件都是经过压缩的,所以不可以直接打开。
res文件:res文件夹下为所有的资源文件,其中含有图片资源等。
resources.arsc文件:为编译后的二进制资源文件。
META-INF文件:META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。
classes.dex是java源码编译后生成的java字节码文件。
图 1 改apk格式为zip格式后解压得到的文件
2、将classes.dex复制到下载的dex2jar文件夹下面,然后在命令提示符输入 dex2jar.bat classes.dex,回车后能够看到如下图所示
图2 dex
接着在文件夹dex2jar下出现classes_dex2jar.jar的新文件,如下图所示
3、现在打开下载好的软件jd-gui.exe,使用这个软件打开刚才生成的jar文件,将会看到下面的效果,即安卓软件的源代码,就这样我们完成了软件的反编译,就可以学习别人的编程思想了
图3 源代码查看
上面就是反编译的步骤,希望对大家的开发学习有用。谢谢
相关文章推荐
- 多种方式实现在Android 手机上抓包
- 【Android基础】ADB进程指令
- SQL(3) -- 常见问题整理[未完成]
- Backbone.js简单入门范例
- js如何往数组Array中添加元素 (2013-09-04 10
- android 用java反射修改Activity的组件view的布局或者属性
- Module Thinking之多样性与创新
- 结对编程--基于android平台的黄金点游戏(2.0版本)
- CSS3打造3D导航
- C++作业3
- Qt下Eigen矩阵函数库的添加
- 【使用CMake组织C++工程】2:CMake 常用命令和变量
- C# 设计基础(一)
- ios学习路线-详细
- 转载时请表明原文出处(http://blog.sina.com.cn/wyw1976)及作者邮箱(wyw1976@gmail.com) Linux 系统中有关mtd和u
- JavaScript闭包理解【关键字:普通函数、变量访问作用域、闭包、解决获取元素标签索引】
- scrum的思考
- STL之deque用法详解
- Visual Voicemail
- 生产者/消费者