成为一个破解者的噩梦!

时间:2009-10-17 00:43:43

标签: objective-c xcode copy-protection cracking

我试图在Mac上使用Objective-C来破解代码。

我要做的一件事就是检查应用程序是否被破解。

我是Objective-C和Xcode的新手,无论我想象的任何方式来测试我的应用程序,我总是以一个可以轻松修补的基本测试结束。

例如:假设我要测试二进制文件某个部分中是否存在给定值。该操作将类似于:

“这个值= x?”如果不是,那就破裂了。

这很容易破解。黑客可以轻松修补测试,并始终如一。

我试图想象可以测试某些东西的东西,而不是作为一个可以轻松修补的测试。

我知道我无法阻止100%的盗版行为,但至少我试图让事情变得更加困难,以阻止大部分的黑客行为。

任何关于这样的事情的想法都可以在没有的情况下完成,并且对于那些看二进制文件的人来说会变得困难吗?

感谢您的帮助。

5 个答案:

答案 0 :(得分:12)

除非您的软件与安全相关,否则我认为更好的方法是更改​​您的许可计划,以便为那些几乎不使用该软件并且组织费用昂贵的家庭用户免费提供该软件。

由于法律问题,组织很少使用破解软件,因为偶尔用户的家庭用户不喜欢花费100美元来偶尔使用该软件。

这会剥夺破解者破解软件的动机。

答案 1 :(得分:8)

别。请记住,(好的)破解者破解软件以获得乐趣。您的保护方案越精细,对于破解者来说就越具挑战性和乐趣。此外,可能非法使用您的软件的人无论如何都不会为此付费,即使他们无法获得破解版本。花在改善产品上的时间会更好。

话虽如此,你可以通过剥离调试符号的可执行文件来阻止大多数业余破解者。您必须在项目首选项中启用此功能。

答案 2 :(得分:5)

我所知道的所有非常强大的保护方案都以某种方式广泛使用self-modifying code。但是,这绝对不是初学程序员应该准备好处理的事情。

答案 3 :(得分:2)

让他们很难评估您的计划,并定期更改您的计划。教科书示例是以奇数间隔执行检查,这将使他们在执行许可评估期间找到支票来源和所有交叉引用非常耗时。将其与多个检查相结合,您应该为大多数版本设置,只需在创建方案时添加一定的创造力。此外,玩游戏也有点乐趣;让他们发布破解发布后1个月失败的破解......好吧,这可能只会适得其反,但是如果你正在努力与他们作斗争......

这是一个有趣的社区;如果你是新手,研究社区也将是有益的。如前所述,裂缝发生在挑战中,一些产品版本将简化其“免费广告”的版权保护计划。所以...你真的不能真的打得太难了,因为如果有人坚定,那只会浪费你的时间并让你感到沮丧。观察文化可能很有趣。如果您承认它被破解等同于“流行软件”,那么您可能处于最佳位置,因此,您应该感到高兴。你通常不应该为此失去多少睡眠(尽管当然有例外)。此外,由于此问题列在Mac类别中:我不打算挖掘统计数据,但如果您的目标是OS X,则您的软件不太可能受到攻击者的关注。

如果你是一名初学程序员,聪明地使用这些信息(和接受)可能就是你有效打击破解者所需要知道的。

答案 4 :(得分:1)

一个危险在于,如果你过长,你最终可能会为合法用户破坏东西。 20世纪80年代的一些Atari的街机都有代码,如果发现ROM被改变了,它会做各种有趣的事情。效果会很微妙;例如,如果游戏在玩家具有某些得分值时结束,则称为Tempest的游戏将奖励无限制的免费游戏。但是,在Tempest的发行版ROM中,校验和计算不正确,因此所有计算机都有此行为。我不确定这个漏洞会在多大程度上影响到现场计算机的收益,但我认为一些运营商在发现它时会感到非常沮丧。