0%

综合技术(四):反编译初步

1. 反编译概述

2. 使用 dex2jar 和 jd-gui 反编译 apk

  • Dex2jar 是一个将 dex 文件转换为 jar 包的命令行工具,dex 文件来源于 apk,将 apk 通过 zip 包的方式解压缩即可提取出里面的 dex 文件
  • Jd-gui图形化工具,因为 jar 包中都是 class 文件,所以还需要 jd-gui 将 jar 包进一步转换为 Java 代码

3. 使用 apktool 对 apk 进行二次打包

  • 通过 dex2jar 和 jd-gui 可以将一个 dex 文件反编译为 Java 代码,但是它们无法反编译出 apk 中的二进制数据资源,但是采用 apktool 就可以做到这一点
  • apktool 是一个命令行工具,它的另外一个常见的用途是二次打包,也就是常见的山寨版应用,但这是一种不被提倡的行为,甚至是违法的
    • 通过 apktool 解包以后,可以查看到 apk 中的资源以及 smali 文件,smali 文件是 dex 文件反编译(不同于 dex2jar 的反编译过程)的结果
    • smali 有自己的语法并且可以修改,修改后可以被二次打包为 apk,通过这种方式就可以修改 apk 的执行逻辑及绕过签名校验,显然这让山寨版应用变得十分危险
    • apk 经过二次打包后并不能直接安装,必须要经过签名后才能安装
-------------------- 本文结束感谢您的阅读 --------------------