23

我对获取版本信息不感兴趣。我要做的就是确保我的应用程序只能在合法版本的 Windows 上运行,而不是在盗版版本上运行。Windows 使用一些技巧来确定这一点,但仍然允许盗版版本继续运行,尽管有一些限制。

那么,有没有办法检查应用程序是否安装在合法的正版 Windows 版本上?(Vista 和更好,至少。)


让我澄清一下:微软并没有阻止用户使用未经验证或非法的操作系统版本。因此,我也没有任何理由在这样的版本上阻止我的应用程序。但我确实希望我的应用程序知道非法版本并警告用户他的 Windows 版本没有经过验证。也许他忘记了,也许他不想证实。这可能有很多原因,我不想阻止他们,只是让他们意识到他们的 Windows 版本存在问题。

此外,当有人使用无效版本的 Windows 时,如果它是商业产品,我可能想要对我自己的软件进行更严格的验证检查。在我的免费产品中,我只想要一个烦人的弹出窗口,它每天只会出现一次。

未经验证的 Windows 版本的主要问题是它们可能包含其他间谍软件和其他恶意软件,并且它们有可能无法获得所有必需的更新。这些 Windows 版本的保护比经过验证的 Windows 版本更弱。由于我的几个应用程序使用敏感数据,我不希望任何恶意软件泄露这些敏感数据。

另外,我认为盗版软件对任何免费替代品都是有害的。如果不是所有那些四处漫游的盗版 Windows 版本,Linux 和 FreeBSD 会更受欢迎。使用盗版软件的人不太可能一开始就购买该产品,但我希望他们使用免费的替代品。盗版软件对微软有一点伤害,但对免费社区的伤害更大,因为它让人们与那些商业产品保持联系......

4

9 回答 9

23

这是一个有趣的问题,但态度错误。检查用户的事务不是你的事。

或者你也可以:

  • 在向他们出售您的软件之前要求他们进行纳税申报

  • 警方的书面证明,他们没有犯罪记录(或者他们可能倾向于再次违法并盗版您的软件)

  • 检查他们是否安装了任何 torrent 软件(当然它可以合法使用,但他们拥有它的事实意味着他们可能会滥用它)

  • 检查他们是否安装了防病毒软件(以提高他们的社会意识并帮助打击垃圾邮件机器人网络)

  • 信用记录报告(以确保他们已及时支付账单并且也不会忘记支付您的软件费用)

  • 他们的家庭医生证明他们没有绝症(感觉受到谴责的人可能会违法并盗版您的软件)

你明白它的发展方向吗?

开发软件的关键规则之一——你的软件应该是有用的,让用户满意,并尽可能少地建立障碍。

于 2009-09-22T08:59:51.100 回答
7

你不可能知道也不应该在意。

安装的法律地位与磁盘上的任何内容完全无关。相同的安装现在可以取消许可,并在下一分钟获得许可,而无需对机器进行任何更改。

于 2009-09-22T09:02:18.880 回答
6

这是微软需要担心的事情。不是你。

于 2009-09-22T08:57:32.307 回答
5

Microsof 提供了一个小型 API,但 MSDN 没有说明如何在客户端系统上安装使用的 DLL。我的猜测是,它带有来自 Windows Update 的 SP2 或 WGA 实用程序。

这是 API 的MSDN 页面

于 2009-09-22T09:11:17.503 回答
4

甚至微软也无法可靠地做到这一点。这是一场持续不断的军备竞赛,因为微软更新了 WGA,以对抗那些看似几乎不需要做任何事情来绕过它的人。OEM 的需求加剧了这种情况,他们(正确地)需要预先安装和预先验证的操作系统副本,以免惹恼他们的客户,这些客户很可能是商业客户。我认为这方面的很多“黑客”都与 OEM 主密钥有关。

基本上,盗版软件(包括 Windows 和您的软件)是一个社会问题,而不是技术问题。作为软件供应商(恕我直言),您可以做的最糟糕的事情就是在寻求阻止盗版的过程中惹恼您的合法客户,以至于您使合法客户成为盗版。示例:一些游戏甚至安装了 rootkit 并限制了激活次数(例如 Spore)。

特别是限制激活是一种邪恶的做法。人们对这些事情有一种与生俱来的公平感。如果他们有两个激活的东西,运行 Windows XP 并切换到 Windows 7 RC,然后在发布时切换到 Windows 7 的真实版本,那么他们刚刚超过了限制。与 Spore 的情况一样,您可以通过电话请求额外的激活,但这种事情只会以错误的方式惹恼人们。有些人认为他们会觉得绕过这些限制是有道理的。

至于否决您的问题,我怀疑这是因为人们不喜欢您的意图,可能与我上面列出的原因相似。

于 2009-09-22T11:24:53.023 回答
3

为什么不检查以确保他们没有运行盗版 Photoshop?还是半条命?微软办公怎么样?

看看我要去哪里?我并不特别同意盗版检查 - 但为了让您免于头疼,我建议您只担心自己的软件是否被盗版,使用任何您希望的方式(许可证密钥,打电话回家,任何你想要的邪恶和侵入性的方法!)。因此,盗版 Windows 的人也可能也盗版您的软件。如果您打算在检测到他们正在运行盗版 Windows 时阻止使用您的软件 - 好吧,这只是一种不好的做法。如果验证软件有缺陷或不正确,或者由于其他人使用了此人合法购买的许可证密钥而报告该软件为盗版,该怎么办?

除了不关您的事之外,众所周知,Windows 会错误地报告 Windows 的合法副本被盗版。你不应该相信任何人的验证工具,而是你自己的(即使那样你也可能编写了一个糟糕的验证工具!)。有很多事情可能导致不正确的盗版报告 - 我会避开这种方法。

于 2009-09-22T09:41:55.163 回答
2

在我看来,我永远不会相信别人的验证系统足够准确,以至于我愿意阻止人们使用我的软件。

我知道你来自哪里,但我建议让 MS 担心 Windows 验证。

此外,真的无法通过机器本身了解安装的真实法律状态。当然,有“验证”和所有的爵士乐,但这在事实的背景下几乎没有意义。

于 2009-09-22T08:58:25.267 回答
1

只问技术部分,省略你的理由/哲学就会给你直接的答案。

于 2009-09-22T11:59:48.880 回答
-1

如果您防止盗版您自己的软件(我的意思是防止它在盗版的 Windows 上运行),那么您的软件可能不会尽可能成功。

只需让您的客户为您的软件支付合理的价格。

于 2009-09-22T09:31:30.427 回答