MAC上使用apktool进行反编译

本文参考http://blog.csdn.net/hanhailong726188/article/details/42368295

一、准备工作

工具准备,下载工具

1.apktool
2.dex2jar
3.jd-gui
下载地址:戳我

安装工具

apktool安装

解压下载的文件,进入apktool文件夹中,可以看到apktool,apltool.jar和aapt三个文件,将这三个文件拷贝到/usr/local/bin中

ps: 操作/usr/local/bin文件夹需要权限许可,要输入密码
由于/usr/local/bin属于隐藏保护的,磁盘上看不到,除了通过命令行进行复制操作外,我们也可以通过一下方式用Finder进行查看

使用Finder进行操作

打开Finder,点击菜单栏上的前往>前往文件夹,然后在弹出框内输入/usr/local/bin,就能进入该文件夹了,然后将上面所述的三个文件拷贝到bin文件夹中

使用命令行进行操作

1.打开终端,输入命令cd /usr/local/bin,进入bin文件夹,此操作需要输入密码进行授权
2.输入命令cd xxx/xxx/apltool,进入下载的apktool文件夹中
3.输入命令sudo cp apltool apktool.jar aapt /usr/local/bin,讲上面所述的三个文件拷贝到bin文件夹中

判断apktool是否安装成功

打开终端,执行apktool命令,看是否出现以下数据,如果出现,说么安装成功

Apktool v2.0.0-RC2 - a tool for reengineering Android apk files
with smali v2.0.3 and baksmali v2.0.3
Copyright 2010 Ryszard Wiśniewski <[email protected]>
Updated by Connor Tumbleson <[email protected]>

usage: apktool
 -advance,--advanced   prints advance information.
 -version,--version    prints the version then exits
usage: apktool if|install-framework [options] <framework.apk>
 -p,--frame-path <dir>   Stores framework files into <dir>.
 -t,--tag <tag>          Tag frameworks using <tag>.
usage: apktool d[ecode] [options] <file_apk>
 -f,--force              Force delete destination directory.
 -o,--output <dir>       The name of folder that gets written. Default is apk.out
 -p,--frame-path <dir>   Uses framework files located in <dir>.
 -r,--no-res             Do not decode resources.
 -s,--no-src             Do not decode sources.
 -t,--frame-tag <tag>    Uses framework files tagged by <tag>.
usage: apktool b[uild] [options] <app_path>
 -f,--force-all          Skip changes detection and build all files.
 -o,--output <dir>       The name of apk that gets written. Default is dist/name.apk
 -p,--frame-path <dir>   Uses framework files located in <dir>.

For additional info, see: http://code.google.com/p/android-apktool/ 
For smali/baksmali info, see: http://code.google.com/p/smali/

dex2jar不需要安装

jd-gui安装

点击jd-gui-0.2.7.osx.i686.dmg运行即可

二、使用工具进行反编译

使用apktool获取资源文件

1.打开终端,输入命令cd xxxx/xxxx ,进入所要反编译的apk文件夹
2.输入命令apktool d xxxx.apk,进行反编译apk,结束后我们会发现在该文件夹下回出现一个新的文件夹,名称和apk的名称一样,打开后里面有AndroidManifest.xml文件和res文件夹,里面为反编译后的资源文件

使用dex2jar,jd-gui反编译classes.dex文件

1.将所要反编译的apk重命名,修改后缀为zip,并解压,我们会发现解压后的文件夹中有个classes.dex文件,获取该文件的路径
2.打开终端,输入命令cd xxx/xxx/dex2jar,进入下载的dex2jar文件夹中
3.输入命令sh dextool.sh xxx/xxx/xxx/classes.dex,进行反编译classes.dex文件,操作完成后,会在dex2jar文件夹中生成一个classes-dex2jar.jar文件
4.打开jd-gui文件,将classes-dex2jar.jar拖入jd-gui界面上,就能够看到java文件了

猜你喜欢

转载自blog.csdn.net/krubo1/article/details/51791535