Enjarify是Google最近出的一款反编译工具,它可以将Dalvik字节码转换成相对应的Java字节码。
Enjarify使用起来相当方便,虽然没有可视化的图形界面,但是Enjarify的命令却十分简单。Enjarify是一个基于Python3的程序,所以在使用Enjarify之前,需要预装Python3的解释器,官方推荐pypy3。
在Windows下使用时,Enjarify提供了一个批处理文件enjarify.bat。在官方介绍中,遇到模糊特性或一些边缘情况时,Enjarify的反编译效果要比Dex2jar要好得多。在使用过程中,确实可以明显看到效果。一些针对Dex2jar反编译进行过特殊处理的app,会导致Dex2jar反编译时崩溃,但是对Enjarify却无效。
使用指南:
1、从https://github.com/google/enjarify下载Enjarify的Zip压缩包,解压到某一路径,该路径需要配置到环境变量里的Path中。
2、使用enjarify需要用到Python的解释器,官方推荐使用pypy,下载地址:http://pypy.org/ ,要下载pypy3.+版本。
3、将下载的pypy解压缩,路径配置到环境变量里的Path中,在命令行输入 pypy,出现下图所示即为安装成功。
4、找到Enjarify目录下的enjarify.bat文件,使用编辑器打开(建议notepad),修改
python3 -O -m enjarify.main %* –> pypy -O -m enjarify.main %*(从官网下载的Enjarify需要进行此项修改)。
5、在命令行输入 enjarify -f XXX.apk , -f 在这里是必须要加上的,否则会出现警告,无法反编译APK文件。这是因为复写保护需要Python3.3及以上的版本,而pypy目前支持的是python3.2.5。
6、反编译之后的文件是一个jar文件,使用jd-gui查看Jar文件。但jd-gui可能会出现会出现部分class文件无法反编译,使用Xjad单独反编译这个class就可以了。
Enjarify部分命令如下:
反编译apk或dex enjarify yourapp.apk
强制覆盖之前已编译的文件enjarify -f(force) yourapp.apk
指定输出文件名 enjarify yourapp.apk -o(output) yourapp.jar
Enjarify官方下载地址: https://github.com/google/enjarify
CSDN下载地址
Enjarify http://download.csdn.net/detail/liuweiballack/9093069
pypy http://download.csdn.net/detail/liuweiballack/9093075
jd-gui http://download.csdn.net/detail/liuweiballack/9093081
注意:从CSDN下载的Enjarify不必修改bat文件,只需要配置环境变量。