美文网首页
windows 程序消息事件定位

windows 程序消息事件定位

作者: 一丶味 | 来源:发表于2017-03-27 09:27 被阅读37次
    • 消息事件定位
      首先找RegisterClass
      ATOM WINAPI RegisterClass( _In_ const WNDCLASS *lpWndClass);
      找到 push进去的lpWndClass参数地址,根据_WNDCLASS 结构可知,结构的第二个变量是窗口回调处理函数的首地址。

    typedef struct _WNDCLASS {
    UINT style;// 窗口类型
    WNDPROC lpfnWndProc; //窗口处理函数
    int cbClsExtra;//窗口扩展
    int cbWndExtra;//窗口实例扩展
    HINSTANCE hInstance;//实例句柄
    HICON hIcon;//窗口的最小化图标
    HCURSOR hCursor;//窗口鼠标光标
    HBRUSH hbrBackground;//窗口背景色
    LPCTSTR lpszMenuName;//窗口菜单
    LPCTSTR lpszClassName;// 窗口类名
    } WNDCLASS, *LPWNDCLASS;

    找到消息函数地址处,下条件断点。

    回调函数

    [esp+8] == 0x201
    [esp+8] 是消息ID,0x201 是鼠标左击事件 WM_LBUTTOMDOWN

    • 子窗口按钮消息处理

    在消息函数地址处,下条件断点。
    [esp+8] == WM_COMMAND && [ESP+4] == 按钮句柄

    按键消息响应流程.png WM_COMMAND.png

    相关文章

      网友评论

          本文标题:windows 程序消息事件定位

          本文链接:https://www.haomeiwen.com/subject/vivtmttx.html