• 2975阅读
  • 6回复

任鸟飞2014 OD中的几种断点及常用命令 [复制链接]

上一主题 下一主题
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2014-07-20
— 本帖被 啊冲 执行取消置顶操作(2016-12-14) —


        发这个贴子的目的是为了让学员能够对辅助学习有一个清晰的认识,不至于急于求成,一镢头挖一口井,最后学的样样行,样样松。一定要循序渐进,一步一个脚印。
        学习辅助是一个枯燥又漫长的过程,易退难进,这是很多同学学不下去的主要原因。所以想学成辅助,一定要有恒心有耐心也有一颗平常心。下面简单的说一下学习辅助的几个步骤。


第一寻常断点

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

第二API断点

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

第三内存断点(跟踪关键数据的断点)

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

第四硬件断点(跟踪关键标志的断点)

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

随着游戏辅助的泛滥,很多游戏对一些断点进行了检测,所以只有灵活运用才能在辅助制作中立于不败之地!


以下命令适用于 OllyDbg 的命令行插件 Cmdline.dll(显示于程序的插件菜单中)
CALC判断表达式
WATCH添加监视表达式
AT在指定地址进行反汇编
FOLLOW跟随命令
ORIG反汇编于 EIP
DUMP在指定地址进行转存
DA转存为反汇编代码
DB使用十六进制字节格式转存
DC使用 ASCII 格式转存
DD转存在堆栈格式
DU转存在 UNICODE 格式
DW使用十六进制字词格式转存
STK前往堆栈中的地址
AS(AS + 地址 + 字符串)在指定地址进行汇编
BP进行条件中断(有条件的断点)
BPX中断在全部调用 (Call)
BPD清除全部调用中的断点
BC清除断点
MR内存断点于访问时
MW内存断点于写入时
MD清除内存断点
HR访问时进行硬件中断
HW写入时进行硬件中断
HE执行时进行硬件中断
HD清除硬件断点
STOP停止运行程序调试
PAUSE暂停执行程序调试
RUN运行程序进行调试
GE运行和通过例外
SI单步进入 Call 中
SO步过 Call
TI跟踪进入直到地址
TO跟踪步过直到地址
TC跟踪进入直到满足条件
TOC跟踪步过直到满足条件
TR运行直到返回
TU运行直到用户代码
LOG查看记录窗口
MOD查看模块窗口
MEM查看内存窗口
CPU查看 CPU 窗口
CS查看 Call 堆栈
BRK打开选项设置窗口
EXIT退出 OllyDbg
QUIT退出 OllyDbg
OPEN打开一个可执行文件
CLOSE关闭可执行文件
RST重新运行当前程序
HELP查看 API 函数的帮助
1条评分小风币+3
啊冲 小风币 +3 - 2014-07-20
离线装三疯

只看该作者 沙发  发表于: 2014-07-25
离线121770101

只看该作者 板凳  发表于: 2014-10-26
万恶的金币 万恶的金币 万恶的金币 万恶的金币
离线lukeigun

只看该作者 地板  发表于: 2015-01-19
感谢分享!!!
离线peakusu

只看该作者 4楼 发表于: 2015-05-04
     谢谢分享 小白认真学习中……
离线dxian5188

只看该作者 5楼 发表于: 2015-11-03
谢谢分享 小白认真学习中……
离线jiesiting001

只看该作者 6楼 发表于: 2016-04-06
一定要搞完
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个