史上最全:Apk反编译之jadx,jd-gui,dex2jar,apktool,dex和smali的使用

在写这篇文章前,先插播一条博客地址:https://www.aliyun.com/jiaocheng/2503.html Android的编译打包流程详解,感谢博主写出这么好的博客

俗话说:授人与鱼,不如授人与渔!在网上看到好多关于这方面的文章,都是直接下载工具包!如果下次有什么更新,可能这些下载好的工具包就不能使用了。所以工具的下载地址如下:

apktool:
下载地址:及配置环境地址
https://ibotpeaches.github.io/Apktool/
https://connortumbleson.com/apktool/
手动编写apktool.bat脚本----https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat
最后保留.jar .bat .exe及配置当前安装的环境变量即可使用!
使用命令:apktool d ***apk 和apktool b ***file反编译和回编译,有时候会出现(在window平台)回编译报错,这个可以用apktool -r d ***apk来反编译apk 然后在回编译apk,此时反编译的apk会缺少部分资源文件(res–>value下的文件),只需要拷贝缺少资源重新回编译即可

jd-gui:
下载地址:https://github.com/java-decompiler/jd-gui 在github上面下载好后,配置jdk后直接使用
或者下载地址:http://java-decompiler.github.io/

dex2jar
下载地址及配置:https://github.com/pxb1988/dex2jar 并配置环境变量
dex转jar:首先将apk解压,然后将dex转化为jar)输入命令d2j-dex2jar.bat .dex即可
jar转dex:d2j-jar2dex.bat ***.jar即可实现 或者使用sdk自带的dx.bat实现—》将jar包转换成dex格式二进制的jar包) 用sdk自带的dx.bat即可实现(路径为sdk/build-tools/具体的版本),需要将该jar解压才能拿到class.dex文件命令如下:dx --dex --output=
*.jar(***为输出的jar) origin.jar(origin为需要转化的jar)
同样是使用dex2jar里面的工具:
dex转smali:d2j-dex2smali.bat **.dex
smali转dex:d2j-smali.bat ***(***为smali文件,利用的是dex2jar里面的文件,对support支持jar不能直接转化)
通过smali和baksmali架包来转化dex和smali
dex和smali之间的相互转化:下载地址
https://bitbucket.org/JesusFreke/smali/downloads/?tab=downloads
dex转smali:java -jar dex2smali.jar d ***.dex(其中dex2smali为转化的jar,***为需要转化的dex 默认为输出名为out的smali文件)
smali转dex:java -jar smali2dex a ***(其中smali2dex为转化的jar,***为需要转化的smali 默认为输出名为out.dex的dex文件,其中可以使用a as 和ass)

**apk直接转Java:**使用Smali2javaUI工具实现 工具地址:http://pan.baidu.com/s/1eRBQVtg 密码:42uq

**java2smali:**在as中直接下载插件java2smali插件后,直接build–complete to smali即可生成smali文件

smali2Java:过程smali–>dex—>jar---->class

jadx:
https://github.com/skylot/jadx
下载zip后,解压 先切换到所在安装盘 然后cd到具体的路径。
window执行命令:gradlew dist mac: ./gradlew dist
执行完后产生build/jadx/bin文件,可以配置bin下面的环境到环境变量或者cd到bin下面的目录操作
启动相关命令时报错如下:Could not create the Java Virtual Machine,A fatal exception has occurred。Program will exit—即不能启动虚拟机。执行jadx -h 看到具体的报错即虚拟内存空间太小。修改jadx.bat脚本和jadx里面分配的空间
命令:jadx -d out classes.dex 直接输出.java文件到out目录
jadx-gui classes.dex 使用gui打开
jadx-gui text.apk
jadx -d out text.apk

**enjarify:**https://github.com/google/enjarify

### 回答1: Mac系统无法直接运行APK文件,因此需要使用一些工具来进行解压和反编译apktooldex2jar是两个非常常用的工具,可以用来解压和反编译APK文件。jd-gui则是一款反编译工具,可以用来查看和编辑反编译后的代码。 首先,我们需要安装Java开发工具包(JDK)。可以在Oracle官网下载JDK,选择与自己的系统版本对应的安装包进行安装。 安装完JDK后,我们可以使用Homebrew来安装apktooldex2jar。Homebrew是一款Mac系统下的包管理器,可以方便地安装和管理各种软件。 在终端中输入以下命令: ``` brew install apktool brew install dex2jar ``` 这样就可以成功安装apktooldex2jar了。 接下来,我们需要下载并安装jd-gui。可以在jd-gui官网上下载适用于Mac系统的安装包。下载完成后,我们将其解压,并将解压得到的jd-gui.app文件移动到/Applications目录下即可。 现在,我们就可以使用这些工具来对APK文件进行解压和反编译了。具体操作方法可以参考相关教程和文档。总之,使用这些工具需要一定的技术和经验,初学者需要多加学习和实践。 ### 回答2: 首先,需要说明一下,macOS 平台是不能直接安装 apktooldex2jar 等工具的,在 macOS 上只能通过命令行安装 Homebrew 作为包管理器,然后使用 Homebrew 安装 apktooldex2jar。 步骤如下: 1. 安装 Homebrew:在 Terminal 终端输入以下命令(无需 sudo): ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" ``` 2. 安装 apktool:在 Terminal 终端输入以下命令: ``` brew install apktool ``` 3. 安装 dex2jar:在 Terminal 终端输入以下命令: ``` brew install dex2jar ``` 至于 jd-gui,它是一个 Java 应用程序,需要从官网下载 .dmg 安装包,然后在 Finder 中打开安装包,将 jd-gui 应用程序拖动到 Applications 应用程序文件夹中即可。 安装完成后,可以通过以下命令来测试 apktooldex2jar 是否安装成功: ``` apktool --version d2j-version ``` 如果命令行能够输出版本号信息,则说明安装成功。 使用这些工具时,需要注意以下几点: - 在使用 apktool 时,需要先使用 apktool d 命令将 APK 文件反编译smali 代码; - 在使用 dex2jarjd-gui 时,需要先使用 d2j-dex2jar 命令将 APK 文件转换成 jar 文件,然后使用 jd-gui 打开对应的 jar 文件进行反编译。 - 在使用这些工具时,需要先了解相关的基础知识,熟悉 smali 语言和 Java 字节码知识,否则可能会无从下手。 ### 回答3: 您好,mac 安装 apktooldex2jar, jd-gui 的步骤如下: 一、安装 apktool: 1. 首先,确保您已经安装了 Homebrew 包管理器,如果没有,请在终端输入以下命令进行安装: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 2. 安装 apktool,打开终端并输入以下命令: brew install apktool 3. 然后,可以输入以下命令检查 apktool 是否成功安装: apktool --version 二、安装 dex2jarjd-gui: 1. 首先,需要下载 dex2jar 工具和 jd-gui 工具,可以在官方网站中下载: dex2jar:https://github.com/pxb1988/dex2jar/releases jd-gui:http://jd.benow.ca/ 2. 下载完成之后,将 dex2jarjd-gui 的压缩包解压到任意目录下(例如:/Users/xxx/tools)。 3. 接着需要在终端中输入以下命令赋予 dex2jarjd-gui 的执行权限: chmod +x /Users/xxx/tools/dex2jar-2.0/d2j-dex2jar.sh chmod +x /Users/xxx/tools/jd-gui-1.6.6/jd-gui.app/Contents/MacOS/jd-gui 4. 现在,dex2jarjd-gui 就已经安装完成了,现在可以使用以下命令将 APK 文件转成 JAR 文件: /Users/xxx/tools/dex2jar-2.0/d2j-dex2jar.sh /path/to/apk/file.apk 然后,就可以使用 jd-gui 打开生成的 JAR 文件了。 希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值