NipGeihou's blog NipGeihou's blog
  • 开发规范
  • 进阶笔记
  • 微服务
  • 快速开始
  • 设计模式
  • NoSQL 数据库

    • Redis
  • 数据结构与算法
  • 计算机网络
烹饪
关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • 开发规范
  • 进阶笔记
  • 微服务
  • 快速开始
  • 设计模式
  • NoSQL 数据库

    • Redis
  • 数据结构与算法
  • 计算机网络
烹饪
关于
  • 分类
  • 标签
  • 归档
  • 【Android】Android APK反编译JAVA代码

    • 准备软件
      • 下载
        • apktool
        • dex2jar
        • Luyten
      • 获取apk资源文件(图片、XML)
        • 获取反编译的apk的Java源代码
          • 解压apk
        • 提取jar
          • 查看jar代码
          NipGeihou
          2019-01-31
          Android
          目录

          【Android】Android APK反编译JAVA代码

          出于学习的目的,参考、借鉴、学习优秀开发者的代码,提高自我开发水平,便有捣腾起了,以前初中时候,略微接触过的安卓(Android)反编译,不过那时候仅仅是更换下图标、壁纸... 再用幸运破解器破解安装回手机,而如今则稍微高一点点层次,反编译 apk 的源代码,本文大部分内容跟网上及参考文章内容相似,主要不同为最后查看反编译的 jar 文件一步。

          # 准备软件

          • apktool (opens new window) 获取apk资源文件(图片、XML)
          • dex2jar (opens new window) 获取反编译的apk的jar
          • Luyten (opens new window) 查看反编译得到的jar文件里的源代码

          # 下载

          # apktool (opens new window)

          点击下载最新版即可

          # dex2jar (opens new window)

          点击下载最新版即可

          # Luyten (opens new window)

          如果你和我一样,目前系统 JDK 环境为 JAVA 11 或者是 8(1.8)以上的版本,我建议你下载 jar 文件的,因为 Luyten 目前只支持到 jdk 1.8。

          # 获取 apk 资源文件(图片、XML)

          将刚刚下载的三个文件以及要反编译的 apk 文件放到一个文件夹下,方便整理,并将压缩包解压。

          在放置 apktool_2.3.4.jar 的文件夹下,按住 Shift + 右击 —— 点击 在此处打开Powershell窗口(S) (也可能是 CMD 窗口),输入

          java -jar apktool_2.3.4.jar  d -f cloud189_v7.3.0.apk -o cloud189
          

          其中 apktool_2.3.4.jar 为你下载的 apktool 文件名,cloud189_v7.3.0.apk 为你要反编译的 apk 文件名,cloud189 为反编译的文件安放的文件夹,目录在 apktool_2.3.4.jar 同目录下。

          生成的文件和文件夹当中,我们关心的是【res】文件夹中和 AndroidManifest.xml 文件,打开 res 文件夹,里面就有我们想要看到的东西了(参考文章原文)

          由于这些反编译的 xml、图片资源暂时对我而言,不是我想要的,因此并没有过多的研究。

          # 获取反编译的 apk 的 Java 源代码

          # 解压 apk

          有一些解压工具是可以直接解压 apk 的,如果不行,就先将 apk 的后缀.apk 改成.zip 再解压。

          找到 classes.dex 文件,可能不止一个

          # 提取 jar

          进入解压了的 dex2jar 文件夹,找到 d2j-dex2jar.bat ,将 classes.dex 文件复制到该目录下

          在该目录下按住 Shift + 右击 —— 点击 在此处打开Powershell窗口(S) (也可能是 CMD 窗口),输入

          .\d2j-dex2jar.bat classes.dex
          

          有多个 dex 文件,则分别反编译

          就得到反编译的 jar 文件,我们需要一个工具是查看这些 jar 里的代码

          # 查看 jar 代码

          很多教程都讲到 jd-gui 这个软件,但这个软件 15 年至今已多年没更新,仅支持到 jdk 1.7,如果你和我一样,使用更高版本的 jdk,则打不开。

          这里我推荐 Luyten,当然他并不是说支持所有高版本的 jdk,他目前也只是支持到 1.8,但这也比 1.7 稍微好一点。

          JDK 1.8 (opens new window)

          下载好 JDK 1.8 并安装好后,并不需要去配置环境,找到 JDK 1.8 的 bin 目录,找到 java.exe,在该目录下打开 powershell,输入

           .\java -jar C:\Users\NipGeihou\Desktop\luyten-0.5.3.jar
          

          jar 路径以实际为准

          最后发现,安装了 1.8 版本的 JDK 后,直接可以双击 jar 文件即可打开,不用执行命令也可以。

          最后打开 jar 文件即可

          参考文章:APK 反编译 - Android 小码农的博客 - CSDN 博客 (opens new window)

          #Android#反编译
          上次更新: 2023/09/25, 02:31:10
          最近更新
          01
          Coding最佳实践
          09-24
          02
          PVE安装Windows11
          09-21
          03
          Mybatis-plus使用JSON类型
          09-21
          更多文章>
          Theme by Vdoing | Copyright © 2018-2023 NipGeihou | 友情链接
          • 跟随系统
          • 浅色模式
          • 深色模式
          • 阅读模式