如何从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
- 前提
后续详细介绍每一步涉及到的内容,和如何用工具实现对应反编译。