Mac环境下反编译apk

Mac环境下反编译apk

  • 安装反编译工具
  • 实操
    • [1. 将需要反编译的 .apk 文件放在下载的 dex2jar 文件夹目录下](#1. 将需要反编译的 .apk 文件放在下载的 dex2jar 文件夹目录下)
    • [2. 使用 cd /xxx/dex2jar-2.0 命令进入 dex2jar 文件夹下,将 dex2jar 文件夹里的 d2j-dex2jar.sh 文件拖进命令框然后空格再将 .apk 文件拖进来,直接执行,然后会在 dex2jar 文件夹下生成一个 .jar 文件](#2. 使用 cd /xxx/dex2jar-2.0 命令进入 dex2jar 文件夹下,将 dex2jar 文件夹里的 d2j-dex2jar.sh 文件拖进命令框然后空格再将 .apk 文件拖进来,直接执行,然后会在 dex2jar 文件夹下生成一个 .jar 文件)
    • [3. 打开下载的 JD-GUI 程序(在下载的文件夹中)](#3. 打开下载的 JD-GUI 程序(在下载的文件夹中))
    • [4. 将 dex2jar 文件夹下生成的 .jar 文件拖进 JD-GUI 工具中即可查看源码](#4. 将 dex2jar 文件夹下生成的 .jar 文件拖进 JD-GUI 工具中即可查看源码)
  • 常见问题
    • [zsh: permission denied](#zsh: permission denied)
    • [This program requires Java 1.8+](#This program requires Java 1.8+)

安装反编译工具

dex2jar:官网下载

JD-GUI:官网下载

实操

1. 将需要反编译的 .apk 文件放在下载的 dex2jar 文件夹目录下

2. 使用 cd /xxx/dex2jar-2.0 命令进入 dex2jar 文件夹下,将 dex2jar 文件夹里的 d2j-dex2jar.sh 文件拖进命令框然后空格再将 .apk 文件拖进来,直接执行,然后会在 dex2jar 文件夹下生成一个 .jar 文件


3. 打开下载的 JD-GUI 程序(在下载的文件夹中)

4. 将 dex2jar 文件夹下生成的 .jar 文件拖进 JD-GUI 工具中即可查看源码


常见问题

zsh: permission denied

java 复制代码
// 没有权限:使用命令终端进入 dex2jar-2.0 文件夹路径下,依次执行以下命令即可
sudo chmod +x d2j_invoke.sh
sudo chmod +x d2j-dex2jar.sh

This program requires Java 1.8+

  1. 右键点击 JD-GUI 工具选择显示包内容
  2. 进入 Contents 文件夹
  3. 打开 Info.plist 文件
  4. 全局搜索 1.8+ 删除 1.8+ 保存重新打开 JD-GUI 工具即可

相关推荐
韩曙亮22 分钟前
【错误记录】安卓 adb 调试 5037 端口占用排查 ( adb 的三层结构 | 找出本机占用 5037 的进程 )
android·数据库·adb·安卓·错误记录
三少爷的鞋1 小时前
不改变异步本质,只改变代码组织:Telegram 项目的 Kotlin 协程实践
android
好的佩奇10 小时前
蓝牙之广播与扫描
android·flutter·蓝牙
传奇开心果编程12 小时前
【Jetpack Compose娓娓道来】第36课:焦点管理与键盘输入——让遥控器、键盘和输入法都“找得到北”
android·kotlin·移动开发·交互·android jetpack·ui框架·声明式ui
hai_android13 小时前
AudioTrack 深度解析:从原理到实战
android·java·kotlin
红尘伴蝶舞13 小时前
从秒开优化到连环崩溃:深入剖析 ViewPager2 在常驻 DialogFragment 中的复用陷阱与自愈方案
android·kotlin
巫山老妖17 小时前
Android 应用架构演进:MVC / MVP / MVVM / MVI (2026)
android·android jetpack
流浪00118 小时前
计算机网络篇23:数据链路层——以太网帧格式与 MAC 地址,MTU 牵住 UDP 和 TCP,ARP 拿 IP 换 MAC
计算机网络·mac·数据链路层·arp·mtu·局域网通信
木头左1 天前
【架构设计】教育类 App 服务端化改造:AI 上移、题库分层与个人题库归属
android·架构设计·系统设计·后端开发·数据库设计
墨狂之逸才1 天前
USB 的 HOST 和 DEVICE 到底有什么区别?ADB 调试应该选哪个?
android