Ale*_* S. 29 cracking reverse-engineering
我的意思是,我总是想知道如何有人可以开发算法来打破/欺骗许多共享软件程序中合法使用的限制.
只是为了好奇.
Rem*_*o.D 28
除非是非法的,这是一项非常复杂的任务.
说到理论层面,常见的方法是反汇编程序以破解并尝试查找密钥或序列码的检查位置.
说起来容易做起来难,因为任何严肃的保护方案都会在多个位置检查值,并且还会从串行密钥中获取关键信息供以后使用,这样当你认为你猜对了,程序就会崩溃.
要创建裂缝,您必须识别完成检查的所有点并适当地修改汇编代码(通常反转条件跳转或将costants存储到存储器位置).
要创建一个keygen,你必须要理解算法并编写一个程序来重新进行完全相同的计算(我记得一个旧版本的MS Office,其序列有一个非常简单的规则,数字的总和应该是7,所以写keygen是相当微不足道的.
这两个活动都要求您将应用程序的执行跟踪到调试器中,并尝试弄清楚发生了什么.您需要了解操作系统的低级API.
一些受到严密保护的应用程序已对代码进行了加密,因此无法对文件进行反汇编.它在加载到内存时被解密,但如果它们检测到内存调试器已经启动,它们就会拒绝启动,
从本质上讲,它需要非常深刻的知识,独创性和大量的时间!哦,我提到这在大多数国家都是非法的吗?
如果你想了解更多,谷歌的+ ORC破解教程他们已经很老了,现在可能没用,但会让你对它意味着什么很好.
无论如何,了解所有这一切的一个很好的理由是,如果你想编写自己的保护方案.
Nil*_*nck 15
坏人使用反汇编程序搜索密钥检查代码.如果您知道如何执行此操作,这相对容易.
之后,您将密钥检查代码转换为C或其他语言(此步骤是可选的).反转键检查过程可以为您提供密钥生成器.
如果你知道汇编程序,那么大概需要一个周末来学习如何做到这一点.我几年前就已经完成了它(从未发布任何东西.这只是我的游戏开发工作的研究.要编写一个难以破解的密钥,你必须了解人们如何处理破解).
尼尔斯的帖子涉及关键的发电机.对于裂缝,通常会找到一个分支点并反转(或删除条件)逻辑.例如,您将测试软件是否已注册,如果是,则测试可能返回零,然后相应地跳转.您可以通过修改单个字节将"jump if equals zero(je)"更改为"jump if not-equalals(jne)".或者,您可以在代码的各个部分编写无操作,这些部分执行您不想做的事情.
编译的程序可以被反汇编,并且有足够的时间,确定的人可以开发二进制补丁.破解只是一个二进制补丁,可以使程序的行为不同.
归档时间: |
|
查看次数: |
28094 次 |
最近记录: |