od里shift+f条件断点用法篇

od里shift+f条件断点用法篇

ID:32766967

大小:90.00 KB

页数:4页

时间:2019-02-15

od里shift+f条件断点用法篇_第1页
od里shift+f条件断点用法篇_第2页
od里shift+f条件断点用法篇_第3页
od里shift+f条件断点用法篇_第4页
资源描述:

《od里shift+f条件断点用法篇》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、致菜鸟:OD里SHIFT+F4条件断点用法篇发帖人:pjb时间:2005-08-2420:25原文链接:http://bbs.pediy.com/showthread.php?threadid=16494高手就不必看了~,若有错误的地方请指正!先说一点ALT+L看记录~在某条语句上按了SHIFT+F4后出现了个对话框,1)第一行是"条件":要输入的肯定是你感兴趣的条件啦,比如说下面的俩句0041150pusheax0041151call[TranslateMessage]你在0041150处下条件记录中断,假如这时

2、候你要是想知道ESI等不等于0,那就可以设置条件ESI==0或ESI!=0反正是关于ESI的条件了而不是只能利用这行的EAX.当然一样可以在0041150处下断追消息,比如说你想知道按了鼠标移动消息,那么就设置MSG==WM_MOUSEMOVE或是MSG==0200(移动的数字代码).有人该问了,消息记录好象应该在下一行有函数的下断才正确吧?其实不一定非要在传递消息的那行0041151下断的,但在那行下断的好处是可以记录到函数参数,这在下面会讲到~4/4"条件"这的书写是按照MASM32汇编的形式书写的,比如==!

3、=><2)"说明"="表达""解码表达式的值""说明"就是个注释啦,添不添无所谓了,除非你下的记录中断比较多,这样在记录里能看的明白~"表达"其实就是我们记录的核心啦,程序在我们第1小条里的"条件"为真的时候,就会记录我们在"表达"里填的内容,比如说ESI==0的时候,我们记录[eax+4]的值反正是你感兴趣的内容啦,若是想记录消息就添MSG啦,很多时候我们只添了"条件"而没有添"表达",程序中断后就会显示"未知的函数或标识符!",这就是原因了.至于下面的"解码表达式的值"你可以随便选了,他不过是把记录后的数据又分

4、析了一下,比如说我们记录了[eax+4]的值是201,那么当你选"信息代码(WM_XXX)"的时候那么你在记录(ALT+L看记录)里看到的就是被分析成了201WM_LBUTTONDOWN当你选"布尔数值",那么记录里数值201后面就会跟个TRUE了,其实就是OD对这个数据按照我们选择的类型又进行了一次分析而已~~3)暂停程序=>永不条件满足时永远这三个选择就是条件为真记录表达的时候程序暂不暂停程序,那就看你调试的需要了~4)记录表达式的值=>永不条件满足时永远呵呵,要是选"永不",那么我们设立记录"表达"还有啥意义

5、啊,若是选"永远",那么条件似乎不就没意义了,因为记录的时候已经不管条件了,只要运行到这就记录表达.不过好象也可以利用的,自己去想想啦..我不说.一般都是选"条件满足"啦.5)记录函数参数=>永不条件满足时永远这个要是你下在没函数的那行,那么这行就变灰了~~记录函数的参数很有意义啊,直接可以看到很多信息,我们比如说在有函数的那行下条件记录."条件"是EAX==0"表达"是[EAX+4],然后在这选择记录函数参数在"条件满足时";当然你若只想记录运行到此处的函数参数,那么就空着"条件"和"表达"吧,同时3)和4)的选

6、择也要变为"永不"了...也许你在记录了啥也看不到,因为运行到这行可能EAX总不=0,那么好换换EAX>0,好象看了到一堆,然后还有PMSG=XXXXHw=XXXX,这就是运行到这里这个函数的参数啦~~我们也可以记录CREATFILEA4/4函数,那么就知道都打开什么文件了~~6)"运行次数":0为无限次7)"如果程序暂停,发动如下参数到插件中..."我不会,我就会上面那些,希望高手给补充一下,好让我们这些菜鸟学学~~注意一点:我们在OD菜单"查看"=>"窗口"里也可以用老鼠标右键给窗口过程下消息断点,下完后你可以

7、用SHIFF_F4打开那个消息断点,发现它其实就是条件记录断点的一种形式而已~~~举个例子吧:比如说一个程序要求注册,点后出现一个注册窗口那么我们就要对点注册按钮下断,看看它之后执行了什么~~注册窗口如果是对话框,那么肯定要用函数CreatDialoParam或DialogBoxParam若你对这俩函数都不了解的话,那就去看看书吧...首先用OD里的插件"窗口工具"获得注册按钮的标识(即ID),比如说是0422,记录下来备用啦~,在OD里对这俩函数下断,然后执行程序,让注册窗口显示就会中断,OD里看堆栈,此函数的第

8、4个参数pDlgProc就是对话框的过程入口了,这里是0041b0b0是入口4/4去对话框入口处,SHIFT+F4,在"条件"里输入[ESP+8]==0111&&[ESP+C]==0422"表达"可以空着,暂停程序在"条件满足时"又该问了,为什么这么写?请记住:由于是过程调用,肯定要先向堆栈里压数据的,也就是标准说法:传递参数!对于对话况过程或窗口过程,执行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。