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

时间:2022-06-17 05:58:32

知识杂项

  • obj文件:当前源代码编译成二进制目标文件
  • exe文件:将.obj文件与库文件.lib等文件链接生成的可执行文件
  • 一个现代编译器的主要工作流程如下:
    源程序(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标程序(object code)→ 连接器(链接器,Linker)→ 可执行程序(executables)
  • 映像:因为PE文件在装载时被直接映射到进程的虚拟空间运行。它是进程虚拟空间的映像。所以PE可执行文件很多时候被叫做映像文件。

windows的二进制文件格式PE/COFF

COFF文件的文件头包括

  • 描述文件总体结构和属性映像头
  • 描述文件中包含的段属性的段表

PE基于COFF的主要变化:

  • 最开始部分不是COFF文件头,而是DOS MZ可执行文件格式的文件头和桩代码(DOS MZ File Header and Sub);
  • 文件头中映像头扩展成映像头加PE扩展头部结构。

参考

《程序员自我修养》