MyEclipse8.0中集成Java反编译工具
编JAVA大多都用Eclipse,没多大的必要下一个专门的软件,可以试试Eclipse的反编译插件 Jode Decompiler
专用的有DJ Java Decompiler和jad
由于JAVA语言安全性高、代码优化、跨平台等特性,从1995年5月由SUN公司发布后,迅速取代了很多传统高级语言,占据了企业级网络应用开发等诸多领域的霸主地位。
不过,JAVA最突出的跨平台优势使得它不能被编译成本地代码,而要以中间代码的形式运行在虚拟机环境中,这使得JAVA的反编译要比别的高级语言容易实现,并且反编译的代码经过优化后几乎可以与源代码相媲美。
为了更好地保护知识产权,避免本公司的智力成果轻易被人窃取,开发者有必要对反编译工具深入了解,以便有针对性地采取保护措施。
目前,比较流行的JAVA反编译工具有近30种,其中有三款堪称精品:
一、 应用广泛的JAD
在众多的JAVA反编译工具中,有几种非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java Decompiler、NMI’s Java Class Viewer和国产的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:\javasource –s .java -8 javatest.class
这条指令将当前目录下的javatest.class反编译为javatest.java并保存在c:\javasource目录里,其中的提示输出为中文,而不是Unicode代码。
二、 源码开放的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自带的一些例程完全反编译,然后不加任何修改可再编译成功,并能正常运行!
jad是java的反编译工具,反编译出来的源文件可读性不高。可惜用起来还算方便。
找到eclipse下的插件,叫jadclipse,
安装好之后,只要双击.class文件,就能直接看源文件,
包括jar包中的class文件,也可以直接反编译。
1.下载 jad
http://www.kpdus.com/jad.html#download
下载后解压。里面是个jad.exe的程序,我一般把他放在jdk的bin下面
2.下载 jadclipse2.06beta
http://sourceforge.net/projects/jadclipse/
按 eclipse的plguin进行安装,将jadclipse目录解压到eclipse/plugin目录下。
3.配置 jadclipse:
window>preferences>java>JadClipse中,
设置path to decompiler为jad.exe的全路径,如:d:/jdk/bin/jadjad.exe
在Directory for temporary files中指定临时文件的路径,这个默认就好。
在workbench>file associations中,
将*.class的编辑器,设为JacClipse。
4.反编译
找到一个class文件,双击打开,能看到编译后的源文件。
这位仁兄搞错了吧。
你说的是java的源代码,.net才叫反编吧。
首先你要确定你有jar包的源码
比如struts2.jar,你就必须有struts2的源代码,而仅仅只有struts2的
class文件是不够的
然后在项目的struts2.jar右键属性 - JAVA源代码连接 - 外部文件夹/外部
文件 都可以 - 确定
再展开struts2里面的类 就能看到代码了
MyEclipse如何设置性能可达到最佳
2、手动验证: 右键文件 - Myeclipse - Run Validation 。 二、设置工作空间的项目编码, 防止出现乱码:1、首先打开Window - Preferences - General - Workspace ;2、将"Text file encoding"选为"Other" - "UTF-8"。3、改变现有项目的编码的步...
MyEclipse8.0下运行总出现error exist in required project 工程名proce...
build.xml <?xml version="1.0" encoding="UTF-8"?>
MyEclipse8.0下运行总出现error exist in required project 工程名proce...
2011-08-11 在myeclipse8.5+flex4.0+hibernate 搭建好的情况下,发现无论... 2010-06-23 MyEclipse8 如何配置struts2 23 2011-01-05 配置SSH环境时有问题,myeclipse8.5+mysql+struts1.2+spring... 更多关于myeclipse8的知识 > 网友都在找: java编程问题 jar包 项目加入jar包 正在求助 换一换 回答问题,赢...
在myeclipse8.0中创建仓库成功,但把项目share project到SVN时出现...
在创建的本地仓库中找到 conf ——> svnserve.conf打开,将第19行的anon-access = read前面的 #去掉,然后将read改为write,什么意思呢?就是svn的默认配置是匿名访问的权限是只读的,你需要修改默认配置为可写入,或者在anth和passwd配置中配置你当前用户的密码和权限,并在svn配置对话框中将常规——...
怎么安装myeclipse8.5
1、下载myeclipse8.5的安装包。2、然后双击安装包,进入安装的步骤,就能进入安装过程,等这个进入条到了百分之百进行下一步。3、然后进入到等进度条完成以后进入下一步。4、点击next,然后进入进图条界面,然后进入的界面将复选框选中,不然不能点击下一步。5、点击下一步,最好是重新选择一个其它...
MyEclipse8.x为什么一打开就出现Updating indexes更新!如何关闭?_百...
1、去除不需要加载的模块 一个系统20%的功能往往能够满足80%的需求,MyEclipse也不例外,我们在大多数时候只需要20%的系统功能,所以可以将一些不使用的模块禁止 加载启动。通过Windows - Preferences打开配置窗口,依次选择左侧的General - Startup and Shutdown,这个时候在右侧就显示出了Eclipse启动时加载...
myeclipse8.6 32位在64系统下能使用吗
myeclipse8.6 32位在64系统下能使用的。现在大多数软件都是32位的,在64位运行不会有问题的。在myeclipse的菜单栏,通过Window->Java->installed JREs即可进入修改开发过程中支撑项目工程的JDK,操作过程如图6中序号表示,这里选择Name为jdk64的64位JDK,在项目JRE System Library下即可查看支撑的JDK信息...
myeclipse8.5启动报错!an error has occurred.see the log file noll...
方法1. 在"开始"-->"运行"--->打入"cmd"进入命令提示行后,再进入eclipse的安装目录,然后输入eclipse -clean即可(我用的这个方法 成功了)方法2. 删除configuration文件夹里除config.ini以外的所有文件,重启Eclipse
怎样将myeclipse里设置成utf-8
1.首先打开MyEclipse。2.选择窗口——》首选项,设置都是在首选项里边(preference)。3.找到“Gerneral”——》Editor——》Spelling设置,里边即可看到Encoding,选择自己需要的编码方式即可,默认为GBK,可以选择下边的“其他”,更换为UTF-8,应用确定即可保存了。4.这样就解决了怎样将myeclipse里设置成utf...
myeclipse8.0里面怎么整合struts2与spring2.5
这个整合和myeclipse版本没什么关系只要遵循一下步骤需要的包:commons-fileupload-1.2.jarcommons-io-1.3.1.jarcommons-logging-1.1.jarfreemarker-2.3.8.jarjunit-3.8.2.jarlog4j-1.2.14.jarmysql-connector-5.1.7.jarognl-2.6.11.jarserializer-2.7.1.jarspring-2.5.5.jarstruts2-core-2.0.6.jar--struts2-co...
平该愈风: java多个类文件可以使用Myeclipse来打包成jar包,首先打开Myeclipse创建一个java项目,然后把类文件导入到项目下,然后右键点击项目名,选择Export导出,选择jar包导出,然后选择导在哪个目录下即可.使用Myeclipse还可以导出javaWeb项目,按照war导出javaWeb项目.
冕宁县17535602830: 我下载了Eclipse3.5 和 MyEclipse8.0 请问大家怎么把MyEclipse插件安装到Eclipse上去.?
平该愈风: MyEclipse8.0和8.5不仅集成了Eclipse3.5,还集成了Java1.6,tomcat....所以,安装MyEclipse7.0以上版本,不用装Java,tomcat了,环境变量都不用配置.
冕宁县17535602830: myeclipse8.0配置什么版本的eclipse、JDK、tomocat - ?
平该愈风: Linux 下的 MyEclipse8 除了需要安装 JDK,其他的 Eclipse 和 Tomcat 都包含在 MyEclipse 中了 JDK 根据项目需要,如果是老项目,可以选择 java 的编译级别,新项目当然是版本越新越好了 Eclipse 是 3.5 Tomcat 是 6.0.13 数据库一般都是项目规定的,如果是个人决定的话,MySQL 5 应该是首选
冕宁县17535602830: 急...!MyEclipse8.5编辑jsp很卡 - ?
平该愈风: 在自己创建的工程名上右键,选择Properties》在打开的窗口中点击Java Build Path》单击Libraries选项卡,找到 JRE System Libraries->charsets.jar->Javadoc location 选中Javadoc location,再选择右边的Remove,更改成Javadoc location: (None),点击OK.
冕宁县17535602830: 使用MyEclipse编译出来的java文件怎样打包.jar文件为可执行文件?求详细步骤,包括过程中的选项 - ?
平该愈风: (不知道你用的是那个版本的,我这里以8.0英文版做介绍.不同的版本操作大体相同)1.在你要导出的项目上单击右键,在弹出的右键菜单里选择:Export…选项.2.在弹出的对话框里选择:,然后点击下边的Next;3.在弹出的对话框里,点击选...
冕宁县17535602830: 用MyEclipse8.0添加完spring和hibernate 后,对表进行映射,但是右键点击hibernate reverse engineering没反 - ?
平该愈风: hibernate reverse engineering是从数据库的关系表映射成JavaBean的吧?在我的记忆中,通过你建立好数据库后,通过MyEclipse是可以直接生成JabaBean和xml文件的.原理很简单,你进入到MyEclipse的DB视图后,打开你的数据库,进行一系统操作就完成了.具体怎样操作自己摸索吧,现在很多企业不用MyEclipse了,因为里面安装了太多的插件,太慢,而是直接用Eclipse,再根据需要安装插件.
冕宁县17535602830: MyEclipse 8.0 与 Eclipse + Tomcat + JDK搭配版本??
平该愈风: MyEclipse只是一个IDE而已...Tomcat是服务器.....在MyEclipse可以设置...JDK是你的电脑的Java的版本.. MyEclipse8.0可能合并了这些..就是你安装8.0的时候就安装了他们..
冕宁县17535602830: MyEclipse8.0中怎样安装JBPM插件??
平该愈风: 注意JBPM插件的目录,一般在JBPM安装目录,或者在压缩包的install/src/gpd目录下.需要将zip文件进行解压.使用add local方式进行插件安装,选择时去掉带source选项的. PS: 注意增加JBPM的lib. 为了让Eclipse能够进行xml编辑的提醒,最后添加相应的xml分类.模板文件在src下. 添加方法:windows->preferences->Myeclipse->Files and Edits->XML->XML Catalog->Add,选择file system,浏览选择模板所在位置,点打开,点OK,完毕.
冕宁县17535602830: MyEclipse 如何最佳设置 - ?
平该愈风: MyEclipse 如何最佳设置 作为企业级开发最流行的工具,用Myeclipse开发java web程序无疑是最合适的,java web前端采用jsp来显示,myeclipse默认打开jsp的视图有卡顿的现象,那么如何更改jsp默认的打开方式,让我们可以进行更快速的jsp...
冕宁县17535602830: 为什么在Myeclipse8.0中导入jar包之后没有出现Referenced Librarues文件夹 - ?
平该愈风: 你没有导入有com.microsoft.jdbc.sqlserver.SQLserver这个类的包.你自己检查下你导入的JAR包里面是不是没有这个类.