首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我将如何在我的软件的免费试用版中实现“自毁”功能?

我将如何在我的软件的免费试用版中实现“自毁”功能?
EN

Software Engineering用户
提问于 2013-10-11 14:52:30
回答 5查看 7.4K关注 0票数 52

目前有一种观点认为免费试用相对于免费模式(即他们的软件具有限制和/或简化功能的免费版本)来允许潜在的客户和用户测试他们的产品。根据我的研究,我可以得出结论,免费试用是一种方式,既有利于个人使用软件的用户体验,也有利于供应商在销售和最大限度地使用方面的利益。对于免费试用软件来说,有许多因素可以极大地最大化用户的使用,比如免费试用的长度。

在我对"freemium“的研究中,有一个关键词是”令人沮丧的“。许多人选择卸载软件,而不是在某些功能无法使用的情况下使用软件。同时,这些用户从来没有机会使用“付费”功能。不为他们所知,并隐藏在自己的供应商谁正在出售软件,他们不知道,也不知道什么好处的专业功能将带来。如果没有第一次使用它们,用户就不会知道他们有“需要”的感觉。这让我想到了免费审判模式的下一个观点。

一些免费试用用户的意见是“我无法想象使用这个软件没有专业功能。”这可以追溯到“用户不知道自己需要什么,直到他们第一次理解了拥有的感觉”的问题。那些有14天时间使用“完整”版本功能的人说,他们无法想象没有或使用那里提供的功能。因此,当14天结束时,他们比那些从未经历过完整生活的人更有可能把钱花出去。免费试用的时间长短也是一个重要因素,正在给用户留下持久的印象。在进行的一项实验中,他们注意到,14天的免费试用与30天的免费试用相比,注册和安装的次数相同,14天试用的使用率增加了102%。当然,这反过来也增加了他们的收入。

另一个非常重要的一点是,“提供一个有用的,功能齐全的免费版本的产品”是非常重要的。完全功能的免费试用在获得媒体报道方面是有效的,对新软件和/或软件供应商的这种宣传是相当关键的。

另一个相关的方面是用户提供反馈的重要性。考虑一下,在功能齐全的、有时限的免费试用中,用户提供反馈的能力。

对我们的软件来说另一个重要的特性是对遥测数据的需求,即关于用户如何使用我们的软件的数量和全面的数据。一些使用统计数据可能属于法律灰色地带,因为根据美国和世界各地的情况,法律是不同的。解决这一法律问题的一种方法是有一个可供选择的功能来收集匿名使用统计数据。选择功能意味着给用户一个关闭统计数据收集的选项,同时,用户必须非常清楚收集匿名使用信息的功能。重要的是要让用户清楚地知道将收集哪些数据,“我们”将用它做什么,并使随时关闭它变得容易,包括允许他们改变主意来打开或关闭数据。更详细的统计数据,如跟踪用户的个人活动,可能会导致法律问题。Eclipse记录详细的使用统计数据,但它是在用户完全同意的情况下进行的。我们可能需要与我们的法律团队一起准备一份同意书。

Eclipse使用信息集收集以下信息: 1.系统启动的插件。2.通过键盘快捷键访问的命令和通过菜单或工具栏调用的操作。3.当编辑的“观点”得到关注时。4.系统信息,如正在使用的软件的版本、正在使用的操作系统。5.内部错误的说明。

灭电开关

我们的软件的杀死开关可以被管理,记录初始数据,用盐类加密它,每当它是一个无效的日期,也就是说,用户试图改变它,它就会禁用软件。另一种选择是在安装时进行internet身份验证,将该日期记录到中央web数据库,并在每次打开应用程序时检查该日期。

在禁用软件时,我们可以删除重要的DLL。不能考虑必须付费才能生成报告的选择。

我对实现我现有软件的免费试用版本很感兴趣。我计划审判持续14天。在第14天,我的软件会提示用户要么为付费版本付费,要么后果就是无法使用它。免费试用版是完全开放的,这意味着所有付费功能都在那里。

然而,我面临的难题是如何“最好”地实施最终解决方案。我要删除重要的DLL吗?安装或使用时是否有用户身份验证系统?用salt加密初始时间和使用日期,如果是无效日期(AKA试图更改初始日期),禁用软件?

我想知道什么是禁用软件的有效措施。

EN

回答 5

Software Engineering用户

发布于 2013-10-11 16:36:15

你在寻找本质上不可能的东西。软件行业一些规模最大、资金最雄厚的公司花费了数以百万计的资金,寻找一种方法来完成你想要做的事情,而它从来没有真正产生过成功的结果。

首先,你可以忘记所有搞砸本地安装的事。只要原来的安装程序仍然存在,(或者可以备份,或者重新下载),那只不过是一个减速。即使将某些东西放置在系统设置中,当用户可以安装到VM中,然后备份并恢复整个VM映像时,也意味着很少。

下一个明显的步骤是在线身份验证:在每次启动检查凭据时,设置一个服务器并让程序"call home“。这也没用。首先,当服务器由于任何原因关闭或无法访问时,您会遇到明显的(并且非常令人沮丧的)错误问题,或者在其软件中有一些故障。如果用户无法到达服务器,你就不能让软件自动验证用户,或者用一些网络技巧来完成认证工作,或者仅仅在wi关闭的机器上使用它就可以了。(当然,这意味着那些试图合法使用无线网络的人会被拒之门外,因为他们没有无线网络连接,比如把他们的笔记本电脑和他们一起带上公共汽车。这不会让任何人喜欢你的节目。)

在线身份验证的另一个问题是,它最终归结为代码中某个位置的布尔值。在某个地方,它调用AuthenticateUser(),如果它返回True,用户就在其中,如果它返回False,它们就被锁在外面了。不管你做了什么来加密、混淆或隐藏代码,最终它归结为一个简单的事实:如果一台计算机能够在某一时刻读取它,程序员也可以这样做。某个地方的人会产生一个漏洞,AuthenticateUser总是返回True,他们会把它放到网上。

密码学的基本问题可以说是:“爱丽丝想给鲍勃寄一封信,即使它落入他的手中,查理也看不懂。”你想要的问题是鲍勃和查理是同一个人,这使得你的目标不可能实现。

如果你想从你的软件赚钱,扭曲你的用户的手臂不是答案。现在唯一起作用的是基本的市场理论:提供用户认为比你要求的价格更有价值的产品,他会愿意付出代价。其他的一切都会浪费你的时间和精力。

票数 58
EN

Software Engineering用户

发布于 2013-10-11 16:32:55

只有我的2美分。

百分之百可靠的自我毁灭是不可能的。总会有一种老练的方法来破解你的保护。

你可以做的是让使用或破解一个过期的试用更麻烦,而不是购买一个完整的版本为您的目标市场。

如果我站在你的立场上,我会努力确保我的软件是:(1)受欢迎的,所以每个感兴趣的人至少都试过它,(2)价格合理,所以那些愿意付钱的人可以买到它,而你却从中获利。其他用户可以把过期的试用放在心上:他们无论如何都不会买,但他们确实帮助了人气,并为那些真正购买你的软件的公司提供了更多的潜在员工。

我认为Revit插件的目标市场由建筑师、建筑承包商、设计师、每个合同中处理相对大量资金的所有人组成,没有多余的空闲时间或较低水平的计算机专业知识。

所以,确保你过期的试用版能在不破坏任何东西的情况下足够地激怒他们(否则他们会讨厌你)。那些需要工作的人最终会屈服并付出合理的代价。

以下是一些想法:

  • 快速(并且干净地)在过期时卸载自己的试用版本。重新安装应该是可能的,这样用户就可以完整地看到他们的工作,随后不久就会有另一个自动卸载。
  • 让过期版本的输出包括一个标记或文本,上面写着“使用过期的你的软件试用版制造”。严肃的用户不会向客户显示这样的输出。(如果他真的这么做了,那他也太便宜了,根本付不起你软件的钱)。
  • 让过期的试用版在随机时刻显示消息框,警告试用已经过期,并提供一个指向完整版本的链接。这些事情打破了工作流程,足以使一次升级对一个严肃的用户来说是值得的。

任何常用的技巧组合都可以用于将计算机标记为已过期的试用版:加密注册表项、随机位置的加密文件(如果您修改它们,不要忘记恢复时间戳)、将时间戳隐藏在不相关的图形文件或其他形式的隐写中,等等。

当然,如果用户重新安装操作系统,他将再次获得免费试用期。不要紧:一个严肃的顾客几乎不会求助于此。当然,这个方案最终会被破解;请确保到那时您的软件已经足够受欢迎,您可以提供具有引人注目的功能和不同的保护方案的升级。

作为一个非常成功的“不便软件”的例子,我会选择Balsamiq模型。你可以免费使用他们的软件(在网络上),有些功能是有限的,包括保存你的作品。这项工作可以“出口”和“进口”回来,与一些麻烦。也就是说,任何想玩免费功能版本的高中生都可以这样做,甚至可以做一些工作。这个学生无论如何也不会买的。但是一个重视时间和方便的严肃设计师会买下它。

作为另一个非常成功的例子,我当然会以MS为例。

票数 18
EN

Software Engineering用户

发布于 2013-10-11 16:30:45

这并不难做。这真的取决于你想要投入多少精力。

记住,试用版的目的是提高销量。理论上,所有可安装软件的试用版本方案都可以通过某种方式获得,即使它需要付出巨大的努力,因为代码是在本地执行的,因此可以使用十六进制编辑器进行编辑。这个答案是基于这样的假设:最初的海报是问这个商业问题的实际解决方案,而不是理论。

正如另一张海报所提到的,重点是确保绕过试用版方案所付出的努力在时间和精力上超过购买软件的成本。专门的‘盗版者’将简单地下载您的软件的预破解版本使用BitTorrent。别担心他们,反正他们也不是顾客。数十年来,无数软件公司都采用了以下方法,只要你不被这种系统必须在理论上是完美的观念所削弱,你就会发现它们在现实世界中运作得很好。

在最简单的级别上,您只需在注册表中保留一个开始日期/结束日期时间“窗口”(加密)。每次程序运行时,您都会检查系统时间是否介于这两个日期之间,并更新该日期的“开始”组件。这使得普通用户不能简单地将时钟设置为允许访问试用版。

您可以在多个位置(无论是在注册表中还是在应用程序的数据文件夹中)跟踪该时间窗口,并确保它们在每次启动时都匹配。这防止了人们在条目中进行篡改--他们必须确切地知道它们在哪里,以及如何对数据进行解密/加密。

还有很多其他方法可以让事情变得更紧凑,我相信当您开始开发试用功能时,您肯定会遇到这样的情况。

如果您不想自己做这一切,有相当多的第三方库提供这种功能。

关于实际删除文件的注意:如果您的应用程序试图删除文件,它可能会被用户的反病毒软件标记为恶意软件。反病毒软件是非常积极的这些天。许多最终用户会相信,如果他们的反病毒程序弹出警报,您的软件中就会有病毒。

票数 5
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/214158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档