jadx反编译工具的使用

目录

jadx工具介绍

jadx工具的安装

jadx工具的使用

jadx遇到的问题

jdk和jre的区别

jadx工具介绍

  • decompile Dalvik bytecode to java classes from APK, dex, aar, aab and zip files
  • 将Dalvik 字节码从APK,dex,aar,aab,zip文件里反编译为java类
  • decode AndroidManifest.xml and other resources from resources.arsc
  • 解码 AndroidManifest.xml 和其他资源文件从 resources.arsc

下载地址:

GitHub - skylot/jadx: Dex to Java decompiler

jadx工具的安装

JDK 11 or higher must be installed:

git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist

(on Windows, use gradlew.bat instead of ./gradlew)

jadx工具的使用

通过gradlew.bat命令后,会生成exe执行程序,将aar或jar或者apk文件 移到exe即可

jadx遇到的问题

 This application requires a Java Runtime Environment 11(64-bit)

有一次,将本机的JDK版本从8改为了Android Studio里的jre11,发现jadx无法使用,提示错误:

 缘由是高版本的gradle(7.3.3)需要jdk11才能编译

开始,我以为之前用jdk8 生成的jadx.exe不能用于jdk11,于是我用Android Studio 的jre11想重新生成jadx.exe,又报了如下错

ERROR: JAVA_HOME is set to an invalid directory: F:\Android Studio

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

 经过查找资料,这个错误提示的源码定位在gradlew.bat

 大概分析就是找不到JAVA_HOME/bin/java.exe

于是我回过头再去分析环境变量

当JAVA_HOME从C:\Program Files\Java\jdk1.8.0_281 改为F:\Android Studio\jre后

%JAVA_HOME%\bin\java.exe是可以找到的。

但是%JAVA_HOME%\jre\bin\java.exe在F:\Android Studio\jre是找不到的。

于是,我把%JAVA_HOME%\jre\bin这个删除掉,就可以正常gradlew.bat了,生成jadx.exe后。

再次反编译apk,验证成功。

jdk和jre的区别

jdk是java development kit 包含编译环境(javac)和运行环境(jvm)以及依赖包(jar),也就是jdk\bin\目录下包含 javac

而jre是java run environment 只有运行环境,最明显的区别是jre\bin\目录下是没有javac的

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sunbofiy23

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

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

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

打赏作者

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

抵扣说明:

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

余额充值