Mac环境下反编译apk
2015-06-10 19:45
399 查看
0,工具汇总
我们反编译apk主要使用以下三个工具apktool:用于获取资源文件
dex2jar:获取源文件jar包
JD-GUI:反编译源文件jar包查看源代码
找这些工具时折腾了我点时间,现在把我找到的最终可用的版本都放百度云了。到下面链接下载:
http://pan.baidu.com/s/1qWDmf2O
1,apktool获取资源文件
apktool其实不止一个文件,其中包含aapt,apktool,apktool.jar三个文件,最终我们调用的命令行都是apktool的,另外两个文件时其依赖的工具。将这三个文件拷贝到目录/usr/local/bin下,接下来就可以直接用命令行使用了apktool了,你可以这样检测检测效果
接下来就可以开始反编译你的apk获取资源文件了,先使用命令行切换到你的apk的目录下,然后执行命令
apktool d xxxx.apk
最开始执行上面的命令,我遇到如下图的一个问题,网上也有人遇到过
最终发现问题在于,apktool中三个文件的apktool.jar版本太低,最后我下载了最新版替换过来,于是问题迎刃而解,最终运行效果如下
上面命令正常执行之后,你会发现在当前目录会生成一个喝apk同名的文件夹,其中就包含了反编译产生的资源文件。apktool使用到此为止。
2,dex2jar获取源文件jar包
首先将你的apk文件改为zip文件格式,然后解压出来,其中会有一个classes.dex文件,接下来我们就是从这个文件中获取源文件。将classes.dex文件拷贝到你的dex2jar文件夹下,调用d2j-dex2jar.sh进行反编译,你可以能会遇到以下的问题在mac下遇到这个问题很常见,用下面这个指令可以解决
sudo chmod 777 d2j-jar2dex.shd2j-jar2dex.sh可能还依赖于同目录中其他.sh文件,你可能需要为其他.sh文件执行上面的命令(我遇到其中的d2j_ivoke.sh也需要执行以下命令)。
搞定上面的问题之后,就能真正开始反编译获取原文件了,使用以下命令
./d2j-dex2jar.sh classes.dex
如下
执行完命令后,当前目录会生成一个classes-dex2jar.jar文件,该jar包就是最终获得的源文件的jar包,我们就差最后一步,将jar包反编译获取java文件
3,JD-GUI获取java源文件
很容易,你只需要将上一步中生成的classes-dex2jar.jar在JD-GUI中打开即可。一般我们能获取全部资源文件,如图片,布局文件,但是源文件时被混淆过的。以上!
相关文章推荐
- md5 加盐
- P268 1
- A Type-Safe Event System for Unity3D
- 认识自己——趋利避害生活的能力
- 关于const char *s和char * const s
- Mybatis学习(五)mybatis环境下以接口的方式进行的增删查改
- Laravel 学习笔记 —— 神奇的服务容器
- Linux系统中校验下载文件的完整性方法(MD5,SHA1,PGP)
- JAVA 7 ForkJoin学习笔记
- Excel Sheet Column Title
- 转:Delphi 回调函数及例子
- 学习笔记:python
- 数组指针和指针数组的辨析
- genymotion-unable to load virtualbox engine
- P225 5
- 认识自己——野心和目标
- 【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记31 Multithreading多线程
- Sort Colors
- iphone-用代码创建界面(Creating Views from Code)
- googel 图片搜索原理