pwn学习日记Day19 《程序员的自我修养》读书笔记

windows PE/COFF章总结

本章学习了windows下的可执行文件和目标文件格式PE/COFF。PE/COFF文件与ELF文件很是类似,它们都是基于段的结构的二进制文件格式。Windows下最多见的目标文件格式就是COFF文件格式,微软的编译器产生的目标文件都是这种格式。COFF文件有一个颇有意思的段叫“.drectve段”,这个段中保存的是编译器传递给连接器的命令行参数,能够经过这个段实现指定运行库等功能。Windows下的可执行文件、动态连接库等都使用PE文件格式,PE文件格式是COFF文件格式的改进版本,增长了PE文件头、数据目录等一些结构,使得可以知足程序执行时的需求。程序员

可执行文件的装载与进程

程序和进程什么区别

程序(或者狭义上讲可执行文件)是一个静态的概念,它是程序一些预先编译好的指令和数据集合的一个文件;进程则是一个动态的概念,它是程序运行时的一个过程,不少时候把动态库叫作运行时也有必定的含义。windows

进程虚拟空间分布

Linux
32位即4G被划分红两部分服务器

  • 操做系统:0xC0000000到0xFFFFFFFF,共1GB。
  • 进程使用:0x00000000到0xBFFFFFFF,共3GB。

Windows
两部分各占2G,能够经过修改根目录下的Boot.ini,加上“/3G”参数变成与Linux同样的划分。函数

PAE

操做系统提供一个窗口映射的方法,把额外的内存(4G之外)映射到进程地址空间。(Windows AWE;Linux mmap()函数)学习

知识杂项

  • windows下“进程因非法操做须要关闭”或Linux下的“Segmentation fault”不少时候是由于进程访问了未经容许的地址。
  • PAE:物理地址扩展,是基于x86 的服务器的一种功能,它使运行 Windows Server 2003, Enterprise Edition 和 Windows Server 2003,Datacenter Edition 的计算机能够支持4GB 以上物理内存。物理地址扩展 (PAE) 容许将最多64GB 的物理内存用做常规的4 KB 页面,并扩展内核能使用的位数以将物理内存地址从32扩展到36。

参考

《程序员的自我修养》操作系统

相关文章
相关标签/搜索