关闭

Ollydbg中断方法浅探

237人阅读 评论(0) 收藏 举报
分类:

  Ollydbg中断方法浅探

Ollydbg是一个新的32位的汇编层调试软件。适应于windows98、me、2000、xp和2003操作系统。由于他具有图形窗口界面,所以操作方便、直观,是cracker的好工具。 
由于Ollydbg没有了TRW2000的万能断点,所以许多的新手感觉到用Ollydbg断点不好找。现在我来的说说Ollydbg下中断的几种方法。本人是个菜鸟,水平有限,可能不能完整的写出来,也可能存在错误。请大家指正。 
我所表述的是Ollydbg v1.09d中文版,其他版本和英文版下自己参考。 

第一 寻常断点 
Ollydbg中一般下中断的方法,就是在程序的地址处用鼠标选择这一行。然后按F2键,这时被选择的那一行的地址会变成别的颜色,就表示这个地址处下了中断。然后运行程序时只有到这个地址处就会被Ollydbg中断。 
这个方法用的比较多,所以把他称作寻常断点。 
如果有命令行插件,就可以在命令窗口中输入BPX xxxxxxxx 下断点。 
优点:只要自己怀疑是重要的代码处都可以下这种下断点,不受条件的限制,所以方便实用。 
缺点:如果不知道代码功能下断点具有盲目性。 

第二 API断点 
Ollydbg中一般下API中断的方法,有二种。 
1. 在代码窗口中点鼠标右键,出现功能菜单。在[搜索]选择项下有〔当前模块的名称〕和〔全部模块的名称〕俩项,选择其中的一项就打开了程序调用API的窗口,在这个窗口中选择你要跟踪的API函数名。双击这个函数就能到程序的调用地址处。然后用F2下中断。也可以在API窗口中选择需要跟踪的函数点鼠标右键出现功能菜单,选择〔在每个参考设置断点〕。同样下了断点。 
快捷方式:Ctrl+N 
2. 在命令行窗口中输入BPX API函数名或者BP API函数名 后回车。这时出现了所有调用这个函数的地址的窗口,在这个窗口中可以看到调用这个API函数的地址已改变了颜色。说明下好了断点。 
说明一下:BPX一般中断在程序调用API的地址处。BP会中断在API的写入地址处。二这有所不同,根据需要选择。 
优点:这种方法下的断点是针对每一个API函数的,所以具有明确的目的。 
缺点:关键的API函数不容易找到。所以有时下的断点没有作用。 

第三 内存断点(跟踪关键数据的断点) 
Ollydbg中的内存断点相当于TRW中的bpm 断点。 
下断点的方法是:在程序运行中断时选择界面中的转存窗口,用光标选择内存中的一段关键数据(颜色会改变),然后右击鼠标出现功能菜单。选择〔断点〕项,其中有二个选择〔内存访问〕和〔内存写入〕。 
〔内存访问〕断点是程序运行时要调用被选择的内存数据时就会被Ollydbg中断,根据这个特点在破解跟踪时只要在关键数据内存中下中断就可以知道程序在什么地方和什么时候用到了跟踪的数据。对于一些复杂算法和流程变态的算法跟踪有很大的帮助。从破解上讲,一个注册码的生成一定是由一些关键数据或者原始数据计算来的。所以在内存中一定要用到这些关键数据。那么〔内存访问〕断点就是最好的中断方法。 
〔内存写入〕断点是程序运行时向被选择的内存地址写入数据时就会被Ollydbg中断。根据这个特点在破解时可以跟踪一个关键数据是什么时候生成的,生成的代码段在那个地方。所以一个关键的数据如果不知道他的由来就可以用〔内存访问〕断点查找计算的核心。 
内存中断的下断点还有另外的一种方法:程序运行时如果知道关键的数据,比如我们输入的试验码、程序生成的序列号等。这时在内存中一定存在这些数据。用Alt+M打开内存窗口,在这个窗口中搜索知道的关键数据。用光标选择这些数据同样下内存中断,这种方法更容易找的关键的数据。 
优点:断点是直接面向关键数据的,所以比较容易到核心部分。 
缺点:内存断点重新运行后会消失,干扰比较多。 

第四 硬件断点(跟踪关键标志的断点) 
硬件断点是Olldbg所特有的断点,他不会因为重新运行就销毁,只要不删除。跟踪这个程序时就有效。但他在98系统下会不起作用。 
硬件断点是根据关键标志回逆到关键代码的好方法。下中断的方法和内存断点的方法相同,有三个方式〔硬件访问〕、〔硬件写入〕、〔硬件执行〕。一般用前2个。他也同样有内存断点的特性,所以可以用内存断点的地方也可以用硬件断点。这里介绍利用他来跟踪注册标志的使用方法,一般软件的注册都用到了标志比较。即在内存地址中有一个标志,在判断是不是注册时比较标志的值。不同的值表示不同的注册状态。这个标志的地址一般比较固定。根据这个特点可以下硬件断点来跟踪标志位是什么地方被标志的。 
方法:在转存窗口中选择到标志存放的内存地址处,然后选择标志值。下〔硬件写入〕中断(根据标志的字节下不同的长度)。重新运行程序你会发现Ollydbg会不断的中断在这个标志的内存地址处。在功能菜单的〔调试〕选项下选择〔硬件断点〕就打开了硬件断点的窗口,在这个窗口中选择〔跟踪〕,这时转存窗口就会来到被下中断的内存地址处。运行程序跟踪内存地址中的值就会知道被赋标志的代码,跟踪到计算的核心。〔硬件访问〕的使用可以知道程序在运行时多少地方用到了这个注册标志。对于破解复杂效验的程序十分的有效。 
直接在命令栏里下bh ****硬件断点

转:http://www.programfan.com/blog/article.asp?id=8252

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

OllyDbg中设置调试点的四种方法

有过Java或者其他语言开发经验的,都知道断点的概念。在我们测试程序时可以在需要的位置设置断点,这样当程序执行到断点时流程就会停止,此时我们可以查看变量、表达式等的值。 同样,在使用OllyDbg时...
  • smugaoyi
  • smugaoyi
  • 2016-05-15 18:17
  • 2260

ollydbg原理分析~硬件断点与int3

今天继续接着上次的分析,来继续分析OD原理,这次先分析OD最基本的功能,断点,单步和运行到指定位置。 类似的文章前辈们已经写了很多了,这里只是将前辈们的思路实践了一下,顺便加入一点自己的理解和认识! ...
  • Nightsay
  • Nightsay
  • 2014-12-24 13:40
  • 1942

Ollydbg 编写脚本的一些语法及例子(OD脚本)

OllyScript脚本语言是一个种类汇编的语言。你使用它来控制ODbgScript和脚本运行. 在后面的文档中, “源操作数” 和 “目的操作数”表示以下含义: - 十六进制常数,既没有...
  • whatday
  • whatday
  • 2013-01-29 16:59
  • 13112

Ollydbg 中断方法浅探

Ollydbg 中断方法浅探                       &#...
  • gotosola
  • gotosola
  • 2012-04-12 22:59
  • 596

Ollydbg 中断方法浅探-各种断点常识知识

  • 2013-07-15 00:50
  • 8KB
  • 下载

VCDebug、Ollydbg、WinDbg字符串条件断点设置方法总结

无聊的时候浏览看雪,总是会有些收获。碰到好的文章就转载过来了,再次对原作者表示感谢! 原文:http://bbs.pediy.com/showthread.php?t=173334   大牛直接...
  • chence19871
  • chence19871
  • 2013-10-29 11:38
  • 1661

VSDebug、Ollydbg、WinDbg字符串条件断点设置方法

字符串断点在下断点时也是一个比较常用的功能。 不过网上介绍字符串断点设置技巧的文章很少,有的也不准确。 其实他们设置的方法整体来看比较简单。 VSDebug VSDebug 微软VS自带调...
  • sunyikuyu
  • sunyikuyu
  • 2013-04-28 20:39
  • 1815

OllyDBG安装 配置 基本调试方法

一、OllyDBG 的安装与配置 OllyDBG 1.10 版的发布版本是个 ZIP 压缩包,只要解压到一个目录下,运行 OllyDBG.exe 就可以了。汉化版的发布版本是个 RAR 压缩包,...
  • piaopiaopiaopiaopiao
  • piaopiaopiaopiaopiao
  • 2014-04-27 15:36
  • 499

Ollydbg使用方法和技巧

Ollydbg使用方法和技巧 收藏OllyDbg的help-怎样开始调试(翻译)最简单的方法是启动OllyDbg,点击File|Open,然后选择你想调试的程序。程序需要命令行参数输入对话框下方的文本...
  • victory2002
  • victory2002
  • 2011-04-15 11:57
  • 471

OLLYDBG下断点方法

  • 2013-08-28 12:30
  • 28KB
  • 下载
    个人资料
    • 访问:792430次
    • 积分:10971
    • 等级:
    • 排名:第1703名
    • 原创:107篇
    • 转载:1381篇
    • 译文:0篇
    • 评论:53条
    最新评论