SendMessage()两程序通信与MFC手动添加用户需要的新消息及其反汇编注解

 1、实现SendMsg程序将输入的数据发送给ReceiveMsg程序的过程。效果见图1,源代码见http://download.csdn.net/source/3091018

 

图1 两个程序通信

 

    发送方(SendMsg)主要使用::SendMessage()函数,使用该函数需要将接受函数的句柄,发送给接受程序的消息,以及发送内容的地址做为参数。关键代码如下

    接收方(ReceiveMsg)判断获得WM_SETTEXT消息后做出处理即可。由于MFC没有内置添加WM_SETTEXT消息的wizard,需要自己手动添加该消息,还要注意消息响应函数的形参。在对话框程序xxx中添加消息的步骤如下:

    (1)在xxxDlg.h中添加消息响应函数的声明 afx_msg void OnSetText(WPARAM wParam, LPARAM lParam);

(2)在xxxDlg.cpp的消息映射表中添加消息映射 ON_MESSAGE(WM_SETTEXT,OnSetText)

(3)在xxxDlg.cpp中实现消息响应函数OnSetText(WPARAM wParam, LPARAM lParam);

    注意,WM_SETTEXT消息为系统消息,所以不需要定义。若要自己定义消息,需要#define一下,详见参考[1]

2、利用OD反汇编观察FindWindow()函数,SendMessage()函数和MessageBox()函数的实现过程,便于代码注入时使用

    注意,调用函数时具体地址会不同,可以用IDA来查看,或直接写OD能识别的函数名(eg: MessageBoxA),可以先写一个小程序反汇编看看OD本身能识别的函数名是什么样的.......

参考

[1] http://blog.csdn.net/machaoboy/archive/2009/01/04/3706991.aspx

   

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值