Apk反编译实现步骤

一站解决反编译

JADX是一个可以直接反编译apk的程序,无需下面繁琐的步骤。推荐使用! jadx CSDN下载

1. 使用ApkTool拆包,得到AndroidManifest和res等资源文件:

powershell 复制代码
    命令使用:
    java -jar apktool.jar d yourApkFile.apk

    // 注意`apktool.jar`是刚才下载后的jar的名称,`d`参数表示decode
    // 在这个命令后面还可以添加像`-o -s`之类的参数,例如
    // java -jar apktool.jar d yourApkFile.apk -o destiantionDir -s
    // 几个主要的参数设置方法及其含义:
    -f 如果目标文件夹已存在,强制删除现有文件夹
    -o 指定反编译的目标文件夹的名称(默认会将文件输出到以Apk文件名命名的文件夹中)
    -s 保留classes.dex文件(默认会将dex文件解码成smali文件)
    -r 保留resources.arsc文件(默认会将resources.arsc解码成具体的资源文件)

2. 将dex文件转换成jar文件:

powershell 复制代码
    方法1:  通过dex2jar反编译dex文件(步骤1中获取),得到源码

            命令用法:
            d2j-dex2jar classes.dex
            // 获取classes.dex文件在最前面说过,只要把Apk当做zip解压出来,里面就有dex文件了
            // 或者用apktool反编译时带上 `-s` 参数
            (打开下载的dex2jar-2.0文件夹,里面有shell和bat脚本,进入终端,就可以在命令行使用了。)

    方法2:  通过Google-enjarify,得到源码(推荐使用)

            用法:
            1.下载获取enjarify,解压到期望目录,并将该路径添加到环境变量path中
            2.(可选) 由于enjarify要使用到python解析器,所以如果你电脑还没安装python开发环境,下载一个python解析器(官方推荐pypy,下载地址:http://pypy.org/,注意:要pypy3.+版本)
            3.下载之后解压到期望目录,并将该路径添加到环境变量path中 (在命令行输入 pypy,出现下图所示即为安装成功)
            4.找到Enjarify目录下的enjarify.bat文件,使用编辑器打开(建议notepad),修改 
              python3 -O -m enjarify.main %* --> pypy -O -m enjarify.main %*
            5.在命令行输入 enjarify -f XXX.apk , -f 在这里是必须要加上的,否则会出现警告,无法反  编译APK文件
            6.反编译之后的文件是一个jar文件,使用jd-gui查看Jar文件

3. jd-gui查看java源代码:

powershell 复制代码
    下载对应系统的jd-gui(下载地址:http://jd.benow.ca/), 解压得到jd-gui.exe,
    双击既可以运行这个工具,直接把上一步得到的xxx.jar拖到jd-gui程序的界面上即可打开查看java源码了

4.相关软件下载链接

jadx CSDN下载
JADX
ApkTool
dex2jar
JD-GUI
enjarify
pypy

5.参考

Apk反编译实现步骤

相关推荐
4***99741 天前
Kotlin序列处理
android·开发语言·kotlin
t***D2641 天前
Kotlin在服务端开发中的生态建设
android·开发语言·kotlin
玲珑Felone1 天前
flutter 状态管理--InheritedWidget、Provider原理解析
android·flutter·ios
BoomHe1 天前
车载应用配置系统签名
android·android studio
路人甲ing..1 天前
用 Android Studio 自带的模拟 Android Emulator 调试
android·java·ide·ubuntu·kotlin·android studio
路人甲ing..1 天前
Android Studio 模拟器报错 The emulator process for AVD xxxxx has terminated.
android·java·ide·kotlin·android studio
弥巷1 天前
【Android】 View事件分发机制源码分析
android·java
wanna1 天前
安卓自学小笔记第一弹
android·笔记
Kapaseker1 天前
五分钟实战 Compose 展开/收起动画
android·kotlin