今天通过调试ollydbg的F2打cc断点功能来演示如何查找程序的消息回调函数
其实原理很简单,就是利用RegisterClass获取消息回调函数
ollydbg的版本使用的是110
下载地址
1. [官网](http://www.ollydbg.net/download//odbg110.zip) 2. [个人分享](https://wwu.lanzout.com/iMRkc06uq3xe)
使用x64dbg
启动调试ollydbg
,按F9运行
再谁便找个程序拖入ollydbg
调试
转到x64dbg的句柄选项卡,然后右键刷新
可以看到上图窗口部分可以看到窗口的一些信息,如窗口过程(消息回调函数),窗口标题,窗口的类名等等,这些信息都是RegisterClass
和CreateWindow
的参数
我们只需要窗口过程在主模块的消息回调函数,所以先查看主模块的地址,在符号选项卡中找到主模块,右键转到内存布局
从上图可以看出主模块.text的节区地址范围为0x401000~0x4B0000,我们筛选出符合条件的窗口
由于ollydbg的cc断点功能是有快捷键F2触发的,所以我们要在所有窗口过程下按键消息断点
然后在ollydbg按F2下断点,ollydbg卡住,结果x64dbg断在0x0041E604处(如下图所示),看来ollydbg下cc断点的功能就在这个消息回调函数中了