banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

macos如何反编译apk查看其源码

需要用到的工具

查看 apktool 版本

 apktool --version

image

Mac 安装 dex2jar

 brew install dex2jar

第一步 Apktool 反编译 APK 文件

 apktool d xxx.apk

image

从 apktool 中可以查看 apk 的一些源码文件,通过这种方式反编译的只能看 smali 源码。

image.png

第二步 dex2jar 将 dex 反编译为 jar

将 apk 文件后缀变为 zip 压缩包后缀。

image

解压 zip 文件得到 dex 后缀的文件,然后通过 dex2jar 将 dex 文件转成 jar 文件。

 d2j-dex2jar classes.dex

image

或者直接下载dex2jar,然后执行

sh d2j-dex2jar.sh classes.dex

如果编译失败,显示版本问题,需要修改 dex 文件头的版本。

image

dex 文件头中的 magic 字段是一个 8 个字节的固定字符数组,表示 dex 文件的类型和版本。以下是不同版本的 dex 文件头中的 magic 字段内容:

・Android 1.0 版本和 1.1 版本:dex 035
・Android 1.5 版本:dex 035
・Android 1.6 版本:dex 036
・Android 2.0 到 2.3.7 版本:dex 035
・Android 3.0 到 3.2.6 版本:dex 036
・Android 4.0 到 4.0.4 版本:dex 035
・Android 4.1 到 4.4.4 版本:dex 036
・Android 5.0 到 6.0.1 版本:dex 037
・Android 7.0 到 7.1.2 版本:dex 038
・Android 8.0 及以上版本:dex 039

得到 jar 文件后,便可通过 jd-gui 查看 jar 代码

第三步 JD-GUI 查看 jar 代码

image

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。