C# 如何防止未经授权的用户?

C# 如何防止未经授权的用户?,c#,piracy-protection,C#,Piracy Protection,我通常一点也不担心软件的盗版或拷贝保护,但我现在发现自己处于一个独特的境地。我为一家特定的电脑维修公司开发了一个电脑维修应用程序。最近,一位员工在公司工作了一个月后就决定辞职,并带走了我的工具集。然后她在家里开了一家电脑维修公司,用我的工具集来修理电脑。我并不特别关心这个人,因为我们的律师已经在紧追不舍了。我担心的是,将来我可能不会发现这些情况 我想要的是一些方法,以保护和/或电话回家,而不是太过宽容的想法。我讨厌软件太受保护,变得烦人或者更糟,一文不值。此应用程序永远不会离开计算机维修公司的墙

我通常一点也不担心软件的盗版或拷贝保护,但我现在发现自己处于一个独特的境地。我为一家特定的电脑维修公司开发了一个电脑维修应用程序。最近,一位员工在公司工作了一个月后就决定辞职,并带走了我的工具集。然后她在家里开了一家电脑维修公司,用我的工具集来修理电脑。我并不特别关心这个人,因为我们的律师已经在紧追不舍了。我担心的是,将来我可能不会发现这些情况

我想要的是一些方法,以保护和/或电话回家,而不是太过宽容的想法。我讨厌软件太受保护,变得烦人或者更糟,一文不值。此应用程序永远不会离开计算机维修公司的墙壁,因为他们不进行现场维修,我认为我可以利用这一优势


关于如何将使用限制在公司内部,我确实有一些想法,但我想听听其他人是如何处理这种情况的。目前,我一直在检查网络中的特定服务器或ip范围,但还有其他人有其他想法吗?

首先,我认为你必须决定你要防范的是什么,因为游戏开发商多年来已经了解到,你无法阻止ppl复制你的应用程序/游戏

假设你想再次保护自己免受上述senario的攻击,我可以想出2个好的解决方案。你的应用程序在正常使用过程中“始终”或正常访问网络

呼叫总部:
通过公司网络或互联网,将应用程序电话接入某些服务器软件。让应用程序向服务器发送一些信息,并让它使用OK或die命令进行响应。 为了防止有人窃取服务器,对服务器应用程序(如果安装在公司)进行硬编码,以接受1台物理服务器(即要求机器具有X mac、Y CPU串行、L主板串行)

AppServer发送验证
既然您考虑从trafic嗅探网络是可能的,但最好有一个服务器部分,以周期性的间隔发送验证码(即一些带有时间戳的公钥加密消息)。 取决于X服务器不时发送一些网络流量,这似乎不合逻辑,并且可能会产生问题(即服务器被删除,但没人知道您的应用程序依赖它来响应ping)。
另外,在网络中ping XXX.XXX.XXX.XXX和som MAC地址上的花费也很容易伪造。

我最近一直在研究使用开源Rhino许可解决方案-这似乎是一个非常复杂的解决方案,源代码中包含了一个示例应用程序,您可以根据自己的需要进行更改-例如。如果您不想锁定用户,您不必将其锁定。

我还想澄清,如果用户正在盗版,我并不打算将其锁定。更像是意识到它被盗版,以及它所使用的计算机的一般信息。这是我将报告的数据以及版本号等。