如何从apk破解出java源码
下面整理,从安卓的apk
文件,如何破解,反编译,逆向工程,得到java
源代码。
对于从apk破解得到java源代码,目前常见的几种思路:
- 未加固的
- 直接一步搞定
- 用
jadx
从apk
导出java
源码
- 用
- 直接一步搞定
- 已加固的
- 前提
- apk虽然被(旧版360加固保等)加固,但后续可以(用
FDex2
等砸壳工具)导出dex
文件- 注
- 有些新版本的加固,比如腾讯乐固legu,新版360加固保等,无法导出dex文件
- 所以就无法继续转换出java源码
- 有些新版本的加固,比如腾讯乐固legu,新版360加固保等,无法导出dex文件
- 注
- apk虽然被(旧版360加固保等)加固,但后续可以(用
- 两步或三步:
app
->dex
->jar
->java
- 第一步:先砸壳导出dex
- 从
apk
到dex
:从运行中的安卓app导出dex文件- 先安装安卓apk到
已root
的安卓真机
/安卓模拟器
- 在安卓中已经安装了
Xposed
等Hook框架
- 再去
Xposed
中安装FDex2
/DumpDex
等插件=砸壳工具- 用于后续导出
dex
文件
- 用于后续导出
- 运行安卓app
- 自动导出我们要的
dex
文件
- 自动导出我们要的
- 从安卓(真机/模拟器)中拷贝出刚才导出的(往往是多个)
dex
文件
- 先安装安卓apk到
- 从
- 再分2种:从
dex
到java
源码- 一步:
- 第二步:直接从dex转java
- 比如用
jadx
支持直接从dex
转换出java
源代码
- 比如用
- 第二步:直接从dex转java
- 两步:
- 第二步:从dex转jar
dex
转jar
- 用
dex2jar
等工具从(包含了我们要的、和app业务逻辑相关的那个)dex
文件中导出jar
文件
- 用
- 第三步:再从jar转java
jar
转java
源码- 用反编译器(
CFR
/Procyon
/JD-GUI
等)把jar
转换出java
源代码
- 用反编译器(
- 第二步:从dex转jar
- 一步:
- 第一步:先砸壳导出dex
- 前提
后续详细介绍每一步涉及到的内容,和如何用工具实现对应反编译。