JAVA反编译器
刚才同事告诉我说他有JAVA的反编译器,我不信,于是我使用JDK1.3编译了一个由JDK提供的范例,然后将软程序删掉,只留下.class文件。同事给了我一个jad.exe,然后告诉我在DOS窗口下运行,后面跟.class文件。然后我晕倒!!!
jad.exe将.class文件反编译回JAVA源代码,所有的变量,函数,并且连注释都保留了下来!我将反编译后的JAVA源代码进行编译运行,没有一点问题!
我当时的确被震惊了。这意味着使用JAVA编写程序将得不到版权保护。任何人都可以将你的字节码文件反编译成JAVA源代码!同时告诉我说目前有两种解决的办法:最可靠的办法是提供自己的Class Loader,换句话说就是将字节码文件加密,由自己写的Class Loader在将字节码提交到虚拟机运行前进行解密。这种办法十分复杂,代价昂贵。另外一种办法是使用第三方提供的编译工具,它在产生的字节码文件中插入大量的垃圾代码,然后使用JUMP指令跳过这些垃圾代码。这样被反编译的原文件将是难以阅读的。但问题是目前出现了很多的JAVA反编译工具,其中有的可以去除这些垃圾代码。
JAVA有前途吗?谁来保护我的代码?