gpt4 book ai didi

obfuscation - 小型供应商的软件保护

转载 作者:行者123 更新时间:2023-12-03 13:14:35 25 4
gpt4 key购买 nike

这是我们都必须在某个时候考虑的问题。

经过多年和许多方法后,我倾向于总体上同意以下声明:
“对于任何几百人使用的 protected 软件,都可以找到破解版。到目前为止,每个保护方案都可以被篡改。”
Does your employer enforce the use of anti-piracy software?

此外,每次我发布有关此主题的信息时,都会有人提醒我;
“首先,无论你采用什么样的保护措施,一个真正敬业的 cookies 最终都会通过所有的保护屏障。”
What's the best value for money c# code protection for a single developer

因此,尽管有这两个广泛正确的免责声明,让我们谈谈“保护”!

我仍然觉得对于不太可能吸引熟练破解者的时间和注意力的小型应用程序,保护是一项值得的练习。

很明显,无论您做什么,如果破解者可以通过修补应用程序来切换 IF 语句 (jmp) 的结果,那么世界上所有的密码和加密狗都无济于事。

所以我的方法是使用以下产品通过虚拟化来混淆代码:
http://www.oreans.com/codevirtualizer.php
我对这个产品非常满意。据我所知,它从未被击败过。
我什至可以用 PEcompact 压缩可执行文件
其他人有这方面的经验吗?

除了 EXEcryptor 的问题之外什么都没有
http://www.strongbit.com/news.asp
甚至该网站使用起来也令人头疼。
编译的应用程序在执行任何 WMI 调用时都会崩溃。

这种方法允许您使用混淆来包围较小的代码部分,从而保护安全检查等。

我使用在线授权方法,因为应用程序需要定期从服务器获取数据,因此用户长时间离线使用它是没有意义的。根据定义,该应用程序在这一点上毫无值(value),即使它已被破解。

所以一个简单的加密握手就足够了。我只是偶尔在混淆保护中检查它。如果用户在另一台机器上安装应用程序,则在启动时会上传新 ID,服务器会禁用旧 ID 并返回新授权。

我还使用已编译应用程序的哈希值,并在启动时检查它是否有任何更改,然后从应用程序内将应用程序作为文件(带有读取锁)打开,以防止任何人在启动后更改它。

由于所有静态字符串在 .exe 文件中都清晰可见,因此我尝试使用通用的错误消息等。您不会在任何地方找到字符串“授权失败”。

为了防止内存转储,我使用了一种简单的文本混淆技术(例如 XOR 每个字符)这使得内存中的纯文本数据更难与变量等区分开来。

当然,对于任何真正敏感的数据都有 AES。我喜欢文本的计数器模式,因为这不会导致重复序列显示底层数据(如一系列空白)。

但是使用所有这些技术,如果可以从内存中转储 key 或初始化向量,或者绕过 IF 语句,那么一切都将被浪费。

我倾向于使用 switch 语句而不是条件语句。然后我创建了第二个函数,它基本上是一个死胡同,而不是实际执行所需任务的函数。

另一个想法是编写添加了变量的指针。变量是授权的结果(通常为零)。这将不可避免地在某个时候导致 GPF。
我只在一些较低级别的授权失败后才将其用作最后的手段,否则真正的用户可能会遇到它。然后,您的软件的声誉就会降低。

你使用什么技术?

(这不是一个讨论实现某事的优点的线程。它是为那些决定做某事的人设计的)

最佳答案

我不同意 xsl。

我们保护我们的代码,不是因为我们想保护我们的收入——我们接受那些如果没有许可证就使用的人可能永远不会为此付费。

相反,我们这样做是为了保护投资 我们的客户已在 我们的软件。我们相信,使用我们的软件使他们在市场上更具竞争力,如果其他公司无需付费就可以使用它,他们就有不公平的优势——即,他们在没有许可成本开销的情况下变得具有竞争力。

我们非常小心地确保保护 - 这是自产的 - 对有效用户尽可能不显眼,为此,我们永远不会考虑“购买”可能影响这一点的现成解决方案。

关于obfuscation - 小型供应商的软件保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/343586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com