Android APK 反编译工具 JADX

article/2025/10/14 18:46:32

文章目录

    • JADX 介绍
    • JADX 安装
    • JADX 使用
    • 补充
      • APK 目录结构含义
      • APK 打包流程

JADX 介绍

GitHub 地址:https://github.com/skylot/jadx

JADX 支持将 APK, dex, aar, zip 中的 dalvik 字节码反编译为 Java 代码,也支持反编译 AndroidManifest.xml 和 resources.arsc 资源。

JADX 安装

首先安装 JDK1.8 或以上版本,Git,以及 Android 开发环境。

创建要下载的 JADX 存储文件路径,然后在命令行切换到该目录,执行以下命令:

git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist 这个操作可能需要一段时间

如果 执行 ./gradlew dist 遇到错误:

PKIX path building failed...省略
注意查看是连接哪个网址发生错误。

这里从连接哪个网址发现是 gradle 的错误,解决办法:

1.在 chrome 中输入 gradle 网址:https://gradle.org/

2.点击网址输入栏的锁标识

3. 点击证书查看详情

4. 然后将证书拖到要存储的目录

5.查看 cacerts 列表,切换到 JAVA 的 security 路径(本机路径是:/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home/jre/lib/security/ ),命令行执行:keytool -list -keystore cacerts 路径,本机是:

keytool -list -keystore  /Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home/jre/lib/security/cacerts

默认密码为 changeit

6.导入证书,命令执行命令(还是在路径:/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home/jre/lib/security/):

keytool  -importcert  -file 第4步存储的证书路径地址

默认密码为 changeit

如果这里遇到没有权限,在 Mac 系统下,这里需要:sudo keytool -importcert -file 第4步存储的证书路径地址

7.再切换到 JADX 存储文件路径,命令行执行:

cd jadx
./gradlew dist 这个操作可能需要一段时间

JADX 使用

进入 JADX 存储文件路径,进入 jadx/build/jadx/bin 目录,命令行执行:

cd jadx/build/jadx/bin

双击 gadx-gui,如下图:

然后点击 左上角菜单 文件,选择要打开的文件: APK 或 dex 或 arr 或 zip。

这里在网上下载了喜马拉雅的 Android APK,导入后如下图:

到这里, JADX 工具的简单介绍就完了。可以说这个工具:易用,简洁,强大,非常适合用来反编译。

平时,反编译 APK 作用:

  1. 代码是否符合预期,也就是经过压缩(shrinker), 优化(optimizer), 混淆(obfuscator)后,Java 代码(数据模型类)是否符合预期,R.java 代码中的资源 ID 是否符合预期,AndroidManifest.xml 文件的引用的类有没有错误 ,资源图片是否显示异常等。
  2. 要发热修复时,查看 修复后的 APK 中的代码 和 原 APK 中的代码 diff,看修复是否符合期望。
  3. 检查 APK 是否有安全性问题,源码是否易被解读,源码中的关键性代码或重要私密 KEY(RSA,AES 等密钥,用户信息等)是否容易被拿到等。

补充

反编译 Android APK 至少需要了解 APK 目录结构含义和 APK 打包流程,这里简单介绍下。

APK 目录结构含义

这里还是以 喜马拉雅的 Android APK 为例子,直接将 APK 拖入 AndroidStudio :

  1. res:存在资源的文件,drawable, anim, layout 等;
  2. lib:支持CPU架构对应一个ABI(armeabi,armeabi-v7a,x86,mips,arm64- v8a,mips64,x86_64)相关的 so 库;
  3. assets:资源文件,但文件不会被压缩或编译成二进制;
  4. META-INF :签名文件;
  5. AndroidManifest.xml:清单列表文件,四大组件,权限,元数据等配置信息;
  6. classes.dex:编写的Java代码,R.java, aidl 相关 Java 代码经过虚拟机编译后产生的 dex 文件;
  7. resources.arsc:建立 res文件 与R.java文件之间的映射关系;
  8. 其它:各种配置文件。

APK 打包流程

  1. aapt 工具打包资源文件,生成 R.java 文件;
  2. aidl 工具处理 AIDL 文件,生成对应的 .java 文件;
  3. javac 工具编译 Java 文件,生成对应的 .class 文件;
  4. 把 .class 文件转化成 Davik VM 支持的 .dex 文件;
  5. apkbuilder 工具打包生成未签名的 .apk 文件;
  6. jarsigner 或 apksigner 对未签名 .apk 文件进行签名;
  7. zipalign 工具对签名后的 .apk 文件进行对齐处理;

zipalign 工具对签名后的 .apk 文件进行对齐处理的原因:目的是确保所有未压缩数据以相对于文件开头的特定对齐开始。具体来说,它会导致APK中的所有未压缩数据(如图像或原始文件)在4字节边界上对齐。对齐以后,系统就能更加快速的调用APP内的资源。


http://chatgpt.dhexx.cn/article/jUetRwdT.shtml

相关文章

jadx-gui 重命名功能

jad-gui 是大家常用的一款反编译工具,其中有些小使用技巧可以帮助大家更快的“学习”知识。 安装 方法参考项目GitHub主页 重命名 最新的 1.2.0 版本支持了方法、类、字段的重命名,这是一个非常有用的功能,之前反编译出来的都是混淆后的名…

Android 反编译神器jadx的使用

一、前言 今天介绍一个非常好用的反编译的工具 jadx 。jadx 的功能非常的强大,对我而言,基本上满足日常反编译需求。 jadx 优点: 图形化的界面。拖拽式的操作。反编译输出 Java 代码。导出 Gradle 工程。 这些优点都让 jadx 成为我反编译…

jadx工具windows下载

Release v1.2.0 skylot/jadx GitHubDex to Java decompiler. Contribute to skylot/jadx development by creating an account on GitHub.https://github.com/skylot/jadx/releases/tag/v1.2.0选择第三个jadx-gui-1.2.0-with-jre-win.zip解压exe可正常使用

jadx反编译—下载和使用

一、在GitHub上直接下载 https://github.com/skylot/jadx 可以下这个版本: 二、运行图形化界面 1、将zip文件解压后定位到在lib文件夹中,在此处打开命令行 2、运行jadx-gui-0.7.1.jar(前提是已经装好了JDK1.8) 命令如下&#xf…

jadx初识

一.jadx介绍 一款相对流行的反编译工具 下载:https://github.com/skylot/jadx/releases/tag/v1.0.0 解压后得到这么几个文件: 启动:(以下来两个文件都可以) 启动后的界面: 二.使用 打开之后,你可…

反编译工具之jadx

反编译神器之 - jadx git网址: https://github.com/skylot/jadx简介 首先推荐功能强大的jadx,官方网站为:https://github.com/skylot/jadx,可以直接在releases页面下载其最新版,解压即可使用。 安装 Windows下安装 …

Android 反编译工具 jadx-gui

jadx-gui 是一种基于 jadx 项目的图形界面工具,用于反编译 Android 应用程序的工具。通过使用jadx-gui,开发人员可以打开 APK(Android应用程序包)文件,并查看其反编译的源代码。这对于分析、理解和调试 Android 应用程…

jadx工具介绍及使用

往期推荐 签名校验之“xx银行” Jeb调试ctf(破解密码 Crack the key) ”川报观察“协议分析(抓不到包) 实战分析43XX的HTTPS协议 需要相关资料的朋友,可以【加入此处即可打包获取】 jadx工具是一款反编译利器,同时支持命令行和图形界面&#xff0c…

Java jar反编译工具 jadx

jadx 支持 Windows、Linux、 macOS 项目下载地址 https://github.com/skylot/jadx/releases 按需下载 1.下载zip解压后,进入 bin 目录即可找到执行脚本 jadx:命令行版本 jadx-gui:图形操作界面版本2.下载exe本地双击运行,将…

kali Linux 逆向环境pyenv、Frida、objection、jadx、的安装

目录 1.pyenv安装和使用 1.1pyenv 简介 1.2pyenv 常用命令 1.3pyenv安装和使用 2.Frida安装 2.1Fraida简介 2.1Fraida安装 2.2objection安装 2.3objection常用命令 查看日志 查看包含Frida的日志信息 查看objection的帮助命令 2.3.0进入objection REPL环境 2.3.1直接…

jadx动态调试安卓apk

选用某ctf题目的apk作为调试目标。 工具: 雷电模拟器 jadx1.3.2 步骤: 1、在雷电模拟器安装apk: 2、在jadx打开apk: 3、检查模拟器的adb服务状态: 必须确保模拟器里的adb服务启动,且状态正常&#xff0…

android 反编译 jadx,jadx gui下载 jadx(Android反编译gui工具) v0.6.1 官方版 下载-脚本之家...

jadx是一款Android反编译gui工具,它支持apk、dex、jar、class、zip、aar等文件。jadx操作方便,反编译后的代码可读性高,同时还拥有较完善的gui界面,除去混淆部分的代码,jadx已经非常接近源代码了。需要的朋友可以下载试…

jadx反编译

刚发现的一个反编译神器jadx,对比之前的apktool跟dex2jar,jadx胜在可读性好太多,apktool后的smali长的跟汇编语言一样,dex2jar产生的源码也经常出现奇奇怪怪的语法,让我理解不能. jadx GitHub 地址:https://github.com/skylot/jadx 下载或克隆后,在目录下运行 ./gradlew dis…

新版jadx-gui导入dex会提示Bad checksum

新版jadx-gui导入dex会提示Bad checksum 问题解决方案 问题 今天将一个app脱壳后,拿到DEX,导入jadx中时,弹出了一个错误 也就是会校验dex的checksum,此时如果关闭按钮,忽略错误,会导致dex文件反编译失败&…

jadx学习记录01

原计划是先学习 okHttp 和拦截器,再用 Android Studio 来 demo 下,奈何 Android Studio 装完 sync 一直失败,后续换个电脑再试下、一并整理 okHttp 相关知识点。 今日任务:用 jadx 分析小红书 6.90 版本的 java 代码,…

【Android】Jadx动态调试应用

【Android】Jadx动态调试应用 1. 前言 Jadx已支持动态调试APP,但一直没试过,从逆向角度尝试走一遍流程并熟悉,方便日后翻阅。 2. 相关知识 2.1 动态调试原理 动态调试的原理可以概括为以下几个步骤: 启动应用程序进程&#x…

移动安全工具-jadx

1 需求 官网链接&#xff1a; GitHub - skylot/jadx: Dex to Java decompiler 2 语法 jadx - dex to java decompiler, version: 1.4.5usage: jadx [options] <input files> (.apk, .dex, .jar, .class, .smali, .zip, .aar, .arsc, .aab) options:-d, --output-dir …

jadx反编译工具的使用

目录 jadx工具介绍 jadx工具的安装 jadx工具的使用 jadx遇到的问题 jdk和jre的区别 jadx工具介绍 decompile Dalvik bytecode to java classes from APK, dex, aar, aab and zip files将Dalvik 字节码从APK&#xff0c;dex,aar,aab&#xff0c;zip文件里反编译为java类de…

Android 反编译利器,jadx 的高级技巧

一、前言 今天介绍一个非常好用的反编译的工具 jadx(Java,Dex反编译器) 。jadx 的功能非常的强大&#xff0c;对我而言&#xff0c;基本上满足日常反编译需求。 jadx 优点&#xff1a; 图形化的界面。拖拽式的操作。反编译输出 Java 代码。导出 Gradle 工程。 这些优点都让…

app逆向(11)| jadx反编译工具的安装

文章目录 一、什么是jadx二、安装一、什么是jadx JADX是一款优秀的Android反编译工具,支持命令行和图形化界面,能为我们省下大量的反编译时间。 二、安装 前提首先需要安装java的jdkjadx的github地址:https://github.com/skylot/jadx 进入,下载压缩包。 解压压缩包后,…