红联Linux门户
Linux帮助

Ubuntu安装使用Enjarify-Dalvik字节码转Java字节码

发布时间:2016-10-02 15:18:54来源:topspeedsnail.com作者:斗大的熊猫
Enjarify是一个可以将Android Dalvik字节码转化为等价的Java字节码的工具,有了Java字节码就可使用成熟的Java反编译工具分析Android应用了。
Enjarify是Google开发的,可替代dex2jar这个古老的工具。
Enjarify使用Python 3开发,源代码:https://github.com/google/enjarify
 
Ubuntu安装enjarify
方法一:从仓库安装
$ sudo apt-get install enjarify
方法二:下载Python源码
$ git clone https://github.com/google/enjarify
$ cd enjarify/
$ sudo ln -s "$PWD/enjarify.sh" /usr/bin/enjarify  # 创建链接,方便使用
 
使用enjarify
可以直接用以下命令调用:
$ enjarify yourapp.apk
最简单的用法就是可以将一个apk文件或者一个dex文件作为命令行的输入,如果你使用的是一个多dex的apk,那么Enjarify会自动将这些dex打包到一个单一的jar文件中。而如果你选定了一个dex文件,那么只有这个dex文件会被解析。
$ enjarify classes2.dex
默认的输出是会在当前目录下创建一个[inputname]-enjarify.jar文件。可以通过-o参数来指定输出文件的名称:
$ enjarify yourapp.apk -o yourapp.jar
默认情况下,Enjarify不会覆盖已经存在的文件,不过可以使用-f或者–force参数来强制指定覆盖。
 
查看帮助:
$ enjarify -h
Using python3 as Python interpreter
usage: enjarify [-h] [-o OUTPUT] [-f] [--fast] inputfile
Translates Dalvik bytecode (.dex or .apk) to Java bytecode (.jar)
positional arguments:
inputfile
optional arguments:
-h, --help            show this help message and exit
-o OUTPUT, --output OUTPUT Output .jar file. Default is [input-filename]-enjarify.jar.
-f, --force           Force overwrite. If output file already exists, this option is required to overwrite.
--fast                Speed up translation at the expense of generated bytecode being less readable.
 
实例
$ enjarify vtuekbjaclv.apk 
Using python3 as Python interpreter
Output written to vtuekbjaclv-enjarify.jar
504 classes translated successfully, 0 classes had errors
Ubuntu安装使用Enjarify-Dalvik字节码转Java字节码
 
安装使用jd-gui Java反编译工具:
$ wget https://github.com/java-decompiler/jd-gui/releases/download/v1.4.0/jd-gui_1.4.0-0_all.deb
$ sudo gdebi jd-gui_1.4.0-0_all.deb
$ sudo apt-get install default-jdk
 
运行jd-gui:
$ java -jar /opt/jd-gui/jd-gui.jar
Ubuntu安装使用Enjarify-Dalvik字节码转Java字节码
 
本文永久更新地址:http://www.linuxdiyf.com/linux/24677.html