| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6229 人关注过本帖, 1 人收藏
标题:取地址运算符&取的是真实的物理地址还是偏移地址
只看楼主 加入收藏
xiaotech
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-9-23
收藏
得分:0 
用C写了二个程序:第一个main(){int x=10,*p=x;printf("%u",p);getch();printf("%d",x);}
第二个:main(){怎么写一个代码能改变程序一X的值,让程序一暂停后显示程序二改写后的值??}
2008-10-08 20:51
lingluoz
Rank: 2
来 自:苏州科技学院
等 级:新手上路
威 望:4
帖 子:749
专家分:0
注 册:2008-2-2
收藏
得分:0 
进程间内存共享。。这个可能要靠调用api来实现了。还有一种方法就是写一个dll来保存全局变量

Murphy's Law :
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
2008-10-08 23:15
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1692
专家分:4282
注 册:2007-12-27
收藏
得分:0 
[bo][un]xiaotech[/un] 在 2008-10-8 20:51 的发言:[/bo]

用C写了二个程序:第一个main(){int x=10,*p=x;printf("%u",p);getch();printf("%d",x);}
第二个:main(){怎么写一个代码能改变程序一X的值,让程序一暂停后显示程序二改写后的值??}


如果确定了第一个程序就是那样的,那在目前常用的操作系统(未经篡改)下,应该说是不可能完成的任务了。
2008-10-09 00:21
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
偏移地址 吧
相对进程分配的首地址为基地址

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-10-09 00:34
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 3# 永夜的极光 的帖子
这应该说明是相对地址
如果是绝对地址
既然偏移一样,他们的值也一样
而现在值是不同的

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2008-10-09 00:37
lingluoz
Rank: 2
来 自:苏州科技学院
等 级:新手上路
威 望:4
帖 子:749
专家分:0
注 册:2008-2-2
收藏
得分:0 
如果说一定不能的话那么就好像太绝对了 因为至少我知道金山游侠可以改别的进程的值

Murphy's Law :
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
2008-10-09 07:57
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1692
专家分:4282
注 册:2007-12-27
收藏
得分:0 
金山游侠可以算是我说的篡改操作系统的例子了
当然,一家之言,别人不一定这么认为
2008-10-09 08:02
netsolo
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2008-3-6
收藏
得分:0 
金山游侠也不是取得了绝对的物理地址,
2008-10-09 08:49
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
[bo][un]forever74[/un] 在 2008-10-9 08:02 的发言:[/bo]

金山游侠可以算是我说的篡改操作系统的例子了
当然,一家之言,别人不一定这么认为


你所谓的“篡改”操作系统的定义是什么?
事实上,进程间通讯,或者进程数据共享,甚至是入侵进程(比如本例)在Windows下是完全可以做到的,这不需要“篡改”任何操作系统的内容。

至于金山游侠,人家只是调用了ReadProcessMemory/WriteProcessMemory这一对WinAPI函数而已,根本谈不上篡改。

典型的方法有:DLL注入,直接地址修改,调试器载入法等等,不过都是系统相关的,不可能通过标准C实现,必须调用库函数。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-09 09:02
hhsailor
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-6
收藏
得分:0 
是操作系统分配的逻辑地址
应该是这样了!
2008-10-09 09:29
快速回复:取地址运算符&取的是真实的物理地址还是偏移地址
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023605 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved