Java程序的反编译问题(转)

很长一段时间以来,很多的网友都给我来信说,怎么才能将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公司能在这一方面能想一点办法,否则,安全性很难讲了。对自由软件来说,这非常的好,但对于一个公司来说,这就可能有点不好了,谁想让自己的软件能让别人看见源代码呢?[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9650775/viewspace-923588/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/9650775/viewspace-923588/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值