方法都在栈中,先进后出
image.png
属性的地址,整形2个占一个地址(高八位,低八位)
image.png
1.非结构体类型:32位 4字节对齐,64位 8字节对齐
2.结构体类型:以结构体中,最大内存的整数倍对齐
3.属性8字节对齐,对象16字节对齐
内存都是一直存在的,只是分为活跃跟不活跃
真实地址:
Win98 及以前的系统,1.导致内存不够(回收问题),2.不安全(直接访问内存地址,可读到其他程序的数据),
虚拟内存地址:
虚拟内存映射表,内申请的内存有限制,无法取读取程序以外的内存
image.png image.png
MMU是 MemoryManagementUnit 的缩写即,内存管理单元. 针对各种CPU, MMU是个可选的配件. MMU负责的是虚拟地址与物理地址的转换. 提供硬件机制的内存访问授权.
ASLR(地址随机化)是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。
但是,地址随机化不是对所有模块和内存区都进行随机化!虽然libc、栈、堆的加载位置被随机化,但主镜像不会
查看程序启动的分页内存的数量
image.png
打印的上一个方法,因为它以为自己是一个结构体,于是内存偏移地往上差,结果查到的是上一次调用的方法
image.png
linkmap,查看分页加载顺序
image.png
文件排列顺序》文件的方法排列顺序
二进制重排,将要启动要加载的代码放在一起
按照文件中的顺序去分页加载
image.png image.png image.png
按文件顺序重排
没有就排
image.png
网友评论