我首先要说的是,,我知道,不可能阻止您的软件进行逆向工程。
但是,当我看一看crackmes.de,有8和9的难度等级(1到10)的裂纹。这些裂纹正在被天才大脑破解,他们写了一篇关于如何破解它的教程。有时候,这样的教程是13+页面长的!
当我试着制造裂纹时,他们在10分钟内就会破解它。接下来是一个“如何破解”的教程,长度为20行。
所以问题是:
发布于 2011-04-05 23:06:36
免责声明:我为软件保护工具供应商(Wibu-系统)工作。
自1989年以来,我们所做的和所做的都是停止开裂。因此,我们彻底了解了SW是如何被破解的,以及如何避免它。底线:只有有一个安全的硬件线缆,正确地实施,你才能保证不破解。
最强大的抗破解依赖于加密(对称或公开密钥)。加密可以非常强,但除非密钥存储/生成同样强大,否则就会受到攻击。许多其他的方法也是可能的,即使是良好的加密,除非你知道你在做什么。只有软件的解决方案必须将密钥存储在一个可访问的地方,容易找到或易受中间人的攻击。存储在web服务器上的密钥也是如此。即使拥有良好的加密和安全密钥存储,除非您能够检测到调试器,否则破解器可以只获取内存的快照并从中构建一个exe。因此,您需要在任何时候都不要在内存中进行完全解密,并且需要有一些用于调试器检测的代码。混淆、死代码等不会使它们慢下来很长时间,因为它们不会从一开始就开始运行,并在您的代码中工作。他们比这聪明得多。只需看看一些如何破解网络视频,看看如何找到安全检测代码,并从那里破解。
简简单单的推广:我们的硬件系统从未被破解过。我们有一个主要的客户,他们只将它用于反逆向工程。所以我们知道这是可以做到的。
发布于 2011-04-05 11:29:49
像Java和C#这样的语言级别太高,没有提供任何有效的结构来防止破解。你可以通过混淆使脚本儿童很难,但如果你的产品是值得的,它将被打破无论如何。
发布于 2011-04-05 11:47:28
我会稍微转一转,想想:
(1)设置简单的(Ish)度量,以便您的程序不容易被破解,例如在Java中:
然而,你付出的努力越多,黑客们就越认为这是一个“挑战”。你真的只是想确保,比如说,一个计算机科学专业一年级的平均学生不可能在几个小时内破解你的程序。
(2)放置更微妙的版权/作者标记(例如图像中的元数据,可能会在1年后将弹出窗口嵌入到所有未与服务器连接和验证的副本中.)黑客们可能不会费心去寻找/禁用,因为他们被黑客攻击的程序“可以正常工作”。
(3)把你的项目分发给那些你实际上没有机会从中获利的国家,不要太担心它--如果有的话,这是一种病毒式的营销。请记住,在许多国家,我们在英国/美国所看到的对我们珍贵事物的“盗版”是政府/执法部门公开容忍的;不要把你的商业模式建立在不存在的版权执法上。
https://stackoverflow.com/questions/5551016
复制相似问题