JAVA反编译工具精选(转) | |
发起人:lish 回复数:0 浏览数:15681 最后更新:2008/8/2 14:37:55 by lish |
选择查看 | 搜索更多相关主题 帖子排序: |
lish 发表于 2008/8/2 14:37:55
|
JAVA反编译工具精选(转) (来自:http://dxlmm.spaces.live.com/blog/cns!24ac103e1d45df04!375.entry) JAVA不用介绍了,因为太火了。最近学习applet在网上找了些小游戏,无奈没有源码,就顺便查了下java得反编译方面得东西,原来知道有个反编译,反反编译,现在既然又有反反反编译,这个矛和盾,估计要伴随知识产权保护下去。 目前,比较流行的JAVA反编译工具超过30种,其中有三款堪称精品: 二、源码开放的JODE JODE是全球最大的开源项目网站Sourceforge.net的成员,不要以为源码开放就小瞧它,在所有的JAVA反编译器中,JODE的反编译效果是最好的,尤其是对付一些常见的加密手段,例如混淆技术等,更是出类拔粹。 JODE本身也是纯JAVA开发的,最近越来越多的JAVA反编译软件也选择JODE来做它们的核心引擎,例如JCavaj Java Decompiler、BTJ (Back To Java)、jEdit"s JavaInsight plugin等。 JODE是一个可运行的JAR文件,在windows环境下双击即可运行。 需要特别说明的是,JODE不是通过常规的Open->File的方式来加载JAVA编译后的类文件(*.class)或是类包(*.jar)的,而是通过在Options菜单中的Set Classpath来实现的,单独的类文件可以将它的上一级目录作为Classpath输入,然后再选择Reload Classpath即可。 新加入的类包或是类的名字会在左侧窗口出现,双击类包名可以展开目录树结构,双击需要反编译的类名则在右上角的窗口中直接显示反编译后的源代码。 三、独树一帜的DAVA DAVA不是一个独立的JAVA反编译器,而是JAVA代码优化工具Soot的一部分。Soot和JODE一样是纯JAVA开发的,也是一个独立的JAR包,但却不能通过双击直接运行,而是象JAD一样在命令行状态运行。 Soot对环境变量的配置要求非常严格,通常情况下要对CLASSPATH做如下设置: Set CLASSPATH=%CLASSPATH%;c:\sootdir\sootclasses-2.1.0.jar;.; 其中的c:\sootdir\是下载的soot类包放置的路径,CLASSPATH末尾的.;代表了当前目录,如果不加上这个的话Soot经常会报一个找不到类的错误。 DAVA是作为Soot的一个参数使用的,通常的用法如下: Java soot.Main –f dava –d c:\javasource javatest 注意最后的类名不用带.class后缀,因为它默认是处理class文件,这个操作与前述的JAD的参数效果相同。 DAVA采取了流程优化的方式进行反编译,与传统反编译思路不尽相同,但却对改变流程类的加密方法有独特的反编译效果。 上述的三种工具各有千秋,但效果都非常不错。经测试,它们基本上都可以把JDK自带的一些例程完全反编译,然后不加任何修改可再编译成功,并能正常运行!
|