首页
社区
课程
招聘
[旧帖] [求助]为什么重新开机,基址不会变的? 0.00雪花
发表于: 2012-4-6 22:24 2194

[旧帖] [求助]为什么重新开机,基址不会变的? 0.00雪花

2012-4-6 22:24
2194
重新加载,寻找游戏的内存基址不会变,为什么不会变?
内存地址不是在关机后 会被释放吗?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 238
活跃值: (55)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
ImageBase
2012-4-6 22:53
0
雪    币: 249
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
http://baike.baidu.com/view/105417.htm
这是百度百科的解释,个人的理解是,你有一辆汽车,车子会到处开,位置在变,但是基址就好比你的发动机编号,你车开到天涯海角,发动机编号还是那个,永远不会改变。
2012-4-7 22:50
0
雪    币: 84
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
这个基址我理解就是一个全局变量似的东西。。这个东西除非exe版本更改否则是不改的。。。
2012-4-9 20:04
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这我知道,但是在内存中,机子一关了,内存地址不是都释放了吗?
我的问题是,我每次开的那车子是同一辆车子吗?
程序每次启动,所用的内存地址为什么不会变的?
既然基址不会变,那么如果有多个程序要使用同一个基址,那么会怎样?(这是我个人猜想)
谢谢了。
2012-4-9 20:35
0
雪    币: 84
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
这个你的意思是外挂中的机制这个意思?还是ImageBase啊?
咱们说的这个内存地址其实是线性地址。是虚拟映射的不是实际的地址。ImageBase是硬编码在exe中的。每个exe在32位windows中都是独享2G的用户模式的线性内存地址的。多个程序不会冲突。只是映射到内存的时候不会在同样的地址。这个是操作系统和硬件完成的在编程。对用户是透明的。
2012-4-9 21:00
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
顶!
楼主看到的内存是虚拟地址,不会变的(但win7有更安全的策略)。
2012-4-10 10:28
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
windows采用虚拟地址管理器来管理物理地址,地址编号和物理地址相映射,但是虚拟地址并不在物理地址上有映射也不一定在物理地址上连续,只有使用到的一部分虚拟地址才会被映射到物理地址,这个虚实转换由虚拟内存管理器调度。
意思就是windows给每一个程序分配一块【虚拟地址】,假设共4G(根据系统不同而不同),其中低位的2G内存是用户可以使用的用户空间,即0X00000000-0X7FFFFFFFF,高位的2G是系统可以使用的系统空间即0X80000000-0XFFFFFFFF。这样程序其实一直在用地址为0X00000000-0X7FFFFFFF这段地址,每次启动都是一样的。
2012-4-10 11:08
0
雪    币: 54
活跃值: (41)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
游戏程序装载的基地址在PE文件头中已经指定了,所以系统装载程序的时候会按照PE文件中指定的装载
2012-4-12 00:47
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
很感谢各位 ,因为 最近没来看雪,不过各位为我解答了那么多。很感谢,对于各位的,我再琢磨琢磨,如有不懂 还望各位再点拨点拨。
2012-4-15 00:57
0
游客
登录 | 注册 方可回帖
返回
//