首页
社区
课程
招聘
[求助]如何跟踪MFC程序的菜单事件地址
发表于: 2016-1-28 14:06 5654

[求助]如何跟踪MFC程序的菜单事件地址

bxc 活跃值
6
2016-1-28 14:06
5654
最近在逆向一个程序,需要知道菜单点击的事件地址.
一般来说WIN32程序都是在WM_COMMAND中处理,但是这个程序并没有映射WM_COMMAND消息.

而且OD找到了Menu的父窗口(SetMenu的窗口句柄),在Classproc下WM_COMMAND断点也断不下来.

分析了下,这个程序CreateMenu, AppendMenuA, SetMenu这样配置菜单的,并且还有用CMenu:Attach附加.

但是始终无法搞清楚这个程序是如何响应点击菜单项目事件的.

发现这个程序有映射WM_MENUSELECT消息.但是OD跟了下,代码还排除了MF_CHECKED情况.

请教下MFC逆向的大牛,这样的程序一般是如何响应菜单点击消息的?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 81
活跃值: (100)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
WM_MENUCOMMAND ?
https://msdn.microsoft.com/en-us/library/windows/desktop/ms647603(v=vs.85).aspx
2016-1-28 15:08
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
3
也没有映射这个消息0.0

主窗口只映射了如下消息:
WM_CREATE
WM_MENUSELECT
WM_PAINT
WM_PALETTECHANGED
WM_QUERYNEWPALETTE
WM_ENDSESSION
WM_CLOSE
WM_TIMER
WM_SETFOCUS
WM_ACTIVATE
WM_KILLFOCUS
WM_KEYFIRST
WM_NCACTIVATE
WM_DEVICECHANGE
WM_MOUSEWHEEL
WM_GETMINMAXINFO
WM_POWERBROADCAST
2016-1-28 15:27
0
雪    币: 81
活跃值: (100)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
程序方便发出来看看么
2016-1-28 15:32
0
雪    币: 123
活跃值: (144)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
方便发出程序来吗?按道理是可以从this指针下面找到AfxGetMessageMap这个函数的,这个函数会返回一个数,就是MessageMap的偏移地址,里面记录了所有控件的id和对应的响应函数
2016-1-28 15:38
0
雪    币: 81
活跃值: (100)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
WM_MENUSELECT
仔细看了一下这个消息的说明,wParam低字节上会有控件ID,高字节是菜单的状态信息,所以和排除不排除MF_CHECKED并没有什么关系(MF_CHECKED代表菜单前面打勾了),肯定就是这个消息了
2016-1-28 15:41
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
7
因为涉及到一些东西,所以不方便发出0.0
2016-1-28 17:16
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
8
感谢,我再分析下
2016-1-28 17:18
0
雪    币: 6064
活跃值: (12624)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
9
bxc 感谢,我再分析下
不知大佬针对这个问题以前解决了没有?,我尝试从侧面分析代码量过于庞大,图形界面库也比较恶心
2019-9-19 16:46
0
雪    币: 7048
活跃值: (3527)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
10
一半人生 不知大佬针对这个问题以前解决了没有[em_35]?,我尝试从侧面分析代码量过于庞大,图形界面库也比较恶心
已经忘了
2019-9-19 17:38
0
游客
登录 | 注册 方可回帖
返回
//