Android 反编译APK
一:所需工具
apktool (资源文件获取) 下载路径:https://ibotpeaches.github.io/Apktool/ 或者https://bitbucket.org/iBotPeaches/apktool/downloads/
dex2jar(源码文件获取) 下载路径:https://github.com/pxb1988/dex2jar/releases
jd-gui (源码查看) 下载路径:http://java-decompiler.github.io/或者 https://code.google.com/archive/p/innlab/downloads
二:Apk反编译获取源码
2.1, 为了方便,把两个工具(dex2jar和jd-gui)放在同一个文件夹中;
2.2,把apk文件的后缀改成.zip;用解压缩工具打开apk变更后的.zip文件如下图
2.3,把解压获取classes.dex文件,复制到dex-tools-2.1-SNAPSHOT文件夹下;
2.4,按住shift 鼠标点击右键空白处 选择“在此处打开命令行”选项,进入cmd命令行窗口
2.5, 在上图命令行窗口输入 d2j-dex2jar classes.dex 命令
2.6, 在dex-tools-2.1-SNAPSHOT文件下即可的到classes-dex2jar.jar文件
2.7 使用jd-gui打开classes-dex2jar.jar就可以看到源代码了
三,apk反编译获取资源文件
3.1,为了方便,把工具(apktool.jar)和apk文件放在一个文件夹中;
3.2, 按住shift 鼠标点击右键空白处 选择“在此处打开命令行”选项,进入cmd命令行窗口
3.3,命令行输入:
java -jar apktool_2.3.4.jar d -f C:\Users\Administrator\Desktop\ResDecompile\Serial.apk -o serial
命令运行显示信息 :
C:\Users\Administrator\Desktop\ResDecompile>java -jar apktool_2.3.4.jar d -f C:\Users\Administrator\Desktop\ResDecompile\Serial.apk -o serial
I: Using Apktool 2.3.4 on Serial.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
S: WARNING: Could not write to (C:\Users\Administrator\AppData\Local\apktool\framework), using C:\Users\Administrator\AppData\Local\Temp\ 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: C:\Users\Administrator\AppData\Local\Temp\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...
C:\Users\Administrator\Desktop\ResDecompile>
3.4,在ResDecopmile文件夹下自动生成了serial文件夹,既是反编译后生成的文件夹;打开serial文件夹即可看到我们想要的资源文件夹和清单文件了;
四,反编译apk获取资源文件方式二
反编译apk获取资源文件方式二,即解包:
4.1,前几步和方式一相同,命令行执行:
apktool.bat d -f C:\Users\Administrator\Desktop\ResDecompile\Serial.apk -o Serial2
4.2,在ResDecopmile文件夹下自动生成了Serial2文件夹,得到的资源文件和serial里面的一样,如下图;
4.2,apktool.bat文件内容:
@echo off
if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
set PATH=%CD%;%PATH_BASE%;
chcp 65001 2>nul >nul
java -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0\apktool_2.3.4.jar" %*
附
所有工具地址链接: https://pan.baidu.com/s/1EIV4eH8jTndCYo2trD6Zqw 提取码: evzs