Enjarify 是 Google 官方推出的反编译工具,它可以将 Dalvik 字节码转换为 Java 字节码,也就是可以把 .apk 和 .dex 的文件转换为 .jar 的文件。还有一款工具叫 Dex2jar 也可以做到,不过 Enjarify 更胜一筹。Dex2jar 工具比较老,而且也很久没有更新过了,不支持Android N 及以上的版本的反编译,针对一些经过特殊处理的 apk 可能会崩溃。Enjarify 相比而言命令更简单,涵盖范围更广,考虑的情况更多。当然 Enjarify 也是存在一些局限性的,尽管它已经尽可能的去解析所有的类,不过由于 Android 和 Java 的限制,有些隐藏的类尚不能很好地解析,不过这种情况出现的频率比较低。
下面我就分享一下 Enjarify 的使用方法,Enjarify 是一个基于 Python 3 的应用程序,因此在使用之前需要安装 Python 3,官方下载地址:https://www.python.org/getit/。鉴于我平时都是在 Windows 环境下使用,没接触过 Linux,就仅分享在 Windows 环境下的操作步骤了。
安装 Python
当你下载好相对应系统的 Python 3 安装包之后建议右键点击并且以管理员身份运行,同时勾选 Add Python 3.X to PATH,将 Python 添加到环境变量中。也可以双击安装,之后找到Python 的安装目录,把 Python 配置到环境变量中。
Python 安装完成之后,可以到命令行,WIN + R,输入 cmd,敲回车进入,在弹出的界面输入 python,可以得到如下的界面。
下载 Enjarify
有两种方式可以获取 Enjarify,第一种是通过 Git,通过 git clone https://github.com/google/enjarify.git 命令;第二种是到 Github 网站上面,网址:https://github.com/google/enjarify,下载压缩包并解压缩。Enjarify 的目录如下:
使用 Enjarify
Enjarify 文件目录下有个 enjarify.bat 的文件,需要对其进行修改,右键使用 Notepad++ 打开,或者使用记事本打开都可以,把其中 python3 -O -m enjarify.main %* 的 3 去掉,也就是改为 python -O -m enjarify.main %*。
修改好之后保存即可,然后将需要反编译的文件放到 Enjarify 文件根目录下,进入命令行,进入到 Enjarify 文件夹对应的目录下,输入 enjarify xxx.apk,或者 enjarify xxx.dex,之后就会在根目录下面生成一个相同名字的 xxx.jar文件。
也可以通过 enjarify xxx.dex -o( output ) xxx.jar 的方式自定义反编译文件的名称,如果需要强制覆盖之前已经反编译的文件可以使用 enjarify -f ( force ) xxx.dex。至此 Enjarify 的使用方法就分享完毕了。
最后,如果这篇文章对你有帮助的话,辛苦动动手指点个赞,没有关注的麻烦关注下我的公众号,谢谢大家!
领取专属 10元无门槛券
私享最新 技术干货