种子:我可以通过发送错误的字节来保护软件吗?


15

这是每个人都感兴趣的话题。如何保护我的软件免遭窃取,黑客入侵和反向工程攻击?

我当时在想:尽力保护该程序以进行逆向工程。那么,人们会开裂,并与种子它的种子。然后,我用自己的torrent软件下载了带有torrent的破解软件。然后,我自己的洪流软件必须播种不正确的数据(字节)。当然,它必须播种关键字节。

因此,想要窃取我的软件的人会下载我的错误字节。只是那些对于启动,保存和加载数据等非常重要的字节。因此,如果盗窃者从我这里下载(并在以后播种),那么盗窃者将无法对其进行任何操作,因为它已损坏。

这个想法相关吗?也许,好的torrent客户端会检查更多同伴的哈希值,以检查我想要播种的程序包(包含我破碎的字节)是否正确?


3
我读过RIAA已经对音乐文件进行了此操作。

26
您在浪费时间,没有在盗贼中损失任何金钱,从定义上讲,他们永远不会购买您的软件。

27
放弃由于CRC检查等原因而无法使用的事实,我建议出于其他原因,这可能不是一个好主意。窃取该软件的人可能不会为此付费,但是,如果该软件不起作用,他们可能会告诉朋友或老板您的软件质量很差,因此他们也不会购买。
ho1 2010年

9
在大多数情况下,盗版副本不会失去销售。

13
无论您做什么,都要确保您不花钱让客户付费使用您的软件
user6863 2010年

Answers:


42

由于CRC检查,他们的洪流应用程序(海盗)只会将您播种的字节视为坏字节。然后,您将因为重复犯规而被该IP禁止。


比特流使用什么CRC?是否可以生成具有正确CRC的垃圾数据包?有一些应用程序可以针对MD5执行此操作,我相信真正的CRC也将同样容易。
deft_code 2010年

16
理论上讲,它可以生成;但是,BitTorrent协议使用SHA-1哈希。在SHA-1中比在MD5中更难找到哈希冲突(这就是我们要在这里找到的)。实际上,目前尚不可行。
Piskvor在2010年

@Caspin本质上没有。在理想的条件下,至少需要一星期的时间,一台真正快速的计算机(超级计算机)和一组密码学家才能破解单个文件的CRC哈希。祝你好运。
Evan Plaice 2010年

9

问:我可以通过发送错误的字节来保护我的软件吗?
答:不,无论如何它都可以被黑客入侵,特别是如果有人拿到了合法的副本。

问:如何保护我的软件免遭窃取,黑客入侵和逆向工程?
答:以合理的价格出售它,这将破坏黑客入侵的企图。


参见plagiarismtoday.com/2010/05/26/…关于第2点。海盗是海盗。更好的软件不会帮助您。
保罗·内森

1
@Paul:有很多人不盗版。有很多人拒绝付款。但是,也有一些人更愿意为某种东西支付更高的价格。这些人会受到较低价格的影响。(虽然你不会想以价格太低了,我想。)

7

我建议从另一端着手解决这个问题。将唯一的识别码嵌入到您提供给客户的软件的每个副本中。万一有人播种,您至少可以确定是谁播种并采取法律行动。


5
只有他们能找到它。

2
@Developer Art:如果他们可以访问该软件的多个副本,则他们可以进行二进制比较,以找出这些副本彼此之间的确切差异以及不同之处,因此除非您为该组件的各个部分设置一种方法要以随机方式进行混淆的标识符,可能很难找出来。

2
不能用单个变量来完成。您可以将信息分散到应用程序的所有模块中,假装您实际上是出于某些目的而使用它。如何使它不被窥视变得有些艺术。也许会问一个有关实现该目标的技术的单独问题。会很有趣。

18
您可以检查不同的版本,以了解标记是否被优化了。但是用户也可以!实际上,没有专业的破解者在没有获取多个副本并进行比较之前就上传内容,因为他们想保护自己的资源。最后,您正在与风车作斗争;将精力花在编写出色的软件上(鼓励用户向您付款),而不是停止复制(仅鼓励他们努力不付款)。

2
您正在艰苦的战斗。无论您采用哪种加密/密码方案,破解组织都可能看到并知道如何破解它。他们拥有多年的经验,并且程序员比您更好。抱歉。
Evan Plaice 2010年

7

DRM是否有效?否。设置不良的BitTorrent / EDonkey2000内容是否可行?否。有人在乎盗版您的小应用程序吗?不,没人听说过。


“没人听说过。” 这是一个好点...

如果有人愿意盗版,那是值得保护的。

1
@ Ben313:一个更好的说法是“如果有人愿意购买它,那值得保护。”

1
除非您编写的内容比AutoCad,MS Word等要好,否则与其他人(微软,AutoDesk)相比,您的软件值得保护的价值比其他人(微软,AutoDesk)要高,后者要比您(一个开发人员)拥有100个聪明的人,而且他们仍然尚未建立有效的DRM。
沃伦·P 2010年


2

这是每个人都感兴趣的话题。如何保护我的软件免遭窃取,黑客入侵和反向工程攻击?

做到这一点的唯一方法(我能想到的)是在服务器上完全运行软件,并且在客户端应用程序中没有有用的代码-因为如果无法获得它,就无法(轻松)破解它。这样,您将可以控制帐户,并且知道谁在使用您的应用程序。用户不会很高兴。而且,如果您仅在服务器上运行与复制保护相关的代码,则有人会通过编写服务器仿真器对其进行破解,否则他们将识别代码并完全绕过保护。就像新的Ubisoft复制保护方案一样。

在服务器上保留软件并不完全可靠。有人会开始攻击您的服务器以入侵并获取软件,而不是破解软件。而且始终存在“社会工程”安全漏洞。如果您的软件无法在普通计算机上运行(例如,它需要超级计算机或计算机集群),则“将所有内容保留在服务器上”将最好地工作。一个很好的例子是EVE Online-与WOW和Lineage不同,我不知道服务器模拟器,因为它需要计算机集群来运行服务器。

然后,我自己的洪流软件必须播种不正确的数据(字节)。当然,它必须播种关键字节。

  1. 如果您尝试“劫持”现有种子,那么任何理智的客户端都会报告CRC错误,并忽略您的客户端。所有p2p软件都使用哈希。
  2. 如果您上传“错误的”种子,另一用户将报告您的种子为假种子,因此没有人将其下载。

偷窃者

“盗版”,因为它被称为侵犯版权。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.