JAVA反编译软件
而JAVA最突出的跨平台优势使得它无法编译原生代码,而是以中间代码的形式运行在虚拟机环境中,这使得JAVA的反编译比其他高级语言更容易实现,反编译后的代码经过优化几乎可以媲美源代码。
为了更好地保护知识产权,避免我公司的智力成果被轻易窃取,开发者有必要对反编译工具有深入的了解,以便采取有针对性的保护措施。
目前流行的JAVA反编译工具有近30款,其中优秀的有三款:
首先,广泛使用的JAD
在众多的Java反编译器中,有几个非常著名的工具使用了同一个核心引擎——JAD,包括:前端加、mDeJAVA、Decafe Pro、Cavaj Java反编译器、DJ Java反编译器、NMI的JAVA类查看器和国产JAVA源代码反编译器。
JAD本身是一个没有图形界面的命令行工具。这些工具大多只是在JAD内核的基础上增加了一个图形界面。这么多产品* * *相同的选择,足以证明JAD在JAVA反编译领域的崇高地位。
JAD是用Microsoft Visual C++开发的,运行速度非常快,可以处理复杂的JAVA编译文件。众多的参数使JAD能够灵活地应对各种加密方法,使反编译的代码更加优化和可读。因为JAD参数太多了,不需要一一解释。其中一些最常用的如下(以JAD 1.5.8f版本为例):
-d
-允许您指定输出文件的目录。
-s-输出文件扩展名(默认值为:。jad),通常输出文件扩展名被直接指定为。java,以便于修改和重新编译。
-8-将Unicode字符转换为ANSI字符串。如果输出字符串是中文,则必须添加此参数才能正确显示。
最常用的反编译指令如下:
jad–d c:\ Java source–s . Java-8 Java test . class
这条指令将当前目录下的javatest.class反编译成javatest.class,保存在c:\javasource目录下,其中的提示输出是中文,而不是Unicode代码。
第二,JODE拥有开源代码
Sourceforge.net是世界上最大的开源项目网站,JODE是其成员。在所有的JAVA反编译器中,JODE的反编译效果最好,尤其是针对一些常见的加密方法,比如混淆技术。
JODE本身是用纯JAVA开发的。最近越来越多的Java反编译器选择JODE作为核心引擎,如JCavaj Java反编译器、BTJ(回到JAVA)、jEdit的JavaInsight插件等。
JODE是一个可运行的JAR文件,在windows环境下双击即可运行。
特别是,JODE没有通过常规公开->;文件来加载JAVA编译的类文件(*。类)或类包(*。jar),而是通过选项菜单中的设置类路径。单独的类文件可以输入其父目录作为类路径,然后选择重载类路径。
新添加的类包或类名将出现在左侧窗口中。双击类包名称以展开目录树结构。双击需要反编译的类名,直接在右上角窗口显示反编译后的源代码。
第三,独特的DAVA
DAVA不是一个独立的JAVA反编译器,而是JAVA代码优化工具Soot的一部分。Soot和JODE一样,是纯JAVA开发的,有独立的JAR包,但是不能直接双击运行,而是像JAD一样在命令行状态下运行。
烟尘对环境变量的配置有严格的要求。通常,类路径应该如下设置:
Set CLASSPATH = % CLASSPATH %c:\ soot dir \ soot classes-2.1.0 . jar;。;
其中c:\sootdir\是放置下载的soot类包的路径,位于类路径的末尾。;代表当前目录,如果不加这个,Soot经常会报错找不到类。
DAVA用作烟尘的一个参数,其通常用法如下:
爪哇烟灰。main–f dava–d c:\ Java source Java test
注意,最后一个类名不需要加上后缀。类,因为它默认处理类文件,这个操作和上面提到的JAD参数效果一样。
DAVA采用进程优化的方法进行反编译,不同于传统的反编译思想,但对改变进程类的加密方式有独特的反编译效果。
以上三种工具各有优势,但效果都很好。经过测试,他们基本上可以完整反编译JDK自带的一些例程,然后不需要任何修改就可以重新编译成功,并且可以正常运行!