首页
社区
课程
招聘
[求助]关于注入后用内存映射通讯一个小不解
发表于: 2010-1-9 01:00 5646

[求助]关于注入后用内存映射通讯一个小不解

2010-1-9 01:00
5646
注入后创建一个窗体用消息通讯弄明白了... 现在请问一下大家,用内存映射通讯怎么让DLL得到这个通知???

CreateFileMapping、OpenFileMapping、MapViewOfFile

比如我向内存映射的地址写入一个"谢谢"

注入在其它进程的DLL第一时间做出反应 弹一个 谢谢的MessageBox

消息倒是好理解,但是这个映射怎么像消息一样进行反应呢?

难道是
      创建一个新的线程不停的读取吗?

      while(TRUE)
         {
               读取内存映射的地址?
     
               
          }

不知道对不对~ 请大家指导一下  谢谢~!

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 364
活跃值: (152)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
2
用有名事件呗
2010-1-9 10:46
0
雪    币: 4333
活跃值: (4323)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢weolar... 不过还不太清楚具体的流程运作   有听过用事件,google上也有提到用事件.不过好难找到示例代码...  自己去研究一下...

再次感谢weolar    膜拜您很久了~
2010-1-9 12:14
0
雪    币: 8142
活跃值: (2731)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
感觉可能实现不了。

内存映射这种进程间通信方式不同于视窗报文通信。

视窗报文。你发消息过去的时候。

目标消息队列处理这个消息的时候自动回调目标视窗所注册的回调函数。

也就达到了即时处理。

内存映射是一个物理页面。多个视角。

没有所谓的回调机制。

不过可以配合命名事件。

当一方写入数据后。立刻设置事件。

另外一方则在线程内等候这个事件,

等待到后读取。。。
2010-1-9 14:42
0
雪    币: 364
活跃值: (152)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
5
可以这样,分成发送端和接受端。首先初始两个事件对象。
一个作为发送完毕事件,一个作为接受结束事件。
发送端先等待 结束事件对象被激发。
然后发送,也就是填充共享内存,发送结束后设置接受事件对象激发态。
而接受端反之,先等待发送对象被激发……
命名事件搭配共享内存向来是种比较好的进程间通讯方式,驱动和ring3一样可以这样。
缺点是共享内存的大小得事先固定。当然如果做的好的话也可以规定一些控制码,通知一方扩展内存。具体怎么实现完全看你的要求了。
2010-1-9 16:14
0
雪    币: 4333
活跃值: (4323)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢两位热心的帮助.

感觉实现挺麻烦的...
2010-1-9 18:17
0
游客
登录 | 注册 方可回帖
返回
//