为了能到远方,脚下的每一步都不能少.|

园龄:粉丝:关注:

2021-04-08 11:32阅读: 263评论: 0推荐: 0

不同进程导入的dll是否为共享

dll 中的代码是共享物理内存的, 数据是写时复制, 没有修改数据之前是共享的, 修改的时候会拷贝一份来修改, 之后就不会共享物理内存了.
可以通过设置共享段来共享数据, 共享段里的数据在各个进程间共享物理内存(即使句柄不同也无所谓, 虚拟内存机制可以把不同的进程虚拟地址映射到相同的物理地址上)

详细说明:

    我先正常调用LoadLibaryA查看其内存

    

 

 

     然后同时将启动另外一个程序,这次先将LoadLibaryA的代码前五个字节变成JMP指令,再调用LoadLibaryA,查看其内存:

    

 

     同样是0x7636DEA5并且同时运行,前五个字节不同,看来修改的时候Dll并不共享内存。

 

本文作者:乘舟凉

本文链接:https://www.cnblogs.com/czlnb/p/14631447.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   乘舟凉  阅读(263)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起