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左右。

    参考

    《程序员的自我修养》

  • 相关阅读:
    基于redis的分布式锁实现方案
    nginx 配置文件详解
    Linux 下安装Nginx
    Nginx简介
    Spring Boot 整合 Spring Security 示例实现前后分离权限注解 + JWT 登录认证
    idea2020.1版本下载安装与激活
    Cloud Alibaba --Nacos
    spring Cloud Alibaba 简介
    Eclipse中SVN更改连接用户
    Win7(64bit)搭建SVN
  • 原文地址:https://www.cnblogs.com/luoleqi/p/10914564.html
Copyright © 2011-2022 走看看