Windows进程通信之PE文件共享节

本文介绍如何利用PE文件的共享节实现Windows进程间的通信,详细阐述了PE文件的结构、如何创建共享节,以及在VS中设置共享节的方法。通过消息+共享节的方式,实现了数据的共享和进程间的通信。同时也讨论了共享节技术的适用场景和限制。
摘要由CSDN通过智能技术生成

本文由danny发表于 http://blog.csdn.net/danny_share

 

说明:建议先下载本文配套工程,其中

SectionDLLSectionMain工程、SectionASub工程,SectionBSub工程分别用于演示进程间通信的DLL工程、主进程和两个子进程

下载地址:http://download.csdn.net/detail/danny_share/7749203

注意:

1.不要F5直接运行
2.编译生成debug目录或者release目录以后,手动双击SectionMain.exe点击Test按钮即可

 

一.  PE文件

本文主要是从使用的角度来看PE文件的节(也称段),来实现进程间通信,实际只是共享数据,和进程内存读写一样,没有监听或者通知的功能。所以对PE文件只作概览陈述。

 

1.Copy On Write

Windows保护模式下,由于每个进程拥有独立的虚拟地址空间,操作系统负责把虚拟地址映射成物理地址,对于同一个可执行文件生成的不同实例,Windows采用“Copy On Write”技术实现创建时共享虚拟地址空间(此时只读),当需写入时则copy一份(此时可写),因而两者的运行互不干扰,又可以加快运行。

 

2.PE结构

PE文件大致结构如下:

详细结构如下(此图转载自程序人生的博客http://www.programlife.net/pe-coff-specification.html):

 

 

 

3.常见节

1Windows是通过PE-Optional-Header中的DataDirectory而不是通过名字来定位的

2)但为了避免混淆,我们在自定义节的时候,应尽量避免使用下面的节名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值