使用OllyDbg从零开始Cracking-17第十七章-序列号生成算法分析-Part2.pdfVIP

使用OllyDbg从零开始Cracking-17第十七章-序列号生成算法分析-Part2.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十七章-序列号生成算法分析-Part2 首先我们来解决上一章留下的mexcrk1.zi p这个CrackMe,很简单。首先用OD加载它, 断在入口点处。 首先看看程序中使用了哪些字符串,单击 鼠标右键: 可以看到以下字符串。 我们可以在正确字符串上面或者错误字符 串上面双击来到关键代码附近。 我们看到这里有一个CALL指令决定后面的 JE指令是跳转到”Thanks you made it” 代码处,还是直接显示后面的”Wrong Cod e DUDE”。我们在42D534地址处设置一个 断点,然后运行起来。 我们在Enter Serial#下面的编辑框中随 便输入一个序列号。 这里我输入Narvajita。 如果你跟进这个CALL,你会发生时我们输 入的错误序列号”Narvajita”在于”Ben adryl”进行比较。 好了,我们现在达到了比较指令处,”Bena dryl”就是正确的序列号,我们删除之前 设置的断点,运行程序。 这里我们可以看到,显示”Thanks you ma de it”提示序列号正确的字样。 好了,接下来我们分析Canasta 5.0这个Cr ackMe。 该CrackMe属于那种OK按钮开始不可用,当 用户输入的用户名与序列号相匹配的时候 才可以单击的例子。 我们首先安装程序,然后打开About对话框 。 提示20美元,确切是说是19.95美元。 我们单击Enter License按钮。 提示说只有当用户输入的用户名和序列号 组合正确时OK按钮才会变为可用。 用OD加载该程序。 我们断在了入口点处。 好,我们来看看API函数列表以及字符串列 表。 由于OK按钮不可用,所以我们不能通过单 击OK按钮来获取错误提示是什么,嘿嘿。 我们运行起来,然后打开注册窗口,我们运 用一些方法来攻击这种保护。 我们输入用户名,假设该程序对用户名没 有限制,接在我们输入6个字母的序列号。 例如:WMYXSZ。首先单击W。 接着按M键。 现在我们在内存中搜索刚刚输入的两个字 母。 我们单击工具栏中的M按钮,打开内存窗口 ,查找WM字符串。 这里,我们勾选上区分大小写。 找到了一个,我们继续按CTRL+L查找看看 还有没有其他地方有该字符串。提示未找 到其他条 目,说明这就是我们刚刚输入的 序列号。 我们在数据窗口中定位到给字符串。 我们输入刚刚找到的这个地址,由于该地 址是字母c开头,所以我们要在前面加上0, 不然OD不认识。 可以用户输入的序列号就保存在这里,我 们输入 “WMYXSZ”接下来一个字母Y。 继续转到数据窗口查看,发现字母Y加被保 存进来了。然后对0C35DF9开始的连续六 个字节内存单元设置内存访问断点。 现在运行起来。 输入字母’X’。 现在将保存该字母了。 这里如果按F8键,ESI将保存到EDI中。 这里拷贝我们前面输入的4个字节。 按F8键,这4个字节将被拷贝到12E79C起始 的内存单元中。 既然我们已经设置过内存访问断点,那我 们就来设置硬件访问断点。 我们继续跟,就可以看到我们输入的用户 名也被保存到了堆栈中。 我们输入的用户名长度为0E,与0做比较。 如果用户名长度不为零,程序将继续执行 。 然后判断是不是黑名单中的名称,也就是 说不能是TNO,afdad等,嘿嘿。 继续运行。 断在了比较指令处,我们可以看到是我们 输入的序列号在与另一个字符串进行比较 。 我们可以看到”354910”就是正确的序列 号,我们删除所有断点。 输入正确的序列号以后,OK按钮就变为可 用状态了,嘿嘿。两一种解决方法这里就 不再赘述了,也不是很复杂,就利用我们每 按下一个键就发产生WM_KEYUP消息,显得 比较麻烦,但也很直接。 好了,我们休息一下,下一章,我们来看看 别的例子。

您可能关注的文档

文档评论(0)

@思念@ + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档