这有个sun出的混淆器,可以加密class文件
http://www.sun.com.cn/download/jade/Setup.class

解决方案 »

  1.   

    上面的那个是命令行工具。还有一个比较简单,但混淆的程度不高的免费工具是1stBarrierMINI.zip 可到 http://www.jproof.com 下载,如果你肯出钱,就可以得到更好的版本了。其实JBuilder已提供了一个简单的混淆器。在Project项里你可以设置。
      

  2.   

    我也知道用混淆器"可以"做到这点,对于混淆器是否只能做到:   但当且仅当class文件数目n>1, 且class内为全非public的方法(即只为内部调用而非公开的方法,for example,当你写多个Bean时, 可以用混淆器吗?)才有用?混淆器的原理也许是:将class内的方法名用其他的一些代号进行代替而已.
    敢问各位,是否同意我的分析?
      

  3.   


    是的,只能处理非public的变量和方法。比如private or package的方法变量都可以混淆。所以我的方法是分割业务,做一个public的类,调用同一个包里的多个package范围的类。这些类只能为包里的类访问,只被定义的public的那个类来访问,所以公开一个类而隐藏真正实现功能的多个类。
      

  4.   

    http://www.condensity.com
    可以当试用版
      

  5.   

    看看这篇文章吧
    "运用加密技术保护Java源代码"
    http://www-900.ibm.com/developerWorks/java/l-secureclass/index.shtml
      

  6.   

    有时会有些CLASS无法反编译,我也不知道为什么,还没时间研究……有个方法可以不用混淆器——大量使用中文来命名,这样反编译出来是一堆UNICODE,谁都看不懂,哈哈
      

  7.   

    simoncn(早睡早起精神好)提供的资料也许值得大家借鉴,至于成效如何,我的partner也正在尝试,若是有最新的结果,我们会给大家一个说法;而ENDER的方法我们也尝试了一下,所得的效果也还可以,只是到时自己用起来也比较麻烦,在此也谢谢大家的参与与继续参与!
    另:这个问题并不是我们在做项目的时候碰到的问题,只是在闲聊时提出的问题,也许也值得大家的关注吧.
      

  8.   

    to ender(ender) :UNICODE是可以用native2assic来转化的还是每用的
    ========================================
    有时会有些CLASS无法反编译,我也不知道为什么,还没时间研究……有个方法可以不用混淆器——大量使用中文来命名,这样反编译出来是一堆UNICODE,谁都看不懂,哈哈