网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Javac--Java编程语言编译器.
.学习J2SE过程中的30个基本概念.
.Struts Menu中基于角色的权限管理.
.2005年度Java十大新技术和新产品.
.JDBC入门系列专题讲座.
.以Byte读取文件时测试是否达到末.
.用JDring设置类似cron的日程提醒.
.创建本机、跨平台 GUI 应用程序.
.怎样拿下SUN公司的SCJP认证?.
.Java开发工具与开发环境问答.
.巧用JAVASCRIPT代码限制文本字节.
.Java学习从入门到精通(1).
.如何编写一个JAVA的队列类?.
.小TIP:Java里的时间比较.
.使用Java生成Pdf文档.
.java缓冲区溢出编程心得.
.提升EJB性能的12招.
.对J2EE项目的一些体会.
.说说Java的args 大家可能没有注意.
.两步学会Java Socket编程.

Java程序的反编译问题

发表日期:2008-1-5


很长一段时间以来,很多的网友都给我来信说,怎么才能将Java的Class文件反编译成为Java文件。或者说明白一点,就是想看看人家的源代码,问我有没有办法,这确实是一个很难的问题。但也并不是没有解的。

我们知道,Java程序适合于在各种操作平台下使用,实际上,它的工作原理就是解释型的,打个比方,就似乎每一台机器上面都有一个浏览器,我编译好程序的Class文件,这个文件就相当于一个Html文件,这个文件能在每一台机器上面浏览。但假如Win9X/2000的系统用IE,而UNIX的Netscape,Linux则用另外一种浏览器,这些机器都能看到我编写的这个HTML文件,虽然浏览时的界面不是完全相同,但却和各自的系统的样子差不多。它们对这个HTML文件的读取是解释型的,读多少,就显示多少。而Class文件,也就是这样一种文件。它在每一种系统种的存储格式都不一样。与各自的系统有关,但每个系统都熟悉。因为没有系统中都有相当于浏览器的JDK解释程序。而像可执行程序,即我们常见的exe文件,则是直接的二进制代码,这就与机器底层有关了,所以不同的操作系统的exe是不能混合用的。所以在Win9X/2000中,Class不是以直接的二进制存储的,它是介于文本文件与二进制文件之间的一种解释型。

既然Java程序是一种这样的程序,而现在它又没有什么加密的功能,因此,它是非常轻易反编译的。可执行文件exe的反编译,一般只能反编译成汇编格式的文档,但是,Class文件则可以反编译成为Java文件,让人直接看到原始代码。JDK的工作原理我不知道,但它编译时将解释代码,JDK版本号等几乎所有的东西都编译进了CLASS,这实在是出乎我的意料之外了。

也该回答网友的问题了,将class 文件反编译成 java文件怎么弄,很简单,到网上下载一个反编译软件就可以了。这些软件的使用都非常的简单,不用学,一看就会。一般的下载软件的站点都可以下载得到。并且这一方面的软件不止一个,笔者曾经就用过的一个这样的反编译软件,这个反编译软件非常的厉害,我做过实验,所用的几个例子,都被它反编译出源代码来了,包括Application和Java Applet文件都能反编译,源代码之间的说明等解释内容竟然也反编译出来了,反编译后的源代码文件与我写的Java程序源代码文件几乎一模一样,效果非常的不错。只是不知道它反编译大型程序的能力如何,这倒没有试过。假如要反编译的软件不大的话,那绝对没有问题。只是请各位网友原谅,我不能乱讲话,否则就有官司打了。还麻烦各位自己去搜索一下了。这些反编译软件都是国外产的,国内没有,但许多国内站点都可以下载得到。

真的希望Sun公司能在这一方面能想一点办法,否则,安全性很难讲了。对自由软件来说,这非常的好,但对于一个公司来说,这就可能有点不好了,谁想让自己的软件能让别人看见源代码呢?

上一篇:VJ6.0的使用方法(1)概述、VJ6的获得与安装 人气:522
下一篇:Tomcat设置类似IIS的访问密码 人气:901
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐