工具描述
- 需要如下三个工具:apktool, dex2jar, jd-gui
- 工具的下载地址:下载相关工具
工具的安装和使用
通过apktool工具查看apk的资源文件
- apktool最大幅度的还原apk的资源,通过apktool处理过的apk包,可以获取,替换里面的资源文件,然后重新打包,签名生成破解的apk。
- 安装apktool
- 把下载好的apktool.jar & apktool放到/usr/local/bin目录下
- 对这个两个文件执行命令:chmod +x,赋予他们可执行的权限。
- 使用apktool解压apk包
localhost:apk_tool fhw$ apktool d Demo.apk
I: Using Apktool 2.3.1 on Demo.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (/Users/fhw/Library/apktool/framework), using /var/folders/7t/pfb49qtn37s5syjrxy0lzr4h0000gn/T/ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable
I: Loading resource table from file: /var/folders/7t/pfb49qtn37s5syjrxy0lzr4h0000gn/T/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
localhost:apk_tool fhw$
进入解压后的目录,看到的目录结构如下:
localhost:apk_tool fhw$ cd Demo
localhost:Demo fhw$ ls
AndroidManifest.xml apktool.yml assets original res smali
localhost:Demo fhw$
进行代码的反编译
- 解压apk包:unzip Demo.apk,解压后,注意生成的classes.dex代码文件
-rw-r--r-- 1 fhw staff 12528 12 31 1979 AndroidManifest.xml
drwxr-xr-x 6 fhw staff 192 3 30 15:40 META-INF
drwxr-xr-x 4 fhw staff 128 3 30 15:40 assets
-rw-r--r-- 1 fhw staff 1804632 12 31 1979 classes.dex
drwxr-xr-x 36 fhw staff 1152 3 30 15:40 res
-rw-r--r-- 1 fhw staff 264832 12 31 1979 resources.arsc
- 解压dex-tools-2.1-SNAPSHOT.zip, 生成dex2jar工具:unzip dex-tools-2.1-SNAPSHOT.zip,并把classes.dex文件拷贝到解压后目录中,并执行命令:sh d2j-dex2jar.sh classes.dex,生成classes-dex2jar.jar文件备用。
- 通过jd-gui查看class文件:通过命令:java -jar jd-gui-1.4.0.jar 打开jd-gui,然后打开刚刚生成的classes-dex2jar.jar文件,就可以查看class文件了。