ollydbg 入门系统(六) - 消息断点及run跟踪补充

ollydbg 入门系统(六) - 消息断点及run跟踪补充

ID:1489968

大小:237.50 KB

页数:6页

时间:2017-11-11

ollydbg 入门系统(六) - 消息断点及run跟踪补充_第1页
ollydbg 入门系统(六) - 消息断点及run跟踪补充_第2页
ollydbg 入门系统(六) - 消息断点及run跟踪补充_第3页
ollydbg 入门系统(六) - 消息断点及run跟踪补充_第4页
ollydbg 入门系统(六) - 消息断点及run跟踪补充_第5页
资源描述:

《ollydbg 入门系统(六) - 消息断点及run跟踪补充》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、OllyDBG入门系统(六)-消息断点及RUN跟踪补充看完了《OllyDBG入门系统(五)-消息断点及RUN跟踪》之后感觉如何?会否有如下问题:1、是否觉得不知道在哪下断?2、为什么要这样子下断?3、如何确定断下来后的位置就是正确的?好,就本着这几个问题来分析一遍。首先,先回顾下Windows的消息机制。要点:所有要处理的消息必然会由程序自己处理,不处理的消息都交由Windows处理。Windows的消息处理函数的格式,如下:LRESULTCALLBACKWindowProc(HWNDhwnd,

2、//handleofwindowUINTuMsg,//messageidentifierWPARAMwParam,//firstmessageparameterLPARAMlParam//secondmessageparameter);其中uMsg就是关键,它代表消息的类型,如:WM_COMMAND,WM_GETTEXT等。记好哦。下面,我们来用实例讲解。这个CrackMe是用对话框做的(你是怎么知道的?)。1、用OllyDbg加载,CrtlN,找到函数:USER32.DialogBoxPara

3、mA,右击->“在每个参考上设置断点”。2、F9,运行。看,被拦了下来,如图:3、其中DlgProc的内容,就是我们需要找的东东。这个地址是消息处理函数的入口点。现在来解释为什么要在窗口那才有消息断点,看图,要下消息断点,首先得找到具有Windows消息处理函数格式的函数,然后,再根据栈的数据来判断消息,如果符合下断的消息,那么,OllyDbg就会拦下来(还会觉得不知道在哪下消息断点了吗?知道该如何下消息断点了吧?)。很明显有一点,这个消息断点的功能是有限的,比如,要拦主窗口中的菜单消息呢?所以

4、,消息断点的功能还是有限的。如何扩展?扯远了,下面再讲。4、CtrlG来到cyle.0041029,我们来到了消息处理函数了,但是,OllyDbg并未识别出这个函数是消息处理函数。所以,在cyle.0041029处,右击->“分析”->“假定参数”,如图:弹出一个对话框,选择“WinProc(hWnd,msg,wParam,lParam)”。点击“应用”后,如图。5、在cyle.0041029处,右击->“断点”->“在WinProc上的消息断点”(平时是不是没见过这个菜单呀?呵呵)。5、在“消

5、息”列表框中,选择你要下断的消息(AltB,删除以前的断点,以免影响心情)。6、F9,运行,程序运行起来了。这时没什么事情发生,当你在里面点了一个文本框之后(点它,是想让它获得Focus(焦点),以便能够输入数据),事情就发生了。现在没办法在文本框里输入注册码,也没办法点击按钮。这是怎么回事呢?仔细看一下Stack(栈)的那个窗口,噢!原来被文本框的通知EN_SETFOUCE搞坏了!停留在EN_SETFOCUS和EN_KILLFOCUS两个消息之间了。7、好,现在来扩展消息断点(消息断点是否是条

6、件断点的特殊例子?),即使用条件断点(卖弄了一下,呵呵)。看你需求,条件和条件记录,在这里是没什么区别的,因为不需要记录的内容。8、按ShitfF2,输入MSG==WM_COMMAND&&[ESPC]==66(这个66是怎么来的?这个就是那个Check按钮的ID,意思就是“当收到WM_COMMAND,且是由ID为0x66发出的时候中断”),确定,F9,运行。9、现在,输入Name和Serial之后,点”Check”按钮。10、这次中断,位置上似乎没有变化,但是,明白了消息处理机制,应该知道这次中

7、断的不同吧?(这次会流程会流到注册算法那哦)00401029>/.>enter0,0;解码为0040102D

8、.>pushebx0040102E

9、.>pushedi0040102F

10、.>pushesi00401030

11、.>cmp[arg.2],11000401037

12、.>jeshortcycle.0040105E00401039

13、.>cmp[arg.2],111//111=WM_COMMAND00401040

14、.>jeshortcycle.00401082//肯定在这里跳(为什

15、么?)00401042

16、.>cmp[arg.2],1000401046

17、.>jeshortcycle.0040105700401048

18、.>cmp[arg.2],20040104C

19、.>jeshortcycle.004010570040104E

20、.>xoreax,eax11、来到cycle.00401082,00401082

21、>>cmp[arg.3],6700401086

22、.>jnzshortcycle.0040108D//这里肯定会跳00401088

23、.>callcycle.00401151

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

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

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