首页
社区
课程
招聘
[原创]我写的一个查看MFC消息工具
发表于: 2013-2-15 16:48 9526

[原创]我写的一个查看MFC消息工具

2013-2-15 16:48
9526

很多年前已经有人写出来了MFCSPY 我发现少个静态release支持 所以我重写了下
大致思路:
使用dll钩子获取被spy程序的MFC窗口类,然后获得消息映射表,遍历即可

有几个注意地方:
(1)dll需要用mfc dll来写,获取消息映射表MFC现成有GetMessageMap()虚函数,直接可以拿来用,
因为GetMessageMap()是保护函数,所以共有继承CWnd,类里调用GetMessageMap()即可
(静态release版本需要特殊处理下 CWnd虚表中GetMessageMap()的偏移不是0x30而是0x28)
(2)获取当前运行程序的编译方式,这点我没想到方法,知道的麻烦指教下,我只用了

  if (GetModuleHandle("mfc42d.dll") != NULL)
  {
    return MFC42D;
  }
  if (GetModuleHandle("mfc42.dll") != NULL)
  {
    return MFC42;
  }
  return STATIC;


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 6
支持
分享
最新回复 (7)
雪    币: 288
活跃值: (212)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
顶一下,看看
2013-2-15 16:53
0
雪    币: 284
活跃值: (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
mark!!!!
2013-2-15 16:59
0
雪    币: 221
活跃值: (2391)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
vc6咋编译不了?
2013-2-15 17:02
0
雪    币: 71
活跃值: (242)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
5
附件换了 可以编译了吧 注意下
exe编译版本随便
dll编译成静态debug
dll路径搜索LoadLibrary更改

当时写时dll一直用debug测试 所以如果改成release 很多代码都需要更改的。。郁闷
2013-2-15 17:07
0
雪    币: 645
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
下来瞧瞧 多谢LZ
2013-2-15 21:52
0
雪    币: 92
活跃值: (100)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
mark
2013-11-5 10:11
0
雪    币: 219
活跃值: (853)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
8
marketing
2013-11-5 10:39
0
游客
登录 | 注册 方可回帖
返回
//