学习和使用c# 2年多以来,陆续的学习一些程序集和安全等的维护保护措施,但一直是自己些个小东西玩一玩,近日开发一套给雀巢使用的订单系统,并且考虑将其作为后续物流系列产品的可组装部件,因此,决定在本系统上,多考虑些安全和版权相关的技术手段,目前就再当前正在实施和已实施的技术手段简记如下:
1。部件(DLL)的模糊处理
2。强名称和数字签名
3。License认证

以下简单说明各项应用。

1。部件DLL的模糊处理:
这个不用多讲了,因为要形成积累和自己的产品系列,免不了就有很多部件是开发成克复用的DLL了,那使用和卖出去的时候,当然不能一点不处理阿,那还怎么卖东西呢,更何况是在copy最厉害的China。所以呢,各个DLL开发好后都进行了模糊处理,并且在相关DLL引用中添加了实际不必要的一些方法和操作。

预计效果:防止一些很菜鸟的用反编译工具直接反编译。

2。强名称和数字签名
每一个DLL都使用密钥签名和注册强名称。当然了,分发的时候密匙是不会给出去的。

预计效果:防止黑客或篡改爱好者通过修改程序内容改变特性或放置病毒等,也防止被部分DLL破解。一旦破解者想通过破解来消除一些东西则其必须反编译所有文件。

3。License 认证
系统分为注册版和试用版,登陆使用必须输入LicenseKey 。License功能特性基本如下:
For a simple license check component ,fit the following features:

1. a license generator tool for PAS ,which will generate the license key
2.license key based on : Company name ,EXE system purchase/version/description info ,license type (inlude registed and evaluation)
3.it can only provide license management for a runable system ,but not only a component(eg:DLL)
4.default evaluation usable days = 30 days.
5.just can usable under Windows system
6.will design this component as a reusable DLL

预计效果:按照公司或组织授权License ,只有获得正确License的用户才可使用。

这3种方式当然也是要一起用材有效果的,比如如果License认证的DLL没有签名和模糊的,就相对更容易被破解了。

有同事认为这些加上去没必要,小公司,不成名的产品,有什么必要呢?
我却不完全赞同,小公司,不成名的产品,的确,但我们应该为成为大公司和明产品作积累和尝试。而且这些防护措施还有一点就是:客户用我们的产品,如果想升级或改动,最好是找我们,哈哈,这就是钱啊~~~~~


ok ,到这里先,中午了,吃饭先