APK 反编译笔记

作者: chauI | 来源:发表于2017-06-03 21:55 被阅读434次

反编译软件

首先是很多人在用的三个:

这三个通常是配合使用的,下载后只要解压即可使用。
然后还有一些更为易用一些,可以一步到位的软件:

我建议可以直接用上 jadx 和 APK Analyzer 这两个插件,其他的了解一下就可以了,因为很多时候反编译的帮助并没有想象的大,混淆过的代码如果不深入研究也很难看出所以然。

软件的实践

  • Apktool

首先将下载的压缩包解压,然后将需要反编译的 Apk 放到解压后的文件夹内,


F:\apktool2.2

在 cmd 转到该文件夹目录下,或者在文件夹下 shift + 右键选择在此处打开命令行窗口
输入命令:

apktool d <apkName>.apk
apktool 2.2

这就生成了一个以 apk 名字命名的文件夹 base 里面就有该 apk 包含的资源文件:

base
  • dex2jar + jd-gui 查看源码

先用 dex2jar 将 apk 转换成 jar 文件。
首先,将 apk 的后缀改成 zip 或者 rar,然后用压缩软件打开:

base.zip

classes.dex 文件放到 dex2jar 根目录下。
(其实放不放都行,不放到根目录下需要在文件名前面加上路径):

F:\dex2jar-2.0

在该目录下打开 cmd 输入命令:

d2j-dex2jar classes.dex
image.png

这样就生成了文件 classes-dex2jar

然后打开 jd-gui ,将 jar 文件拖动到窗口即可:

jd-gui

这里的这个 apk 是未混淆的 debug 版本,所以文件被完整的反编译出来了,然而正式版的 apk 被混淆后,即使反编译出了 java 文件,它的可读性也是非常差的。

  • android-classyshark

GitHub 上的开源软件,使用是真的简单,双击下载下来的 jar 文件就会弹出软件的窗口,把 apk 拖到窗口就完成了上面的操作:

classyshark

但是这个反编译出来的源码很少,基本看不到相应的逻辑。所以还不是特别的好用。然后我就继续找,找到了 jadx,应该就是这一篇的 mvp 了。

  • jadx

同样是 GitHub 上的,可以在这里 直接下载 zip 文件,解压后找到\jadx-0.6.1\bin 中的 jadx-gui 文件:

jadx-0.6.1\bin

点击打开就是 jadx 的图形界面了,然后把 apk 拖到窗口:

jadx

和 dex2jar + jd-gui 反编译出来的文件对比差不多,但是易用很多。

  • APK Analyzer

现在 Android 应该绝大大大部分都是在 Android Studio 上开发了,所以自带的反编译插件也该一提。

可以在 Build -> Analyzer APK... 打开:

APK Analyzer

然后选择路径即可。
也可以直接将 apk 拖到 AS 的窗口直接打开:

Analyzer APK

可以查看资源文件,也可以查看源码,可以说也是很好用的插件,只是面对未混淆过的 apk ,反编译出来的源码可读性也不高。

后记

其实这也是最简单的反编译实践,和一开始想的不太一样。比如一开始我可能是对市面上的一些 APP 某些功能感兴趣,在不知道怎么实现的清空下希望能通过反编译查看源码来学习。

但上面说过了这并非易事,反而在查资料的时候发现反编译和查看资源文件的用处可大了,而不仅是查看源码而已。

比如为 APK 瘦身的时候,可以在 APK Analyzer 查看源码和各文件的大小、方法数和引用的库等信息。

相关文章

  • 反编译Android APK及防止APK程序被反编译

    反编译Android APK及防止APK程序被反编译 怎么逆向工程对Android Apk 进行反编译 googl...

  • Apk反编译

    APK反编译流程 对我们来说,apk 就是一个压缩包 。反编译 apk 就是反编译 dalvik(Dalvik 是...

  • APK反编译工具的使用

    前言 处理反编译,首先先要了解apk文件的结构,然后是编译过程,最后是反编译。反编译Apk的目的就是Apk拆成我们...

  • 反编译apk

    反编译apk

  • Android 反编译

    1、反编译工具 APK TOOL :谷歌提供的 APK 编译工具,可以反编译和回编译。我们都知道,其实 APK 就...

  • Android smali动态调试

    调试步骤 反编译apk 使用apktool工具反编译apk 在AndroidManifest.xml里面的Appl...

  • 反编译apk,修改登录成功

    要实现的功能是,登录成功。 打开Apk反编译工具,将上一篇中生成的apk拖入其中,点击 反编译apk。 将apk使...

  • android 动态调试

    反编译以及打包 apk 工具网盘地址 反编译 :java -jar Apktool.jar d 22.apk 修改...

  • Mac下反编译Android安装包基本工具

    本篇文章主要从如下几点学习反编译工具的基本安装 apk介绍 反编译apk需要的基本工具 常用ADB命令 apk介绍...

  • 2020-06-20 反编译APK获取代码&资源

    "反编译Apk",看上去好像好像很高端的样子,其实不然,就是通过某些反编译软件,对我们的APK进行反编译,从而获取...

网友评论

    本文标题:APK 反编译笔记

    本文链接:https://www.haomeiwen.com/subject/tatefxtx.html