Mac环境下反编译Apk(入门)

准备工具:

  1. Android Studio
  2. apktool
  3. dex-tools
  4. jd_gui
    工具默认各位看官都以自备。我这只有apktool,dex-tools,jd-gui。反编译工具下载地址

反编译

我知道的反编译方式主要有两种:
一、直接通过apktool命令反编译apk
二、将apk后缀名改为zip,直接解压,通过jd-gui工具查看。
先说第一种用apktool命令反编译,新建一个Test文件夹,将要反编译的app-release.apk放进去。
1、打开终端,cd到Test目录。
2、再执行apktool d app-release.apk。执行完后,Test目录下就回多一个app-release文件夹。
打开Test文件夹大概可以看到以下文件
在这里插入图片描述
AndroidManifest.xml就是对应我们项目里的清单文件。
res目录里就是我们项目里的资源文件。
smail里面就是我们项目的代码。
我的项目代码路径是com/example/studydemo。因此我就可以在smali文件里找到我自己写的代码的路径。
自己写的代码路径
自己写的代码路径
我们可以通过Android Studio打开app-release文件夹。打开Android Studio,file -> open -> 选择./Test/app-release文件夹 -> open
在这里插入图片描述
用Android Studio打开,我们就可以查看别人的代码逻辑了,不过我们的java或者kotlin代码都被解析成了smali语法,若想读懂还需要对smali语法有一定的了解,我还知之甚少,这里就不献丑了。
这就是通过apktool命令进行反编译的方式。

接下来说说第二种反编译方式,这里还是在Test文件里对app-release.apk进行反编译。为了保留原文件,这里我将原apk复制了一份,并将文件名改为app-release2.zip。直接对该zip文件进行解压,得到app-release2文件夹。
在这里插入图片描述

AndroidManifest.xml就是对应我们项目里的清单文件。
res目录里就是我们项目里的资源文件。
classes.dex文件就是可执行文件,我们需要通过dex-tools,将该文件转换成jar文件。

先将classes.dex文件复制到dex2jar-2.0(这个文件是dex-tools-2.0.zip解压得到的)文件夹中,在终端中cd到dex2jar-2.0目录,执行sh d2j-dex2jar.sh classes.dex命令,执行后,就可以看到dex2jar-2.0目录下多了classes-dex2jar.jar文件。
在这里插入图片描述

再打开jd-gui-osx-1.6.6(这个文件是jd-gui-osx-1.6.6.zip解压得到的)文件夹中的JD-GUI。
在这里插入图片描述
在JD-GUI中file -> open file -> 选择dex2jar-2.0目录下的classes-dex2jar.jar文件 -> 打开
在这里插入图片描述
打开之后,同样也能找到com.example.studydemo文件夹,里面就是我们的代码
在这里插入图片描述
通过JD-GUI查看代码,更加容易看懂一些,只不过一般代码都会混淆处理,需要花点时间去捋清代码逻辑。
这就是通过jd-gui工具的方式反编译。

在下学艺不精,如有不足,请各位看官海涵。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值