Android 反编译工具 apktool ,smali2java, dex2jar , jd-gui ,jadx-gui 的安装与使用

1.apktool 

下载地址 https://ibotpeaches.github.io/Apktool/install/

按照上面的步骤

第一步:就是要让我们下载apktool.bat,把鼠标移至wrapper script上,然后右击,链接另存为。

第二步:下载apktool.jar文件,点击find newest here,跳到下载页,我们能尽量下载最新版本。 

第三步:把你下载来的jar文件重新命名为:apktool.jar。 

第四步:官网建议你把apktool.bat、apktool.jar放到C盘的Windows下。我们就放到Windows下

然后我们 调出CMD   cd 到 我们的apk所在的路径下。(我在F 盘 apks  文件夹中放了一个hzApp.apk)

F:\>cd apks  执行  apktool d hzApp.apk

其中smali文件夹中就是源码,可惜 这样是看不见的,但是我们依然可以看到 工程中的各种资源文件。

2.smali2java

下载地址 http://www.hensence.com/cn/smali2java/#Download

smali2java是一个将smali代码反编译成java代码的工具。

什么是smali?smali是将Android字节码用可阅读的字符串形式表现出来的一种语言,可以称之为Android字节码的反汇编语言。使用baksmali或apktool可以将Android应用程序包(apk或jar)反编译为smali代码。

smali2java工具基于apktool (baksmali )生成的smali文件,依赖于smali文件中的代码行数(.line关键字)和变量别名(.local关键字)等信息,可以最大程度还原原始的java代码。还原出的java代码将具有原始的变量命名,代码的顺序也与原始的java代码保持一致。因此,本工具也具有局限性,仅适用于带有行数和变量别名信息的smali文件(java编译器的编译选项可以在生成的字节码中剔除这些信息)。

从网站看的信息发现其存在一定的局限性没有 行数和变量名的smali 文件 我们就看不到Java 源码了、工具用起来也简单,加压执行exe 文件 打开我们的 apk 包就好。

 

3.dex2jar 和 jd-gui 这两个工具要配合使用。

dex2jar 看名字 就知道是吧 dex 文件 转换为 Jar 文件  而 jd-gui  工具就是查看源码的工具了

将APK直接解压(修改后缀名为.zip,然后解压)后,可以看到目录下包含一个classes.dex文件。如下图所示,而我们的源码就在这个classes.dex  文件中。

然后我们 安装 dex2jar

下载地址:https://sourceforge.net/projects/dex2jar/

加压后 进入文件夹

现在把上面的classes.dex文件拷贝到该目录下。 cmd窗口进入dex2jar-2.0,然后输入命令:d2j-dex2jar.bat classes.dex回车。如下图

然后 文件夹中就多了 classes-dex2jar.jar  文件。

安装 jd-gui 

下载地址: http://jd.benow.ca/ 。

 

解压 后有一个 jd-gui.exe文件 我们打开后直接在里面打开 之前的 classes-dex2jar.jar 文件 。我们就可以看到 Java 源码了。

4.最后介绍一个工具  jadx-gui   把dex2jar 和 jd-gui 这两个工具性能结合起来,简单方便 。

下载地址 https://bintray.com/skylot/jadx/releases/v0.8.0#files

解压后里面 bin 文件夹下有个 jadx-gui.dat  批处理文件 双击打开(最新版的要Jdk 1.8) 然后直接打来我们的apk 文件就可以看到 源代码 。超级好用。

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答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 文件了。 希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值