首次安装后如何禁用exe文件?

时间:2010-09-03 09:12:46

标签: c# .net vb.net dll exe

有人知道解决方案吗?我创建了我的软件的exe文件。首次安装后我必须禁用exe,因此无法再次运行,因为当有人从我这里购买软件时,他们只能安装一次。

3 个答案:

答案 0 :(得分:2)

要做到这一点,你需要在某个地方存储某些东西,这可能是:

  • 文件
  • 注册表项
  • 对您拥有的Web服务的调用,该服务存储该计算机的唯一标识符,并在后续安装尝试时进行检查(注意:如果您选择此方法,则必须清楚明了地与您的用户保持联系,这就是您正在做的事情)。

请记住,确定的用户将能够规避文件和注册表方法,并且很可能是Web服务方法。前两个使用诸如Process Monitor之类的东西来识别您正在写入的文件/注册表项并清除它们。对于后者,通过使用Fiddler之类的内容来识别您正在进行的Web服务调用,并将响应替换为允许它们绕过您的保护的响应。

请记住,最终用户可以反汇编您的代码并删除您已实施的保护机制,因此请不要依赖它们100%不可破解

答案 1 :(得分:1)

您可以将安装路径存储在注册表或某个秘密位置,并让您的.exe检查是否已从不同于存储位置的位置启动,只需退出,因为您可能不想告诉用户你正在做什么。

答案 2 :(得分:1)

算了,伙计。它是软件 - 你绝对不能强制执行类似的东西,因为用户可以完全控制二进制运行的环境,包括逆向工程,虚拟化,备份等。还有你想要的人正是那些会竭尽全力阻止你可以发明的任何保护措施的人。

不,唯一有效的方法是强制在线连接,并在你的系统上注册一个特定二进制文件安装一次的事实,然后在下次禁止它。这要求你让每个安装程序都不同,并且拥有一个加密强大的密钥生成器,并且它仍然容易受到重放攻击 - 但它是唯一没有用的定义。

(好吧,不管怎样,或者让你的软件如此疯狂以至于人们会爱上你而希望给你钱。这个解决方案可能更难。)