androidapk反编译工具jadx(代码片段)

麦田里的守望者-Jiang 麦田里的守望者-Jiang     2022-11-28     670

关键词:

文章目录

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. jarsignerapksigner 对未签名 .apk 文件进行签名;
  7. zipalign 工具对签名后的 .apk 文件进行对齐处理;

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

android反编译与加密(代码混淆)(代码片段)

#反编译win系统好久不用了而且win系统下的反编译工具和教程一大堆,这里讲讲Mac下反编译工具。目前,mac下有两款工具不错,分别是Jadx和AndroidDecompiler这里介绍一下Jadx:Jadx下载地址:https://pan.baidu.com/s/1jH3XUFc... 查看详情

android反编译工具jadx卡死解决方案。

...dex可以直接被apktool,androidkiller,jeb等工具进行反编译分析,那么jadx工具主要是用于将dex文件的代码还原为java代码。jadx支持直接将dex文件和jar文件拖拽到工具进行做解析。在使用jad 查看详情

androidapk反编译工具包

【前期准备】反编译需要以下工具: dex2jar   [官网、下载地址]jd-gui    [官网、下载地址]baksmali [官网、下载地址]smali     [官网、下载地址] 打包下载:点击下载前期条件:电脑必须有Java环境文件目录:... 查看详情

java开发神器--反编译工具jadx&jd-gui

本文针对JAVA两款常用的反编译工具jadx、jd-gui进行介绍,通过这两个Java开发神器,可以方便查看线上的代码版本、查看apk或jar的源码实现jadxjadx是一款功能强大的反编译工具,可以通过点击代码进行跳转,除反编... 查看详情

androidapk反编译

android反编译工具包最新下载apktooldex2jarjd-gui工具功能apktool作用:资源文件获取,可以提取出图片文件和布局文件进行使用反编译命令:java-jarapktool.jardecodeapk文件路径dex2jar作用:将apk反编译成java源码(classes.de... 查看详情

androidspiderjdax-gui反编译工具下载使用以及相关技术介绍(代码片段)

...境2.3进入Dos命令窗口启动Jdax-Gui2.4正常使用三、常见的反编译工具以及简单分析介绍1.AndroidKiller2.Dex2jar3.Jdax4.Apktool5.Jd-gui总结前言反编译工具有很多种,我推荐JADX,后续有更好的反编译工具我会继续补充一、JDAX下载jadx本... 查看详情

androidapk+dex文件反编译及回编译工具的使用说明

参考技术A本工具执行安装后,直接在【鼠标右键】生成快捷键,自动关联APK、DEX、Odex、Zip等文件。只要在电脑任意“非分区根目录”,【鼠标右键】点击相关文件,即可编译操作。如,反编译APK及DEX文件,反编译后生成可编译... 查看详情

android反编译jadx-gui基本用法

...过大时无法使用索引1.2内存不足参考材料前言现在我们反编译一个未加固的APP,一般来说有两种方式。一种是用Jadx-gui,优点是一个软件就帮你将所有活给干了,缺点是如果遇到较大的APP(代码加起来超过30mb的... 查看详情

androidapk反编译得到java源代码(五)

APK软件反编译 去广告具体步骤:1.下载 apktool下载地址:https://code.google.com/p/android-apktool/downloads/list 2.通过apktool反编译apk。命令行中输入以下命令:apktool.bat  d  -f  aaa.apk(apk路径)反 查看详情

jadx批量反编译并合并

参考技术A用jadx命令行分别反编译各个dex,然后用rsync合并到一处. 查看详情

反编译androidapk的具体步骤是怎样的

反编译步骤方法:一、apk反编译得到程序的源代码、图片、XML配置、语言资源等文件下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar,将需要反编译的APK文件放到该目录下,打开命令行界面(运行-CMD)&nb... 查看详情

android逆向工具简单介绍(代码片段)

...具介绍1、APP抓包工具1)Fiddler2)Wireshark2、jadx反编译工具3、APKDB4、Frida之Hook工具5、IDA反汇编工具1)为何反 查看详情

app反编译和逆向打包(代码片段)

一:反编译1:反编译代码JADX(推荐)具体的安装和使用,推荐看这篇文章吧点这里dex2jar和jd-gui关键命令:d2j-dex2jarclasses.dexps:将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内,... 查看详情

反编译androidapk及防止apk程序被反编译

原文出处 反编译AndroidAPK及防止APK程序被反编译怎么逆向工程对AndroidApk进行反编译googleAndroid开发是开源的,开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译... 查看详情

常用ctf工具

...的二进制编辑器代码审计GitHack:通过.git还原代码反编译ghidra:二进制反编译IDA:二进制反编译JADX:dex反编译Luyten:Java反编译pyinstxtractor&# 查看详情

android开发助手2020(代码片段)

Mac安装Jadx反编译工具https://github.com/skylot/jadx.gitGradlePermissiondenied解决方案今天在查看Android项目中三方库的依赖关系时,发现蜜汁好用的gradle命令权限被限制了:qingmeideMac-mini:FireProtectionClient_Androidqing.mei$./gradlew- 查看详情

android开发助手2020(代码片段)

Mac安装Jadx反编译工具https://github.com/skylot/jadx.gitGradlePermissiondenied解决方案今天在查看Android项目中三方库的依赖关系时,发现蜜汁好用的gradle命令权限被限制了:qingmeideMac-mini:FireProtectionClient_Androidqing.mei$./gradlew- 查看详情

androidapk反编译详解(附图)

这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程。在此郑重声明,贴出来的目的不是为了去破解人家的软件,完全... 查看详情