zoukankan      html  css  js  c++  java
  • pwn学习日记Day20 《程序员的自我修养》读书笔记

    可执行文件的装载与进程

    覆盖装入和页映射是两种典型的动态装载方法
    进程建立的三步
    1.创建一个独立的虚拟地址空间
    2.读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系。
    3.将CPU的指令寄存器设置成可执行文件的入口地址,启动运行。

    常见段权限组合:

    • 以代码段为代表的权限为可读可执行段
    • 以数据段和BSS段为代表的权限为可读可写段
    • 以只读数据段为段表的权限为只读的段

    操作系统通过给进程空间划分出一个个VMA来管理进程的虚拟空间:
    基本原则就是将相同权限属性的、有相同映像文件的映射成一个VMA,一个进程基本可以分为如下几种VMA区域:

    • 代码VMA:权限只读、可执行;有映像文件。
    • 数据VMA:权限可读写、可执行;有映像文件。
    • 堆VMA:权限可读写、可执行;无映像文件,匿名,可向上扩展。
    • 栈VMA:权限可读写、不可执行;无映像文件,匿名,可向下扩展。

    知识杂项

    • Linux malloc最大申请空间2.9G左右,Windows malloc最大申请空间1.5G左右。

    参考

    《程序员的自我修养》

  • 相关阅读:
    在web大作业中曾经遇到的程序测试案例…
    软件测试技术 hw3
    软件测试技术 hw2
    软件测试技术 上机实验1
    软件项目管理 hw1
    软件测试技术 hw1
    软件测试技术-第七题
    软件测试技术 上机实验1
    软件测试技术 homework2
    软件项目管理 homework1 曾经做过的project
  • 原文地址:https://www.cnblogs.com/luoleqi/p/10914564.html
Copyright © 2011-2022 走看看