七-深入爆破 跳出基础 利用OllyDbg 无字符串爆破

未分类 cyanprobe 9年前 (2015-06-16) 6430次浏览 已收录 5个评论

前言:

这一节课之后开始上难度了 :shock: 。先回顾下前几课的内容,课程安排基本遵循破解论坛上的课程,不过我删除了壳子那一节 。 PS:这一节我们就正式踏入进阶过程了,意味着这已经不是基础,难度也加大了许多!OllyDbg 教程我们已经走过六课了:

破解开始:

本节课课件(提取码:5d51)
首先分析我们的软件,点击使用说明到了这个提示框,你根本没注册。按照前几节课的经验我们把它载入OllyDbg搜索字符串找到字符串,就找到了爆破位置。
2015-06-16_193432
 
在此之前按照惯例我们需要对这个软件进行侦壳工作,先拖入PE,程序源码:Microsoft Visual C++ ver 5.0/6.0

载入OllyDbg进行调试:

2015-06-16_193615
按照前几课的思路,我们来到中文搜索引擎 :发现什么也没有搜到,你可以尝试提示框的其他内容都找不到!好吧,不管搜索什么,都是找不到。那我们爆破的思路就断掉了。不要急,别忘了这节的内容是什么,仔细看,下面的新内容让你成功爆破。
我们进入OllyDbg,F9运行程序,然后我们点击程序进行到如下对话框(不要关闭提示对话框),然后我们按 F12 暂停程序(先选定OD不是在选定课件按F12那样根本暂停不了!)
2015-06-16_194406
暂停程序后——我们按面板上的“K”按钮,也就是“堆栈窗口” PS:快捷键 Alt + K 如下图所示
2015-06-16_195030
我们成功进入了堆栈窗口,接下来我们在下面的MessageBoxA处右键,选择“显示调用”,请看下图:
2015-06-16_195504
我们跟踪这个对话框 messageBoxA走到了这里,如图下,我们需要确定这里的位置所以我们 F2 在这里下了断点,如下图所示:
ssdds1
 
断点结束后,然后OD重新载入程序,运行程序,点击“使用说明”也就是重复一下刚才的操作。这里与刚才不同的是,信息框没有弹出来。成功的被我们断下了。并且停在了刚才下断的位置。 重新载入快捷键 Ctrl+F2 面板上是黄色暂停旁边的第二个按键。
2015-06-16_201836
然后我们向上找,看看有没有一个跳转能跳过我们的断点call。向上找一找,找了半天没有发现能够跳过这里的。段首都没有找到一个跳转可以跳过这个call,我们可以大胆的认为他是另外一个call里的子call。于是乎我们F8单步步入,看能不能弹出“提示”对话框。
2015-06-16_202212
我们单击确定(课件上的)如下图,然后我们F8一步一步步入~~~~~~
2015-06-16_202433
经过数次跳转各种F8我们来到了段尾,注意掌握手速看着些不要把这里跳过了。如图下所示位置:
2015-06-16_202727
注意在上面那个retn处(段尾),又一次F8,我们出来了。进入了下图所示位置,很明显我们跳出了刚才那个子CALL:
2015-06-16_203122
现在,我们出来了,上面的call仍然是调用我们断点的小call。那既然是这个call调用的我们断点call,那就看看这个call有没有跳转可以跳过去。如果这里可以跳过去,那我们的错误提示信息框就不会出现了。找了找没发现什么,那么我们继续F8看能不能跳出这个CALL(这可能还是个子CALL)我们发现又一个rutn 又出来了!
2015-06-16_204425
好了我们尝试可不可以在这里跳过这个CALL ,毕竟周围就有连个JE跳转,这应该是大宇宙了吧(类似跟目录)。
2015-06-16_205023
这么说,上面一个JMP(无条件跳转)跳过了这个CALL和周边,无条件 跳转。那么我想一想,CALL里面包含错误对话框信息,这里有个JMP 跳过CALL,那么很显然,我们输入错误账号密码后这里应该不跳过CALL啊? 对了,他可能是跳过了JMP。 即:错误 程序不步入 JMP 调用CALL 正确 程序步入JMP 不调用CALL。
我们必须额外关注JMP前后是否有跳入JMP跨过这一部分(也就是跳过JMP)  我们往上走找到第一个跳转,就是图中说的JMP跳转,发现如图所示的情况:
2015-06-16_205943
 
我们点击下一行,看看是什么跳入了:
2015-06-16_210324
 
 
 
2015-06-16_210545
上图!我们去找:0040174C这个位置,根据红线找就可以了~发现这里是个 JE(等于跳转)。
好了接下来我们可以在这里 JE处 F2下断点 Ctrl+F2 重新载入程序,点击使用说明——程序停下来了 而且没有提示框! 好了,至少我们知道我们的断点仍然在爆破点周围。然后我们爆破这里!
或者我直接尝试下 NOP掉这个跳转,让其顺序执行 到JMP 跳过CALL….看看能不能完成爆破!
2015-06-16_211157
 
好了我们保存修改,测试程序————OK,爆破成功!!!累死我了,码字好辛苦…..这节课难度可以吧,写了1个半小时。
2015-06-16_211431
 
 
 
 


CyanProbe , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:七-深入爆破 跳出基础 利用OllyDbg 无字符串爆破
喜欢 (2)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(5)个小伙伴在吐槽
  1. 好吧,我表示头大····· :cool:
    Me.稀奇2015-06-17 09:06 回复
    • cyanprobe
      文艺女,快闪开————明明日记里有你能看懂的东西......
      凶恶的方块2015-06-17 09:26 回复
  2. 我就是随便看看
    159474068862015-06-17 10:18 回复
  3. 謝謝大大文章 希望大大能多寫一些讓大夥兒一起學習
    qoqsi2016-02-24 22:00 回复