首页 > 代码库 > OD查找 扫雷主窗口函数 地址

OD查找 扫雷主窗口函数 地址

   闲着没事,使用OD调试下扫雷程序,看了郁金香大牛的视频,OD载入扫雷程序,F9运行,查看——窗口(刷新),就可以看到主窗口地址,不知道什么原因,本机OD显示的地址是FFXXXXXXX地址,很明显不对,换了好几个系统也不正常。无奈,只好自己跟下。

 一、OD打开扫雷程序,程序停在模块入口点出


二、ctrl + g 在 RegisterClassW函数出下断点


然后 F9运行,停在此处,然后 ctrl + F9 跳出此函数


在pWndClass出下断点(此处是窗口注册类,下上断点看窗口注册类的地址),然后取消RegisterClassW的断点,重新运行,程序停在,pWndClass处



可知窗口注册类的地址为 7FED0 ,内存中查看窗口注册类内容。

由窗口注册类结构

typedef struct tagWNDCLASSW {
    UINT        style;
    WNDPROC     lpfnWndProc;
    int         cbClsExtra;
    int         cbWndExtra;
    HINSTANCE   hInstance;
    HICON       hIcon;
    HCURSOR     hCursor;
    HBRUSH      hbrBackground;
    LPCWSTR     lpszMenuName;
    LPCWSTR     lpszClassName;
} WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW;

可知,结构第二项,为回调函数的地址,从内存中可知,回调函数地址为01001bc9



根据回调函数的参数,右键——分析——假定参数,如图:



在此处下上断点,一但windows有消息传递,则在此处断下



我们可以拦截指定消息,右键——断点——条件




有单机按钮命令消息则断下


OD查找 扫雷主窗口函数 地址