关于A进程访问B进程变量的问题

hanwll 2012-03-01 09:30:02
想问个问题,大家不要见笑:
我记得对于某个进程单独来说,它自己感觉是占用了系统的整个32位地址空间。
那么A进程访问什么地址能访问到B进程的变量?
...全文
279 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanwll 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhanshen2891 的回复:]

ReadProcessMemory,前提是你得知道变量的地址
[/Quote]
这就是我的疑问了,我知道的仅仅是虚拟地址,当本进程在执行时给个虚拟地址,怎么就访问了另一个进程的地址?
hanwll 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 slsnake 的回复:]

共享内存,管道通讯,或者你可以让B发个消息给A,消息里带那个变量
[/Quote]
那个只是能知道该变量的值?还是说能改写?
hanwll 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lactoferrin 的回复:]

一般情况下不行
合作式的方式是用共享内存,两个进程的虚拟地址对应同一个物理地址
[/Quote]

就是进程间通信的共享内存方式么?
赵4老师 2012-03-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhanshen2891 的回复:]
ReadProcessMemory,前提是你得知道变量的地址
[/Quote]
正解!
SLSnake 2012-03-02
  • 打赏
  • 举报
回复
共享内存,管道通讯,或者你可以让B发个消息给A,消息里带那个变量
chayedanwc 2012-03-02
  • 打赏
  • 举报
回复
一般情况下不能互访。

如果有一些共享的数据需要处理的话,你可以考虑使用共享内存。
CreateFileMapping;
OpenFileMapping
zhanshen2891 2012-03-02
  • 打赏
  • 举报
回复
ReadProcessMemory,前提是你得知道变量的地址
oldm4n 2012-03-01
  • 打赏
  • 举报
回复
远程线程,暴力搜索
Lactoferrin 2012-03-01
  • 打赏
  • 举报
回复
一般情况下不行
合作式的方式是用共享内存,两个进程的虚拟地址对应同一个物理地址
东莞某某某 2012-03-01
  • 打赏
  • 举报
回复
进程空间是相互独立的,要不然A可以随意访问B的内存,那程序还有安全可言吗?比如对于地址0xabcd,对于进程A,该地址的值是属于A的,相对的B也是如此。

一些内核是和进程空间独立的,比如内核对象,不属于进程。

64,691

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧