首页
社区
课程
招聘
[求助]]
2019-8-3 01:47 2095

[求助]]

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

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

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