Android 反编译APK详解

本文详细介绍如何使用apktool、dex2jar和jd-gui等工具进行Apk反编译,包括获取源码和资源文件的步骤。首先,将apk文件转换为zip格式并解压,提取classes.dex文件。然后,利用dex2jar将其转换为jar文件,最后通过jd-gui查看源代码。同时,使用apktool反编译资源文件,生成可供编辑的文件结构。

目录

一,所需工具

二,Apk反编译获取源码

三,apk反编译获取资源文件

四,反编译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文件夹即可看到我们想要的资源文件夹和清单文件了;

如果反编译失败升级apktool版本即可解决;

四,反编译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 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ang_qq_252390816

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值