msoffice 还可以反编译呢...

解决方案 »

  1.   

    有几种技术可以“模糊”Java类文件,使得反编译器处理类文件的效果大打折扣。然而,修改反编译器使之能够处理这些经过模糊处理的类文件并不是什么难事,所以不能简单地依赖模糊技术来保证源代码的安全.
       
       Java运行时装入字节码的机制隐含地意味着可以对字节码进行修改。JVM每次装入类文件时都需要一个称为ClassLoader的对象,这个对象负责把新的类装入正在运行的JVM。JVM给ClassLoader一个包含了待装入类(比如java.lang.Object)名字的字符串,然后由ClassLoader负责找到类文件,装入原始数据,并把它转换成一个Class对象。  我们可以通过定制ClassLoader,在类文件执行之前采用DES加密算法修改它。这种技术的应用非常广泛——在这里,它的用途是在类文件装入之时进行解密,因此可以看成是一种即时解密器。由于解密后的字节码文件永远不会保存到文件系统,所以窃密者很难得到解密后的代码详细技术请见:
    http://www-900.ibm.com/developerWorks/cn/java/l-secureclass/index.shtml效果还是不错的!
      

  2.   

    通过模糊实现安全性
    http://www-900.ibm.com/developerWorks/cn/security/s-obs/index.shtml
    Java 代码反编译和模糊处理的完全指南
    http://www-900.ibm.com/developerWorks/cn/java/j-obfus/index.shtml