MT 管理器是一个强大的软件,借助它可以进行 APK 的编辑操作。但是因为我没钱,开不起会员,所以用不了 dex 反编译功能。不过,我们可以另辟蹊径,用 CFR 这个开源免费的 Java 反编译工具,配合 MT 管理器免费的 dex 转 jar 功能,反编译 APK 中的 classes.dex 文件。
但是,CFR 只有 jar 版本,而 Android 不能直接运行 jar,只能运行 dex,所以,需要把 CFR 的 jar 转换成 dex 。这里,我们可以使用 dex2jar,生成 CFR 的 dex 版本。然后在 MT 管理器的终端中使用 dalvikvm 命令运行这个 dex 。
为了方便读者,我写了个脚本,可以在 MT 管理器中安装 CFR 。只需打开 MT 管理器终端,执行:
bash <(curl https://yucho123987.bitbucket.io/cfr/cfr-mt.sh)
然后等待一会儿,提示“CFR 安装完成”就表示 CFR 已经安装成功了。这个脚本会在你的 MT 管理器终端主目录创建一个 cfr.dex 文件,并且在 bin 目录中创建 cfr 文件。
然后执行 cfr
,如果输出如下图所示,说明 cfr 可用:
然后我们来用 CFR 反编译 jar 和 class。
CFR 反编译 class 的语法很简单:
cfr 文件名
比如我要反编译的文件是 Print.class(一个我自己写的 Hello world 程序),那么就该这么写:cfr Print.class
执行这行命令,会把反编译结果直接输出,就像这样:
也可以把反编译结果输出到一个目录中:
cfr Print.class --outputpath 目录名
也可以反编译 jar:
cfr 文件名 --outputdir 输出目录名
最后,码字不易,给个赞吧~