http://www.cnblogs.com/savagezone/archive/2011/07/26/2117245.html
几天前,我在Google过程发现叫一个“涟漪勇”网站有一个非常酷的应用:Silverlight工作流图形设计器,找遍国内我还从来没见过这么专业的产品,简直让我惊呆了,地址:http://www.cnblogs.com/rippleyong/archive/2011/07/15/2107560.html#2160786
后来我继续Google,又发现了一个完全一样的东西,是几个德国人开发的:
http://www.silverdiagram.net/Projects/SilverDiagram.aspx
我发了封邮件给这几个德国人,问他们“涟漪勇”是否是他们的成员,得到的答复是No,He is a thief.
我明白了,要么是“涟漪勇”是小偷,要么这几个德国人是小偷,真正的答案,我想大家都知道。
正好我一个朋友也在开发一个蛮酷Silverlight应用,我提醒他最好还是防范一下代码反向工程,他说没问题的,偷去的东西也未必能产生效益,况且代码还在改进阶段,bug还一堆,偷去也没有什么价值,我无语了。或许他看到我这篇文章后会注意一下。
我们来列举一些代码的防范手段吧,欢迎补充。
[客户端代码]
客户端代码指Html\Javascript代码,说实话包括JS加密,客户端没有什么实质性的防范手段,只能自己安慰自己。
[禁止右键、禁止查看源代码、禁止另存为]
<!--禁止复制-->
<SCRIPT LANGUAGE=javascript>
function click() {
alert('禁止你的左键复制!') }
function click1() {
if (event.button==2) {alert('禁止右键点击~!') }}
function CtrlKeyDown(){
if (event.ctrlKey) {alert('不当的拷贝将损害您的系统!') }}
document.οnkeydοwn=CtrlKeyDown;
document.onselectstart=click;
document.οnmοusedοwn=click1;
</SCRIPT>
<!--禁止复制-->
[禁示另存为]
在你要保密的网页中加入以下代码:
<noscript>
<iframe src="*.htm"></iframe>
</noscript>
现在如果有人想保存你的网页,等他保存到一部分的时候IE就会帮你告诉他,无法保存该WEB页,并将己保存的那部分文件删除。
[使用微软的脚本编码器Script Encoder]
我还在ASP时代的时候用过这个玩艺,问题多多,往往为了加密把自己的页面都搞得乱七八糟,慎用阿。
[Js加密]
网上能搜出很多,举几个:
JS加密解密大全:
http://blog.csdn.net/aosnowasp/article/details/4305431
常用JS加密编码算法:
http://www.blogjava.net/hadeslee/archive/2007/11/16/160544.html
[服务器端代码加密]
这里有篇文章,可以先看看:
Reflector保护方法初探(转)
http://www.cnblogs.com/guodapeng/archive/2008/04/13/1151306.html
[常用代码保护工具]
1.Dotfuscator Community Edition
我曾在VS2005下试用过,混淆后的Dll基本使用正常,但有的地方会莫名出错,不知道是使用方法不对还是其它原因。
2.XeonCode
据说混淆的效果比Dotfuscator好,可以加入花代码,也可以打包成native代码,这样根本反编译不了了。
XeonCode Postbuild可以混淆加密、优化,打包文件。
3.MaxtoCode
这个东西是国人的产品,在不损坏.NET MetaDta的前提下将 .NET IL代码进行加密封装,使 .NET IL代码根本无法被反编译,从而彻底地保护您的知识产权和劳动成果
。
4.DNGuard HVM
也是国人开发的。
5. IntelliLock/.NET Reactor
6. Remotesoft的Salamander
7. SmartAssembly
大名鼎鼎的red-gate.com开发的产品,无人不知的.NET Reflector就是这个公司的产品,又卖锁,又卖万用开锁器,有够贱的了。