OD 菜单类CALL分析

2020-06-21  本文已影响0人  blank_white
原理:

WM_COMMAND 在以下条件下会产生:点击菜单, 点击加速键,点击子窗口按钮,点击工具栏按钮。这些时候都有command消息产生。

  1. 查看>窗口(如果没有出现任何窗口右键刷新即可)>跟随ClassProcess
image.png
  1. 分析代码>假定参数(有时可能分析不出来是什么,需要自行假定)
image.png
image.png
  1. 我们希望当 窗口消息是 WM_COMMAND 的时候停下来,所以要设置条件断点(shift+F2)
image.png
image.png
  1. 点击扫雷游戏中的菜单项目,如 游戏>初级 ,触发断点,然后就会停下来。
    观察右下角,一共四个参数,参数入栈从右到左
push hControl 句柄可以为空  ->  push 0
push Notify  菜单号,可以尝试修改此值 来call 其他菜单  ->   push 209
push WM_COMMAND   此消息的值为 111 -> push 111
push hWnd 句柄可以空  -> push 0
call  WinPro  -> call  01001BC9
注入 ,可以发现调用了菜单里面的选项
image.png
image.png
  1. C++ 实现
HWND h = ::FindWindow(NULL, TEXT("扫雷"));
    if (h==0)
    {
        ::MessageBox(NULL, TEXT("未找到扫雷"), NULL, MB_OK);
    }
    ::SendMessage(h, WM_COMMAND, 0x20A, 0);
上一篇下一篇

猜你喜欢

热点阅读