消息断点

一、
1.windows消息循环:不具体介绍,可以自己看看,主要就是窗口、控件、消息
窗口就是比如我们打开一个程序,比如笑脸,就是一个窗口
控件就是窗口里的一些元素,比如按钮等等
消息就是这个窗口内执行了某些东西(比如按了一个按钮),会有消息
2.窗口可以在OD的W界面内看(如果没显示可以右键刷新)
3.消息可以自己选择,对于我们要看的按钮来说,可以选择202(鼠标左键抬起),选择按消息暂停程序、记录,即可设置一个消息断点
4.具体选择什么样的消息,要看具体情况,按钮的话就是button,如果你也不知道是什么,那就选任意即可
如图设置消息断点,其实消息内容也可以设置成button,但是可以设置的更加具体详细一些,比如鼠标左键抬起
消息断点
下图,点击了OK按钮,成功断住
消息断点
二、
1.从系统领空返回程序领空
(1)直接alt+f9
(2)ctrl+f9
(3)手工返回,通过看函数堆栈的调用处的地址
(4)点M,在程序区段直接下内存访问断点,然后f9执行即可
2.其实消息断点的本质还是条件断点,可以利用消息断点,修改条件记录断点的记录,实现记录。
示例如下:
先设置一个消息断点
消息断点
然后查看断点面板,发现有一个断点,并且这个断点是个条件条件记录断点,其实条件就是[esp+8]=鼠标左键抬起(其实就是[esp+8]=0x202)
消息断点
我们可以将这个条件取消,令表达式=[esp+8],这样可以查看鼠标的活动了,并且不中断。
消息断点
重新加载运行程序,可以点击L查看日志,可以右键将日志写入文件,就能记录鼠标的活动了
消息断点
消息断点
3.像API断点,断到了我指定的API函数的位置,消息断点这里断到了哪里?貌似看不出来他断到的是什么函数,这样断有什么用处呢?平时用这个断点,有什么具体的作用呢?
其实是断在了系统向程序发送消息的过程中。需要返回到程序领空才能继续分析。好处在于如果我们不知道用什么函数来分析,可以使用按钮作为切入点。如注册按钮,拦截在程序注册附近的代码进行分析。

三、关于消息断点的进一步学习
1.在二中,我们设置消息为202,编辑其条件,发现是[esp+8]=202,为什么是esp+8呢?
我们设置消息断点202,并且断到这个位置,
消息断点
从堆栈处可以看到,esp+8,其实就是消息的具体内容,因此我们设置的消息是202,对应的其条件断点的条件其实就是[esp+8]=202,因此,消息断点其实就是条件记录断点,只是把条件变成了不同的消息提示,并且进行了归纳,形成了消息断点这个东西
2.我们记录并且导出的那个日志文件,有什么具体的作用呢?其实主要是方便我们查看不同的消息类型,比如我们需要202(鼠标左键抬起)的消息,我们可以查一下,比如:200(鼠标滑过)201(鼠标左键按下)等等

消息断点消息断点 清舟侧丶 发布了17 篇原创文章 · 获赞 4 · 访问量 1526 私信 关注
上一篇:ESP定律脱壳——NsPack3.x脱壳


下一篇:esp寻址ebp寻址