首页
社区
课程
招聘
[求助]]
发表于: 2019-8-3 01:47 2562

[求助]]

2019-8-3 01:47
2562
问问大佬为什么在程序中会有基地址?比如一个程序中有一个基地址存储着子弹数,重开程序后基地址中还是存储着子弹数,但是每次重开程序应该会重新分配内存啊,为什么子弹数这个变量的存储地址会不变呢?为什么动态地址是基地址加上偏移量,如果说每次重启程序基地址不变的话,偏移量也不变,为什么会有动态地址呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 4839
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
楼下的来回答
2019-8-3 13:51
0
雪    币: 5734
活跃值: (1737)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
为了方便 其他函数操作 难免会使用全局变量
2019-8-3 14:55
0
雪    币: 1084
活跃值: (340)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
4
aslr
2019-8-3 15:17
0
雪    币: 3400
活跃值: (850)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
全局变量就是基地址么?
2019-8-3 16:40
0
雪    币: 9626
活跃值: (1848)
能力值: ( LV5,RANK:73 )
在线值:
发帖
回帖
粉丝
6
建议恰口国家饭
2019-8-3 16:45
0
雪    币: 15735
活跃值: (19038)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
7
我们写的所有的程序入口点都是401000(Windows下并且没开ASLR的情况下),但是程序实际所在的物理内存并不是401000,Windows解决物理内存到虚拟内存转换的方法就是页表,你所说的偏移大致就是从物理内存到虚拟内存的距离,至于基地址么。。。并不知道,还请大佬前来解决;最后别老是说吃国家饭之类的,你们以为有本事吃国家饭的人会出来问“什么是基地址和偏移”么。。。
2019-8-3 17:47
0
雪    币: 1065
活跃值: (145)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
(你所说的偏移大致就是从物理内存到虚拟内存的距离)这样是不对的,偏移就是定义的变量或指针针对某个地址的距离,这个某个地址如果是程序入口地址,那么这个位置就是相对固定的。跟物理内存扯不上,那是页表需要计算的映射,应用层面不需要考虑
2019-8-5 21:08
0
游客
登录 | 注册 方可回帖
返回