安卓apk反编译详解

环境准备:windows

工具及介绍:

  • apktool 
    • 获取资源文件,提取图片文件,布局文件,还有一些xml的资源文件
  • dex2jar
    • 将apk反编译成java源码(classes.dex转化成jar文件)
  • jd-gui
    • 查看apk的classes.dex转化完的jar文件,即源码文件

百度网盘获取:

链接:https://pan.baidu.com/s/1QTTPfdDfMSMk8jIpwJkQZw
提取码:olzw

操作流程:

apk反编译得到程序的源代码、图片、XML配置、语言资源等文件

  • 把下载好的apktool_2.4.0.jar和apktool.bat放在自定义文件夹中,例如:D:apktool
  • 注意:apktool_2.4.0.jar需要手动把版本号去掉如下图:

  • 检查是否安装成功,出现如下图所示证明安装ok(如果使用powershell运行失败,建议使用cmd命令行工具)
  • 命令行窗口输入:apktool

注意:下载完把文件后版本号一定要去掉(apktool_2.4.0.jar ),否则报如下错误

  • 开始反编译
  • 命令行窗口输入:apktool.bat d [apk文件名] -o [输入文件夹]
  • 成功后如下图

  • 使用apktool解码apk得到的文件夹如下图,其中res文件夹下存放layout、drawable、values等资源。

注意:
此时 dex 文件直接反编译成了 smali 文件,而我们需要的是 .dex 文件。

此时再运行:

$ apktool d -s -f test.apk
  • -d 反编译 apk 文件
  • -s 不反编译 dex 文件,而是将其保留
  • -f 如果目标文件夹存在,则删除后重新反编译

此时得到这样的文件夹:

dex2jar-反编译得到Java源代码

  • 把下载好的dex2jar-2.0解压至自定义文件夹内,如下图

  • 将classes.dex文件放置文件目录:D:apktooldex2jar-2.0
  • 命令行窗口输入:d2j-dex2jar.bat classes.dex
  • 成功后如下图:

 

jd-gui查看源代码,如下图

注意:如果运行打开时出现如下,需要安装JRE环境,点击确定后到浏览器下载安装即可。

 

原文地址:https://www.cnblogs.com/helloTerry1987/p/11368206.html