从Together的破解看java包的安全性
首先,我对Java和.NET都不是很熟悉,所以只能泛泛而谈,如有不妥请指正。
问题是这样引出来的,购买了最新一期的"程序员"杂志,安装了Together软件。在寻找注册码的时候,无意中在“http://www.java.com.cn/showtopic.asp?TOPIC_ID=8117&Forum_ID=33”找到了解决方法。
解决方法很新颖,写一段Java程序(伪造一个系统类,我猜的),编译并注入Together附带的jar文件中。然后修改Together的配置文件,指定License使用Localhost(估计是指向了刚才的代码)。于是,一切OK了。
就这么轻易的,Borland提供的正版Together软件(不知道是不是完全版)就被破解了。
高兴之余,也很是感慨,Java包居然这样容易被修改,插入新的代码!于是想起刚刚看完的《Applied Microsoft .NET Framework》对.NET里的Assembly(相当于Java中的Package)的安全保护,需要使用私钥进行加密,并用公钥解密的。如果任何人对于Assembly作了任何的修改,CLR将拒绝装载该Assembly!
如果以前对.NET这样做不是很不理解的话,想在算是领悟了。这里把自己的心得贴出来,供各位商讨。