android 反编译apk
2016-02-18 11:50
337 查看
反编译apk对于一个android开发者老说还是很有必要的,尽管窃取别人的东西不是什么光彩的事情,但从技术层面来讲应该是每一个android开发者所必须掌握的技能,下面就来说说如何反编译一个apk。
2、jd-gui.jar(负责奖dex2jar翻边出来的jar包转为java代码)
3、apktool(负责反编译资源文件)
以上工具的下载链接:http://download.csdn.net/detail/u010948188/9435261
将以上下载的工具包解压会看见
解压dex2jar
再将我们之前的apk解压缩会看到“classes.dex”文件,将其复制到刚才dex2jar解压后的文件夹中,打开cmd到dex2jar
执行 “d2j-dex2jar classes.dex” 命令,如图:
再次打开该文件夹会发现多了一个“classes-dex2jar.jar”文件,这算是第一步完成了,
这时需要用到第二个工具:jd-gui.jar,直接双击打开选择之前生成的jar就可以看到java内容了,
到上面已经将java代码全部反编译结束了,下面开始反编译资源文件
将我们要反编译的apk(test.apk)放到apktool文件夹,同样cmd到该文件夹目录, 执行:apktool d test.apk
看到这个你就算成功了,当然同样的操作你也可能不成功,原因是你之前有用过apktool的老版本操作过,使其在你电脑C:\Users\administrator\apktool\framework 目录留下了1.apk的文件,闪电他重新执行apktool d test.apk就可以。
此时你打开apktool的文件夹会发现多了一个名为“test”的文件夹,这是打开里面的文件看看发现已经不是乱码了,这正是我们想要的。
好了到这一步算是整个apk的反编译流程结束了。
所需工具:
1、dex2jar(负责反编译java代码)2、jd-gui.jar(负责奖dex2jar翻边出来的jar包转为java代码)
3、apktool(负责反编译资源文件)
以上工具的下载链接:http://download.csdn.net/detail/u010948188/9435261
反编译java代码
为了尊重别人的劳动成果就不随便拿别人的apk做测试了,自己随便找了一个之前自己的demo的apk,命名为test.apk。将以上下载的工具包解压会看见
解压dex2jar
再将我们之前的apk解压缩会看到“classes.dex”文件,将其复制到刚才dex2jar解压后的文件夹中,打开cmd到dex2jar
执行 “d2j-dex2jar classes.dex” 命令,如图:
再次打开该文件夹会发现多了一个“classes-dex2jar.jar”文件,这算是第一步完成了,
这时需要用到第二个工具:jd-gui.jar,直接双击打开选择之前生成的jar就可以看到java内容了,
到上面已经将java代码全部反编译结束了,下面开始反编译资源文件
反编译资源文件
打开刚才解压apk出来的文件夹,有人会发现已经有res文件夹了,里面的资源也都有,要是你觉得就这样就ok了那就打错特错了,不信打开某个xml文件看看,一定是乱码,这并不奇怪,其实在我们打包apk的时候对这些资源都是经过编译的,既然直接打开不行的话那怎么办呢,这是就需要用到我们第三个工具:apktool将我们要反编译的apk(test.apk)放到apktool文件夹,同样cmd到该文件夹目录, 执行:apktool d test.apk
看到这个你就算成功了,当然同样的操作你也可能不成功,原因是你之前有用过apktool的老版本操作过,使其在你电脑C:\Users\administrator\apktool\framework 目录留下了1.apk的文件,闪电他重新执行apktool d test.apk就可以。
此时你打开apktool的文件夹会发现多了一个名为“test”的文件夹,这是打开里面的文件看看发现已经不是乱码了,这正是我们想要的。
好了到这一步算是整个apk的反编译流程结束了。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories