C#应用程序部署、安全性和复制保护?

3
我已经完成了制作C#应用程序并使用安装项目部署的工作。当应用程序被安装后,它会在“Program Files”(或任何用户选择的)文件夹中创建文件和文件夹。
问题是关于该应用程序的安全性。如果有人复制了安装文件夹,然后在他的机器上运行该应用程序,则该应用程序可以正常运行。应用程序只能在使用安装文件安装在PC上时才能运行。但是,即使将安装文件复制到新PC上,然后运行“exe”,该应用程序也会执行。
我想防止这种情况发生。对此主题的任何帮助都将不胜感激。 我知道有许多方法可以实现此目标,请指出其中一些。

2
请进一步解释,为什么您想要要求用户运行设置?这样做更安全/受保护吗? - Anders Forsgren
以下的信息对您有用吗?如果是的话,您可能想要点赞或接受其中一个可用的答案。 - Pablo Romeo
3个回答

3

好的,请仔细听!

当您使用安装程序项目进行安装时,请在自定义操作中添加一个程序集,它将在regedit中创建注册表项。

并在项目代码中包含初始行,以检查注册表,如果找到了该注册表,则继续操作,否则它将显示错误消息,请安装该应用程序。这一定会奏效。


2
虽然不是绝对可靠的,因为某些人可以导出/导入注册表项。除非该项与特定机器进行了哈希处理。 - Michael Paulukonis
我知道这并不是万无一失的...但客户对这种安全级别感到满意。我仍在努力使应用程序更加安全。 - Sunny

0

运行安装程序将在注册表中留下一个键,就像所有其他应用程序一样。没有必要创建额外的键。

遍历已安装的应用程序,查找您的应用程序,如果不存在,请通知用户运行安装程序。

您应该查看注册表信息来执行此操作。这是一个不错的实现,可以返回是否未安装、仅为用户安装还是为所有人安装:

http://mdb-blog.blogspot.com.ar/2010/12/c-check-if-app-is-installed-for-all.html

注意:这不是实现复制保护的方法,只是为了验证您的安装过程是否正确运行。


0

您可能希望将应用程序机器锁定,以便仅在特定机器上运行。通常使用机器锁定或激活许可证来实现此目的。

请查看CryptoLicensing,该软件提供了这种功能。

免责声明:我是CryptoLicensing的开发者LogicNP Software的员工。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接