-
-
[原创]x64dbg入门系列(五)- 消息断点
-
发表于:
2020-6-19 15:07
22411
-
程序有两个文本框、按钮。为了学习消息断点,这次将会从使用消息断点的角度来分析程序。

将程序拖入到调试器中直接运行程序,接着在句柄标签栏——>右键刷新,就可以在窗口这个界面看到按钮窗口

选中我们需要下的按钮断点,右键——>消息断点,就会出现下图选择消息的界面
按钮有几种状态?
两种:按下、弹起
这两个状态对应到消息断点就是按下“WM_LBUTTONDOWN”,弹起“WM_LBUTTONUP”


接着我们在文本框中输入测试数据。

当按下“Check”按钮后调试器会在下图的位置断下,这个时候如果一直单步调试是走不出user32.dll的,这是因为IsDialogMessage会把句柄传递位ring0。

这个时候我们只需要在内存布局——>代码段右键——>内存执行断点——>运行

这个时候程序会在下图的位置断下。

继续往后分析发现GetDlgItemTextA函数,接着对这段代码进行详细分析,分析结果如下。

下图即是“call 201166”和“call 40117B“所对应的MessageBoxA弹窗。

这篇文章主要是为了让大家认识和了解消息断点,所以一些有关算法的关键函数并没有做过多的分析。
参考:https://bbs.pediy.com/thread-21532.htm
公众号:一谷米粒
知乎:b7bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2*7K9r3W2Z5N6g2)9J5k6h3y4G2L8g2)9J5c8Y4m8W2L8%4m8D9k6g2)9J5c8Y4W2A6i4K6u0V1k6%4g2Q4x3X3c8E0K9g2)9J5k6r3I4A6i4K6u0V1y4o6M7`.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课