学而实习之 不亦乐乎

反编译工具 Apktool 的用法

2023-09-23 20:18:44

一、下载安装

1、所需工具

  • Apktool(.apk→.smali)
  • dex2jar(.dex→.jar)
  • jd-gui(查看.jar文件的图形化工具 )

2、待操作对象:

  • Apktool:Android应用安装包(xxx.apk)
  • dex2jar和jd-gui:xxx.apk 更改后缀为 zip 解压得到的 classes.dex 文件

二、具体使用

  1. cmd 命令提示符页面首先切换到工具命令(apktool、d2j-dex2jar.bat)所在目录,如D:\Test\apktool>和D:\Test\dex2jar-2.1>
  2. 确认待操作对象和工具命令文件在同一个文件夹
  3. 使用命令得到目标文件
    • Apktool:apktool d -f(强制覆盖) -s(保留.dex类型文件) xxx.apk -o 指定目标文件位置
    • dex2jar和jd-gui:d2j-dex2jar.bat classes.dex得到classses-dex2jar.jar,使用jd-gui打开得到源代码

三、实例

反编译 Android APP

反编译 Android 程序的方法通常是:

  1. 使用apktool反编译APK文件,生成 smali 格式的反汇编代码
  2. 通过阅读 smali 文件的代码来理解程序的运行机制,找到突破口,并对代码进行修改。
  3. 使用apktool重新编译生成APK文件并对其进行签名。
  4. 运行测试

如此循环,直到程序被破解