C#开发的dll,加密授权方案

LeaderTech_NJ 2013-07-16 11:30:09
使用C#编码,把一套算法写成了dll。
希望能够加密授权别人使用,简单来说:经过授权的可以使用,没经过授权的会过期。
具体功能:
1 可以试用一段时间,过期就不能用了,必须联系作者获取一个授权(硬件或者一串码)
2 不能通过简单的修改系统时间就被破解
3 网络注册形式,自动搜集比如用户机器mac地址和是否注册等信息。用户未经授权,而且还在使用,用户机器只要一上网就会被发现。经过确认后能够远程锁死,侵权用户将无法继续使用。

以上功能,怎么实现?求个思路,技术上的,或者现成的方案都可以。不要太贵,动则几万块的加密方式就算了 呵呵
...全文
729 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
请叫我卷福 2014-06-06
  • 打赏
  • 举报
回复
引用 8 楼 fanrong1985 的回复:
[quote=引用 7 楼 xiaozhi_5638 的回复:] 如果该dll一定要在联网的情况下使用 完全可以在服务端存储客户端dll验证状态 每次使用的时候联网查询服务器 判断该用户是否授权、是否试用期、是否已过期等等 然后决定该客户端dll是否可用 这样的话 完全不用在客户端(注册表)存储任何信息 授权的方式 也就更新一下服务端数据库中的信息
根据最近网上看到的思路,决定改进下cs产品的加密方式: 原来是软加密+硬加密:软加密用软件识别机器码,提交管理员,管理员处理后给出注册码=永久使用 硬加密采购的HASP圣天狗 现在改良采用软加密+网络授权:软加密不变 网络授权机制:用户只要上网,则自动判断该产品使用是否经过授权。如果已经授权,继续使用。如果查出是未授权,软件自动关闭 [/quote] 是的 联网授权才是相对更安全的 其他都相对容易被破解
LeaderTech_NJ 2014-05-27
  • 打赏
  • 举报
回复
引用 7 楼 xiaozhi_5638 的回复:
如果该dll一定要在联网的情况下使用 完全可以在服务端存储客户端dll验证状态 每次使用的时候联网查询服务器 判断该用户是否授权、是否试用期、是否已过期等等 然后决定该客户端dll是否可用 这样的话 完全不用在客户端(注册表)存储任何信息 授权的方式 也就更新一下服务端数据库中的信息
根据最近网上看到的思路,决定改进下cs产品的加密方式: 原来是软加密+硬加密:软加密用软件识别机器码,提交管理员,管理员处理后给出注册码=永久使用 硬加密采购的HASP圣天狗 现在改良采用软加密+网络授权:软加密不变 网络授权机制:用户只要上网,则自动判断该产品使用是否经过授权。如果已经授权,继续使用。如果查出是未授权,软件自动关闭
poloyzhang 2013-07-16
  • 打赏
  • 举报
回复
你可以利用CPU id , 硬盘串号.网卡MAC 和当时授权的时间生成一串机器码. 然后传到网上和你的当时注册的相比对就OK了.到期自动无法使用.
shawn_yang 2013-07-16
  • 打赏
  • 举报
回复
c#的就别想了,反编译太容易了
海洋夜之星 2013-07-16
  • 打赏
  • 举报
回复
这个可以简单处理也可以复杂处理呢,应该要在dll刚刚被载入时候做一些判断处理,具体的逻辑可以根据你自己的需求制定
  • 打赏
  • 举报
回复
这个有点悬,微软都免不了被人破解盗版
请叫我卷福 2013-07-16
  • 打赏
  • 举报
回复
如果该dll一定要在联网的情况下使用 完全可以在服务端存储客户端dll验证状态 每次使用的时候联网查询服务器 判断该用户是否授权、是否试用期、是否已过期等等 然后决定该客户端dll是否可用 这样的话 完全不用在客户端(注册表)存储任何信息 授权的方式 也就更新一下服务端数据库中的信息
请叫我卷福 2013-07-16
  • 打赏
  • 举报
回复
至于授权方式 可以通过随机生成一个“申请码” 用户只有将该“申请码”发送给作者 授权后返回对应的“注册码” 之后用户使用该“注册码”激活dll 返回“注册码”和验证“注册码”使用相同的算法 这个也只是一般授权 楼上面也说过 都能破解的
请叫我卷福 2013-07-16
  • 打赏
  • 举报
回复
注册表保存是否授权标志 以及已试用时间 每次使用dll时都去检测

110,553

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧