pwn学习日记Day20 《程序员的自我修养》读书笔记
2024-09-07 09:06:58
可执行文件的装载与进程
覆盖装入和页映射是两种典型的动态装载方法
进程建立的三步
1.创建一个独立的虚拟地址空间
2.读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系。
3.将CPU的指令寄存器设置成可执行文件的入口地址,启动运行。
常见段权限组合:
- 以代码段为代表的权限为可读可执行段
- 以数据段和BSS段为代表的权限为可读可写段
- 以只读数据段为段表的权限为只读的段
操作系统通过给进程空间划分出一个个VMA来管理进程的虚拟空间:
基本原则就是将相同权限属性的、有相同映像文件的映射成一个VMA,一个进程基本可以分为如下几种VMA区域:
- 代码VMA:权限只读、可执行;有映像文件。
- 数据VMA:权限可读写、可执行;有映像文件。
- 堆VMA:权限可读写、可执行;无映像文件,匿名,可向上扩展。
- 栈VMA:权限可读写、不可执行;无映像文件,匿名,可向下扩展。
知识杂项
- Linux malloc最大申请空间2.9G左右,Windows malloc最大申请空间1.5G左右。
参考
《程序员的自我修养》
最新文章
- linux shell程序
- 20160621-BAPI 更改外向DN&;更改拣配
- C#中部分方法返回值类型为什么只能是void?
- SQL Server2008跟SQL Server2008R2的区别(转)
- 322. Coin Change
- Django编写RESTful API(四):认证和权限
- centos7时间同步
- HDU - 3567 Eight II (bfs预处理 + 康托) [kuangbin带你飞]专题二
- Clickhouse v18编译记录
- [物理学与PDEs]第4章第3节 一维反应流体力学方程组 3.3 一维反应流体力学方程组的数学结构
- 无需脑图 无需思维导图 看Word大纲视图
- 商业版微信小程序开发流程
- 由override 和 overload 引发的学习感悟
- WPF 显示 mp3 专辑图片
- 洛谷 P3521 ROT-Tree Rotations [POI2011] 线段树
- idea没有错误出现红色波浪线怎么去掉?
- 蒲公英 Bug 管理云
- 常见Java问题二
- UVa 818 切断圆环链(dfs+二进制枚举)
- Windoows窗口程序六