2012-08-01 38 views
9

我已经制定了一个程序,需要在出售给客户之前进行许可。由于我不确定,至少会让我获得商业授权软件的成本,所以我不想买一个。.Net实时软件许可

所以我在寻找咨询如何实现具有以下逻辑许可功能:

  • 所有许可证密钥是在服务器端验证,每次应用程序启动(无许可信息存储在使用侧除了许可证数)。
  • 只有一个应用程序在同一时间运行一个许可证密钥。

我不知道的是如何保护我的程序免受简单的反编译和反汇编,以及删除一个调用来检查许可证?或者让自己的服务器在每个许可证上做出响应。这种安全性通常如何?

我已经搜索了免费的SDK或类似的东西,但找不到任何东西。 我会非常感谢您的帮助! P:我并不渴望使系统“坚不可摧”,但我希望得到的保护花费比开发该程序副本5.10美元更加昂贵。

P.P.S:抱歉我的英文不好。

+2

你是否认为这意味着当他们有一个工作的Internet连接您的用户只能启动应用程序?这可以排除很多笔记本电脑/移动用户以及任何连接不畅的人。另外,你到目前为止尝试过什么?你的问题表明缺乏研究,而这往往导致问题被封闭或忽略。 – 2012-08-01 11:00:14

+3

http://msdn.microsoft.com/en-us/magazine/cc164108.aspx说明如何强烈地命名组件会阻碍组件篡改。对于Web服务,您应该考虑在接受响应之前使用必须由客户端验证的服务器证书。但是,这会阻止所有离线用户使用它。 – Ramesh 2012-08-01 11:25:24

+0

对不起,认为这个问题很明显。到目前为止,我已经写了一个webservice和一个客户端来检查许可证 - 它可以正常工作,但是关闭此类防御措施非常简单...因此,我问如果有人能够就如何防范这一问题提供建议。只要我的应用程序是在线游戏自动化 - 我的用户都必须有良好的互联网连接,所以它不会成为实时检查的问题。模糊处理是好的,但混淆后我仍然可以在调试赶上事件和跳过去...... – CodeDemen 2012-08-01 11:26:45

回答

2

我不知道的是如何保护我的程序免受简单的 反编译/反汇编,只是删除呼叫检查许可证? 或者让自己的服务器在每个许可证上都做出响应? 这种安全性通常如何?

您正在混淆许可和混淆。为了防止上述情况,您需要使用混淆器来混淆前缀和dll。

由于我不确定,它至少会为我带来至少 商业授权软件的费用,我不想买一个。

恕我直言,你在专注和花时间在你的实际软件上比从头开发许可方案要好得多(重新发明方向盘)。

如果确实开放付费解决方案,请参阅CryptoLicensing(用于授权和复制保护)和Crypto Obfuscator(用于混淆和代码保护)。

免责声明:我为LogicNP Software开发了上述产品。

+0

IMO,混淆不会帮助,因为人们通过看汇编代码修补过去的前男友。混淆只是要让它有点难以明白我在写一个非常类似职位的逻辑 – Ramesh 2012-08-01 11:07:40

+0

但你快。完全同意这一点,没有人应该重新发明轮子,尤其是在安全领域 – 2012-08-01 11:07:47

+0

是的,没有什么是100%防裂,但一些保护好那么没有 – logicnp 2012-08-01 11:08:42

1

(很抱歉不能在其他人的帖子???评论)

这取决于你的应用程序在做。

我目前面临与您同样的问题。我正在寻找一个登录系统,只需获取并比较数据库中的内容。如果不存在,请不要启动应用程序。不是我需要更多,应用程序依赖于我的数据库,没有它,它是无用的。

然后,他们可以花几个小时搞清楚基于他们所看到的查询或几乎重写我的整个产品什么我的数据库中的模样。我将在应用安全上花费很少。我希望得到的唯一保护不是显示我的服务器数据。

+1

这里的解决方案是非常简单的 - !你需要写一个带有认证支持的Web服务,但不能直接向你的数据库发送查询,然后用你的应用程序通过许可证密钥(或登录密码 - 如你所愿)调用web服务和g从它的反应 - 它大约2类更多的你写,并保证你没有人会获得访问你的数据库数据。 – CodeDemen 2012-08-01 11:40:01

+0

@CodeDemen你会介意给我一个很好的教程/关于这个的解释吗? – AmazingDreams 2012-08-01 11:53:47

+1

没问题! [WS Auth示例](http://www.codeproject.com/Articles/4398/Authentication-for-Web-Services-using-SOAP-headers)和[WS DB Connectivity](http://www.c-sharpcorner .com/uploadfile/raj1979/database-connectivity-using-webservice /) – CodeDemen 2012-08-01 12:02:22