我们经常在Windows下碰到令人讨厌的“进程因非法操作需要关闭”或linux下的“Segmentation fault”很多时候是因为进程访问了未以允许的地址。
LINUX操作系统1GB,进程3GB WINDOWS操作系统2GB,进程2GB
修改Windows操作系统为1GB:
修改Windows系统盘根目录下的Boot.ini,加上“/3G”
ELF文件中段的权限有:
以代码段为代表的权限为可读可执行的段
以数据段和BSS段为代表的权限为可读可写的段
以只读数据段为代表的权限为只读的段
对于相同权限的段,把它们合并到一起当作一个段进行映射
权限:r可读w可写x可执行p私有s共享
一个进程可分为如下几种VMA:
代码VMA,权限只读、可执行;有映像文件
数据VMA,权限可读写、可执行;有映像文件
堆VMA,权限可读写、可执行;无映像文件,匿名,可向上扩展
栈VMA,权限可读写、不可执行;无映像文件,匿名,可向下扩展