-
-
[原创]x64dbg入门系列(五)- 消息断点
-
发表于:
2020-6-19 15:07
20262
-
程序有两个文本框、按钮。为了学习消息断点,这次将会从使用消息断点的角度来分析程序。
将程序拖入到调试器中直接运行程序,接着在句柄标签栏——>右键刷新,就可以在窗口这个界面看到按钮窗口
选中我们需要下的按钮断点,右键——>消息断点,就会出现下图选择消息的界面
按钮有几种状态?
两种:按下、弹起
这两个状态对应到消息断点就是按下“WM_LBUTTONDOWN”,弹起“WM_LBUTTONUP”
接着我们在文本框中输入测试数据。
当按下“Check”按钮后调试器会在下图的位置断下,这个时候如果一直单步调试是走不出user32.dll的,这是因为IsDialogMessage会把句柄传递位ring0。
这个时候我们只需要在内存布局——>代码段右键——>内存执行断点——>运行
这个时候程序会在下图的位置断下。
继续往后分析发现GetDlgItemTextA函数,接着对这段代码进行详细分析,分析结果如下。
下图即是“call 201166”和“call 40117B“所对应的MessageBoxA弹窗。
这篇文章主要是为了让大家认识和了解消息断点,所以一些有关算法的关键函数并没有做过多的分析。
参考:https://bbs.pediy.com/thread-21532.htm
公众号:一谷米粒
知乎:https://www.zhihu.com/people/yi-gu-mi-li-47
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)