1.前言
很多时候我们可以使用Spy++查看某个窗口的消息,但是有一定的局限性。
以编辑控件为例,我们打开Spy++截获应用程序的EM_GETTEXTRANGE消息,却只能看到TEXTRANGE结构的指针值,看不到结构的内容。
如果想要详细查看消息的WPARAM和LPARAM参数,Spy++是无能为力的。
但是可以通过WinDBG的条件断点却可以轻松实现。
我们先从最简单的WinDBG断点开始,将断点打在USER32!SendMessage函数上,就可以看到应用程序传递了什么参数。
2.WinDBG断点
首先,设置符号路径(假设放在本地的目录E:\symbols):
SRV*E:\symbols*http://msdl.microsoft.com/download/symbols
然后,将WinDBG调试器附加到目标进程并且中断程序。
接着,就可以打断点了。
bp USER32!SendMessageW
bp USER32!SendMessageA
打完断点之后,继续执行程序。