任何访问洪流跟踪器的人肯定会发现大量“破解”程序,从简单的共享软件到花费数千美元的软件套件。似乎只要程序不依赖于远程服务(例如MMORPG),任何内置的复制保护或用户身份验证都是无用的。
是否有效阻止破解者规避复制保护?为什么呢?
答案 0 :(得分:20)
不,实际上不可能阻止它。你可以把它变得非常困难 - 一些Starforce版本显然已经完成了这项工作,其代价是严重惹恼了一些“用户”(受害者可能更准确)。
您的代码在他们的系统上运行,他们可以随心所欲地执行任何操作。附加调试器,修改内存,等等。就是这样。
Spore似乎是一个优雅的例子,在这个方向上的严苛努力不仅完全无法阻止它在P2P网络周围共享,而且显着harmed the image of the product并且几乎肯定是销售。
另外值得注意的是,用户可能需要破解复制保护以供自己使用;我记得几年前在我的笔记本电脑上玩暗黑破坏神,没有内置光驱。所以我放入了一个没有CD的裂缝,然后在长途飞机上玩了几个小时。强制进行这种检查,因此用户可以解决这种问题,这是最愚蠢的错误。
答案 1 :(得分:16)
在不破坏产品的情况下停止它是不可能的。证明:
鉴于:您试图阻止黑客入侵/偷窃的人将不可避免地比您的大部分市场技术复杂得多。
鉴于:您的产品将被一些公众使用。
鉴于:使用您的产品需要在某种程度上访问它的数据。
因此,您必须以足够的方式向公众发布加密密钥/复制保护方法/程序数据,以便以可用/未加密的形式显示数据。
因此,您使用一些方式使您的数据可供海盗访问。
因此,黑客比合法受众更容易获取您的数据。
因此,任何过去最简单的保护方法都会最终将你的合法受众视为海盗并疏远他们。
答案 2 :(得分:14)
因为这是对抗思维对手的固定防守。
几千年前,军事理论家们把这个人打败了?
答案 3 :(得分:12)
复制保护就像安全一样 - 不可能实现100%完美,但你可以添加层,使其更难以破解。
大多数应用程序都有一些问题(他们自己),“许可证是否有效?”黑客只需找到该点并更改已编译的代码以返回“是”。或者,破解者可以使用暴力来尝试不同的许可证密钥,直到一个工作。还有社交因素 - 一旦有人购买工具,他们就可以在互联网上发布有效的许可证代码。
因此,代码混淆使得找到要更改的代码变得更加困难(但并非不可能)。二进制文件的数字签名使得更改代码变得更加困难,但仍然不是不可能的。可以使用具有大量纠错位的长许可证代码来对抗暴力方法。通过要求名称,电子邮件和电话号码许可证代码本身的一部分,可以减轻社会攻击。我用这种方法效果很好。
祝你好运!答案 4 :(得分:9)
很抱歉在古老的线索中闯入,但这就是我们的生活,我们真的非常擅长。这就是我们所做的一切。所以这里的一些信息是错误的,我想直接设置记录。
理论上不可破解的保护不仅仅是我们销售的产品。主要的复制保护供应商(包括我们)遵循的基本模型是使用exe和dll的加密以及在运行时解密的密钥。
有三个组成部分:
非常强大的加密:我们使用AES 128位加密,有效免受强力攻击。有一天量子计算机很常见,有可能打破它但是假设你将破解这种强度加密来复制软件而不是国家机密是不合理的。
安全密钥存储:如果一个破解者可以获得加密的密钥,那么你就被软管了。保证密钥无法被盗的唯一方法是将其存储在安全的设备上。我们使用加密狗(它有很多种类,但操作系统总是将其视为可移动闪存驱动器)。加密狗将密钥存储在智能卡芯片上,该芯片可以抵御像DPA这样的侧通道攻击。密钥生成与多个因素有关,这些因素是非确定性和动态的,因此不可能有单个密钥/主密钥破解。密钥存储和计算机上的运行时之间的通信也是加密的,因此可以阻止中间人攻击。
调试器检测:基本上你想阻止一个破解者获取内存快照(解密后)并从中获取可执行文件。我们为防止这种情况所做的一些事情是秘密的,但一般来说,我们允许调试器检测并在存在调试器时锁定许可证(这是可选设置)。我们也从未完全解密内存中的整个程序,因此您永远无法通过“窃取”内存来获取所有代码。
我们有一名全职密码学家,可以破解任何人的保护系统。他把所有时间花在研究如何破解软件上,以便我们可以防止它。所以你不认为这只是我们所做的便宜事,我们并不是独一无二的:SafeNet和Arxan Technologies等其他公司也可以做一些非常强大的保护。
许多纯软件或混淆方案很容易破解,因为破解者可以只识别程序入口点并分支任何许可证检查或ISV为防止盗版而放入的其他内容。有些人甚至使用加密狗会在找不到许可证时抛出一个对话框 - 在该错误上设置一个断点将使破解者在汇编代码中有一个很好的位置来做补丁。同样,这需要未加密的机器代码可用 - 如果您对.exe进行强加密,则无法获得这些代码。
最后一件事:我认为我们的独特之处在于我们有几个公开竞赛,我们为人们提供了一个系统并邀请他们破解它。我们有一些相当大的现金奖励,但还没有人破解我们的系统。如果ISV采用我们的系统并且不正确地实施它,那么在前门上安装一个很好的挂锁与木螺钉连接到便宜的搭扣没有什么不同 - 容易规避。但如果您使用我们的工具,我们建议您认为您的软件无法破解。
HTH。
答案 5 :(得分:6)
安全性和复制保护之间的区别在于,在保护安全性的同时,您可以保护资产免受攻击者攻击,同时允许授权用户进行访问。通过复制保护,攻击者和授权用户是同一个人。这使得完美的复制保护变得不可能。
答案 6 :(得分:5)
我认为,如果有足够的时间,一个潜在的破解者可以绕过任何复制保护,即使是使用回调到远程服务器的复制保护。只需通过一个可以过滤这些请求的框重定向所有传出流量,并使用相应的消息进行响应。
在足够长的时间线上,复制保护系统的存活率为0.一切都是反向可操作的,有足够的时间和知识。
也许您应该专注于使用真实的,已注册的,未破解的版本使您的软件更具吸引力的方法。优质的客户服务,注册津贴等奖励合法用户。
答案 7 :(得分:5)
基本上历史告诉我们,你可以购买最多的复制保护是一点时间。从根本上说,由于存在您希望某人看到某种方式的数据,因此有一种方法可以获取该数据。因为有一种方法可以利用这种方式来获取数据。
对此问题的任何复制保护或加密唯一能做的就是让它变得非常困难。如果有人有足够的动力,总会有蛮力的方式来解决问题。
但更重要的是,在计算机软件领域,我们有大量工具可以让我们看到事情是如何运作的,一旦你掌握了复制保护的工作方法,那么获得你想要的东西就非常简单了。
另一个问题是,大多数情况下的复制保护只会让正在为您的软件付费的用户感到沮丧。看看他们没有打扰的开源模型,有些人赚了很多钱,鼓励人们复制他们的软件。
答案 8 :(得分:5)
“试图使钻头不可复制就像试图让水不湿。” - Bruce Schneier
复制保护和其他形式的数字限制管理本质上是易碎的,因为不可能使计算机可见的位流同时阻止计算机复制它们。它无法完成。
正如其他人所指出的那样,版权保护只会惩罚合法客户。我不想玩Spore,但是如果我这样做的话,我可能会买它但是然后安装破解版本,因为它实际上是一个更好的产品,因为它缺乏系统破坏性的SecuROM或财产剥夺激活方案。
答案 9 :(得分:4)
正如其他人所指出的那样,你可能很容易让真正的和合法的用户感到沮丧,而不是挫败骗子。在制定规避技术时,请始终牢记付费用户。
如果你的软件被通缉,你就无法对抗无聊的17岁的军队。 :)
答案 10 :(得分:4)
您既可以信任您的客户/用户,也可以浪费过多的时间和资源来试图打败他们,而不是提供他们想要支付的功能。
这只是不值得打扰。真。如果你不保护你的软件,这很好,毫无疑问有人会盗版它。当然,障碍很低。但是,您不必费心地节省时间,就可以投资您的产品,营销,客户关系等,从而长期建立您的客户群。
如果您确实花时间保护您的产品而不是开发它,那么您肯定会减少盗版。但是现在你的竞争对手可能会开发你没有时间的功能,即使在短期内你也可能最终减少卖出。
答案 11 :(得分:4)
}}为什么?
您可以购买世界上最昂贵的保险箱,并用它来保护物品。一旦你放弃组合打开保险箱,你就失去了安全感。
软件也是如此,如果您希望人们使用您的产品,您必须让他们能够打开众所周知的保险箱并访问内容,混淆打开锁的方法无济于事。你授予他们打开它的能力。
答案 12 :(得分:2)
在个人复制/非商业版权侵权的情况下,关键因素似乎是项目的价格与复制的容易程度之间的关系。您可以增加复制它的难度,但是如前面的一些答案所强调的那样,收益递减。要采取的另一个策略是降低价格,直到通过bittorrent下载它的努力比单纯购买它更麻烦。
实际上有许多成功的例子,作者找到了定价的最佳点,这肯定会为自己带来巨大的利润。试图追逐100%未经授权的防止复制是一个失败的原因,你只需要让一大群客户愿意支付而不是非法下载。使盗版软件价格低廉的原因也是使软件发布成本低廉的原因。
答案 13 :(得分:1)
有一个简单的方法,我很惊讶你在上面的答案中没有这么说。 将复制保护移至安全区域(了解安全实验室中的服务器)。 您的服务器将从客户端收到随机数(检查之前是否使用过该号码),使用客户端号码和私钥加密一些不断发展的二进制代码/计算结果并将其发回。 没有黑客可以绕过这个,因为他们无法访问您的服务器代码。
我所描述的基本上是webservice其他SSL,这是大多数公司现在所处的地方。
缺点:竞争对手将在您完成加密代码期间开发相同特色产品的离线版本。
答案 14 :(得分:1)
关于不需要网络的保护措施:
根据周围的说明花了两年时间来破解一个流行的应用程序,该应用程序使用了John的答案中描述的类似方案。 (自定义硬件加密狗保护)
另一种不涉及加密狗的方案是“扩展保护”。我刚刚创造了这个,但它的工作方式如下:有一个应用程序可以保存用户数据,用户可以从第三方购买扩展等。当用户加载数据或使用新扩展时,扩展和保存的数据也包含执行检查的代码。当然,这些检查也受校验和检查的保护。它在纸面上不像其他方案那样安全,但实际上这个应用程序一直都是半破解的,因此它主要用作试验,尽管因为裂缝总是会错过一些检查并且必须将这些扩展修补为好。
关键是,虽然这些可以破解,但如果有足够的软件供应商使用这样的方案,这将会使那些愿意致力于这些方案的少数人过度工作。如果你进行数学计算,那么保护就不一定非常好,只要有足够的供应商使用这些不断变化的自定义保护措施,它就会压倒破解者,并且当时就会结束。 * 的
没有发生这种情况的唯一原因是发布商购买了他们全部使用的单一保护,使其成为一个巨大的目标,就像Windows是恶意软件的目标一样,任何超过单个应用程序使用的保护都是一个更大的目标。所以每个人都需要做自己定制的,独特的多层扩展保护。如果最好的破解者需要几个月的时间来破解一次发布,那么warez的发布量每年会下降到十几个版本。
现在在营销软件中进行一些理论研究:
如果您认为warez提供了有价值的营销价值,那么应该在商业计划中考虑到这一点。这可能需要一个非常非常(太)基本的Lite版本,仍然需要花费很少的钱来确保它被破解。然后,你可以通过“限时从升级版本廉价升级”定期和其他追加销售的策略来吸引用户。精简版本应该至多具有一个值得购买的功能,否则将非常残缺。价格可能应该<10美元。完整版应该是10美元的付费演示版升级价的两倍。例如。如果完整版是80美元,你可以提供从精简版到完整版的升级版,价格为40美元,或者真正看起来像杀手便宜的东西。当然,你不会向那些直接购买80美元版本的购买者透露这些便宜货。
完整版在代码中与lite版本没有相似之处至关重要。您打算将lite版本进行软件化,并且完整版本要么需要时间密集才能破解,要么在网络上依赖于难以在本地模拟的功能。破解者可能更专注于破解,而不是尝试编写/复制应用程序在Web服务器上的部分功能。
* 附录:对于应用程序/游戏,场景可能会在这种不太可能的理论环境中结束,对于音乐/电影等其他内容,在实践中,我会考虑让它更便宜于数字dl买家可以获得额外的收藏物品或仅限在线的价值 - 很多人都是收藏品(特别是盗版者),如果只是通过数字拷贝获得足够的东西,他们就会被诱惑购买。
要注意 - 有一种叫做“期望值上升的法则”。游戏示例:Ultima 4-6标准盒包括布料地图,“天际收藏家”版本有纸质地图。期望已经上升,有些人对纸质地图不满意。您希望保持产品质量或服务质量不变或提前管理预期。我认为,在考虑这些增值的东西时,这是至关重要的,因为你希望它们是理想的但不会越来越昂贵,而不会变成看似毫无价值的东西,以至于它会破坏目的。
答案 15 :(得分:0)
我认为有人会想出一种动态的AI方式来击败目前所有标准的复制保护方法;哎呀,我肯定很想得到报酬来解决这个问题。一旦他们到达那里,那么将开发新的方法,但它会减慢速度。
社会阻止盗窃软件的第二个最佳方式是严厉惩罚它,并执行惩罚。
最好的办法是扭转道德沦丧,从而提高社会诚信水平。
答案 16 :(得分:0)
这是一个质量软件是坏事的场合,因为如果没有人对你的软件进行打击,那么他们就不会花时间试图破解它,另一方面像Adobe的Master Collection CS3这样的东西在发布后几天就可用了。
所以这个故事的寓意是,如果你不想让别人窃取你的软件,有一个选择:不要写任何值得偷的东西。
答案 17 :(得分:0)
如果我听到一个失败的原因......当然这并不意味着你不应该尝试。
我个人喜欢Penny Arcade对它的看法:"A Cyclical Argument With A Literal Strawman" alt text http://sonicloft.net/im/52