发布
社区首页 >问答首页 >如何开发串行生成器/破解?

如何开发串行生成器/破解?
EN

Stack Overflow用户
提问于 2008-09-24 21:21:22
回答 8查看 29.7K关注 0票数 30

我的意思是,我一直在想,见鬼的人怎么能开发出算法来打破/欺骗许多共享软件程序中合法使用的限制。

只是出于好奇。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2008-09-24 21:43:10

除了非法之外,这是一项非常复杂的任务。

从理论上讲,通常的方法是反汇编程序来破解,并试图找到关键字或序列码被检查的地方。

说起来容易做起来难,因为任何严肃的保护方案都会在多个地方检查值,还会从序列密钥中获得关键信息供以后使用,因此当您认为您猜对了时,程序将崩溃。

要创建一个破解,你必须确定所有的点,在那里完成检查,并适当地修改汇编代码(通常是反转条件跳转或将条件变量存储到内存位置)。

要创建一个密钥生成器,你必须理解算法,并编写一个程序来重新执行完全相同的计算(我记得一个旧版本的MS Office,它的序列有一个非常简单的规则,数字的和应该是7的倍数,所以编写密钥生成器相当简单)。

这两个活动都要求您在调试器中跟踪应用程序的执行,并尝试找出发生了什么。并且你需要知道你的操作系统的底层API。

一些受严格保护的应用程序对代码进行了加密,因此文件不能被反汇编。它在加载到存储器中时被解密,但是如果它们检测到存储器内调试器已经启动,则它们拒绝启动,

从本质上讲,这需要非常深入的知识、独创性和大量的时间!哦,我有没有提到这在大多数国家都是非法的?

如果你想知道更多,谷歌+ORC破解教程,他们是非常老的,现在可能没有用,但会让你很好地了解它的含义。

无论如何,如果您想编写自己的保护方案,那么了解这一切的一个很好的理由是。

票数 29
EN

Stack Overflow用户

发布于 2008-09-24 21:25:47

坏人使用反汇编程序搜索密钥校验码。如果你知道如何做到这一点,这是相对容易的。

然后,将键检查代码转换为C或其他语言(这一步是可选的)。反转检查密钥的过程会得到一个密钥生成器。

如果你了解汇编器,大概需要一个周末的时间来学习如何做到这一点。我几年前就做过了(虽然从来没有发布过任何东西。这只是为我的游戏开发工作做的研究。要写一个难以破解的密钥,你必须了解人们如何破解)。

票数 16
EN

Stack Overflow用户

发布于 2008-09-24 21:45:50

Nils的帖子涉及密钥生成器。对于裂缝,通常你会找到一个分支点,并反转(或移除条件)逻辑。例如,您将测试软件是否已注册,如果已注册,则测试可能返回零,然后相应地跳转。您可以通过修改单字节将"jump if equals (je)“修改为"jump if not-equals zero (jne)”。或者,您可以在代码的各个部分编写无操作,这些代码执行您不想做的事情。

编译的程序可以反汇编,只要有足够的时间,有决心的人就可以开发二进制补丁。一个破解是一个简单的二进制补丁,使程序的行为有所不同。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/130058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档