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无法使用,提示错误:

jadx反编译工具的使用_第1张图片

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

jadx反编译工具的使用_第2张图片

开始,我以为之前用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.

jadx反编译工具的使用_第3张图片

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

jadx反编译工具的使用_第4张图片

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

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

jadx反编译工具的使用_第5张图片

当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的

 

你可能感兴趣的:(安卓逆向,gradle,android,android,studio)