【发布时间】:2010-09-03 09:12:46
【问题描述】:
有人知道这个问题的解决方案吗?我创建了我的软件的 exe 文件。第一次安装后,我必须禁用 exe,所以它不能再次运行,因为当有人从我这里购买软件时,他们只能安装一次。
【问题讨论】:
-
祝你好运。
-
当你说禁用 exe 时,你的意思是安装 exe?
有人知道这个问题的解决方案吗?我创建了我的软件的 exe 文件。第一次安装后,我必须禁用 exe,所以它不能再次运行,因为当有人从我这里购买软件时,他们只能安装一次。
【问题讨论】:
为此,您需要在某处存储一些东西,这些东西可能是:
请记住,确定的用户将能够绕过文件和注册表方法,也很可能绕过 Web 服务方法。前两者通过使用诸如Process Monitor 之类的东西来识别您正在写入的文件/注册表条目并清除它们。对于后者,通过使用 Fiddler 之类的东西来识别您正在进行的 Web 服务调用,并将响应替换为允许它们绕过您的保护的响应。
请记住,最终用户可以反汇编您的代码并移除您设置的保护机制,因此不要指望它们 100% 牢不可破
【讨论】:
忘掉它,伙计。它是软件 - 你绝对不能强制执行这样的事情,因为用户可以完全控制二进制文件运行的环境,包括逆向工程、虚拟化、备份等等等。以及你想要阻止的那些正是那些会竭尽全力阻挠您可以发明的任何保护措施的人。
不,唯一可行的方法是强制在线连接并在您的系统上注册一个特定二进制文件已安装一次的事实,然后在下次禁止它。这要求您使每个安装程序都不同,并拥有一个加密性强的密钥生成器,并且它仍然容易受到重放攻击 - 但它是唯一根据定义并非无用的东西。
(好吧,要么这样,要么让你的软件非常棒,以至于人们会爱上你并想要给你钱。这个解决方案可能更难。)
【讨论】:
您可以将安装路径存储在注册表或某个秘密位置,并让您的 .exe 检查它是否从不同于存储位置的位置启动,然后简单地退出,因为您可能不想告诉用户你在做什么。
【讨论】: