程序的反编译问题

        在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请搜索疯狂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公司能在这一方面能想一点办法,否则,安全性很难讲了。对自由软件来说,这非常的好,但对于一个公司来说,这就可能有点不好了,谁想让自己的软件能让别人看见源代码呢?

  疯狂Java培训的课程采用针对性培养,全面提升学员就业能力,重点加强训练职业素质。老师辛勤的讲解,让学员充分感受Java的魅力,充分激发每个学员对于编程的热爱,让学员在半年的时间内掌握8-10万的代码量,成为真正的技术高手,疯狂Java采用企业全真模拟开发训练,迅速积累项目经验。让学员迅速获得其他人需要花费两年才能获得的工作技能,无忧就业!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值