社区
Linux_Kernel
帖子详情
如何在一个进程中进入另一个进程的内存空间
yuhao113
2011-06-09 03:58:52
rt
我想在linux的一个进程中进入另一个进程的内存空间,然后把内存空间中的数据读到一个文件中,请问大家应该怎么实现?
...全文
443
8
打赏
收藏
如何在一个进程中进入另一个进程的内存空间
rt 我想在linux的一个进程中进入另一个进程的内存空间,然后把内存空间中的数据读到一个文件中,请问大家应该怎么实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
远古
2011-06-14
打赏
举报
回复
至于不修改内核,就想做到这一点,不知这个是否违法安全原则,或者可以参考一些调试软件。可能是有条件才能实现的吧,不然一个进程不经过同意可以随意看另一个进程的内存数据,好像也不安全
jiahehao
2011-06-14
打赏
举报
回复
赞成共享内存的做法,否则一个进程是不能进入另一个进程的内存空间的。
远古
2011-06-13
打赏
举报
回复
这个其实可以参考进程间的内存共享,唯一的区别就是正常的内存共享是需要改程序源码,同意把自己的内存共享给别人,而你要做的就是修改内核,使程序没有同意共享其内存的情况下,也能被你强制共享。
翔云123456
2011-06-12
打赏
举报
回复
研究一下/proc文件系统, proc是内存在文件系统中的映射,你可以获得进程信息
yuhao113
2011-06-10
打赏
举报
回复
我现在不是想进入自己进程的内存空间,我想通过模块进入一个指定进程的内存空间,而且对于指定进程是透明的,也就是不修改其源代码。如果我想用内存映射能够实现么?就是我将一个文件映射到这段内存区域(内存起始位置和大小都已知)上,然后通过这个文件来抓取内存信息。
无知者无谓
2011-06-10
打赏
举报
回复
你可以研究GDB代码
louyong0571
2011-06-10
打赏
举报
回复
这个高深了,关注下
yuhao113
2011-06-09
打赏
举报
回复
可能是我没有说清楚,我现在想在虚拟机上做进程迁移,但是有一个问题,就是我不清楚怎么将和进程有关的内存页保存出来,希望高手能指点一二。谢谢
Linux
进程
间通信——使用共享内存
下面将讲解
进程
间通信的另一种方式,使用共享内存。 一、什么是共享内存 顾名思义,共享内存就是允许两个不相关的
进程
访问同
一个
逻辑内存。共享内存是在两个正在运行的
进程
之间共享和传递数据的一种非常有效的方式。不同
进程
之间共享的内存通常安排为同一段物理内存。
进程
可以将同一段共享内存连接到它们自己的地址空间
中
,所有
进程
都可以访问共享内存
中
的地址,就好像它们是由用C语言函数malloc分配的内存一
在
一个
进程
中
启动另
一个
进程
---CreateProcess API
进程
提供了程序运行所需要的资源,虚拟内存地址空间......exe文件加载到
进程
的虚拟地址空间内存
中
指定的位置.每个
进程
都有
一个
标识符(PID)和
一个
句柄,系统和其他
进程
可以通过PID和
进程
的句柄对
进程
进行管理操作动态库的原理如:API函数CreateFile可执行代码在Kernel32.dll
中
,"内存分页管理"将多个虚拟内存分页映射到同
一个
物理分页上.动态链接过程,exe文件
中
的导
进程
间通信之共享内存
接博客:
进程
间通信之管道 一.共享内存实现
进程
间通信的原理 共享内存实际是操作系统在实际物理内存
中
开辟的一段内存。 共享内存实现
进程
间通信,是操作系统在实际物理内存开辟一块空间,
一个
进程
在自己的页表
中
,将该空间和
进程
地址空间上的共享区的一块地址空间形成映射关系。另外一
进程
在页表上,将同一块物理空间和该
进程
地址空间上的共享区的一块地址空间形成映射关系。 当
一个
进程
往该空间写入内容时,另外一
进程
访问该空间,会得到写入的值,即实现了
进程
间的通信。 ...
进程
4G虚拟
内存空间
的分配
通常我们常说的4G/8G内存是指计算机硬件的内存条是4G/8G,而不是我们今天所谈论的
进程
4G虚拟的内存。 当
一个
程序运行时,系统会为每
一个
进程
分配
一个
4G的虚拟
内存空间
,用来保存
进程
运行所需要的各种资源(详细资源列表后面会谈到),并创建task_struct
进程
控制块,保存
进程
的属性(
进程
ID、父
进程
、
进程
状态、使用的寄存器等)。 接下来聊一聊4G的虚拟内存是如何分配的: 4G---...
进程
的内存分布
Linux-内存分布 C
进程
的内存布局 Linux和windows都是支持多任务多用户的高级操作系统 **
进程
(process):**一段程序的执行过程 对于
一个
C程序,在运行过程系统对这个
进程
的内存资源管理非常重要;任何
一个
程序,想要正常运行都需要内存资源,用来存放诸如变量、常量、函数代码等等。这些不同的内容,所存储的内存区域是不同的,且不同的区域有不同的特性。因此我们需要研究
进程
的内存布局,逐个了解不同内存区域的特性。 每个C语言
进程
都拥有一片结构相同的虚拟内存,大小一般为4G,所谓的虚拟内存,就是从
Linux_Kernel
4,441
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章