PE参数如何影响NTFS的CHS寻址?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 参数 正文

PE (Portable Executable)

是什么?

PE 是 Windows 操作系统下可执行文件、动态链接库、驱动程序等核心文件的文件格式标准,你可以把它理解为一套“容器”或“规范”,规定了二进制文件应该如何在内存中被加载和执行。

核心特点:

  • 通用性:几乎所有 32 位和 64 位的 Windows 程序都使用 PE 格式。
  • 结构化:PE 文件有非常严谨的结构,包含了多个节(Section),如:
    • .text:存放代码。
    • .data:存放已初始化的数据。
    • .rsrc:存放资源,如图标、位图、字符串等。
    • .idata.edata:与动态链接库的导入和导出相关。
  • 包含信息:文件头中包含了操作系统加载程序所需的所有信息,
    • 入口点
    • 代码/数据的内存地址和大小
    • 依赖哪些 DLL
    • 文件版本信息

与 NTFS 和 CHS 的关系:

  • PE 是运行在 NTFS 之上的内容:一个 PE 格式的可执行文件(如 notepad.exe)本身是数据,这些数据被存储在 NTFS 格式的硬盘分区中,当你双击运行它时,Windows 读取器从 NTFS 文件系统找到这个文件,然后由操作系统加载器解析其 PE 格式,并将其加载到内存中执行。
  • PE 工具可以操作 NTFS:存在一些被称为“PE 工具”的软件(如 PEiD、CFF Explorer 等),它们主要用来分析和修改 PE 文件,像 WinPE (Windows Preinstallation Environment) 这样的 PE 环境,是一个小型的 Windows 系统,它被用来安装、修复或诊断完整的 Windows 系统,而在这个过程中,WinPE 必然要读写 NTFS 分区。

简单比喻:PE 文件就像一本“书”(程序内容),这本书被放在一个“书架”(NTFS 分区)上,而“阅读这本书的规则”(PE 格式规范)和“整理书架的方法”(NTFS 文件系统)是两套不同的体系。


NTFS (New Technology File System)

是什么?

NTFS 是 Windows 操作系统默认使用的磁盘分区格式,也就是我们常说的文件系统,它负责管理硬盘上的数据,如何存储文件、文件夹,以及如何维护文件的元数据。

核心特点:

  • 功能强大:相比旧的 FAT32,NTFS 提供了更多高级功能,如:
    • 权限控制:通过 ACL(访问控制列表)管理用户对文件和文件夹的访问权限。
    • 文件加密:支持 EFS (Encrypting File System) 加密单个文件。
    • 磁盘配额:可以限制用户使用的磁盘空间。
    • 压缩:支持对文件或整个分区进行压缩。
    • 日志功能:记录文件系统的操作,以便在系统崩溃后能快速恢复,保证数据一致性。
    • 支持大文件和大分区:可以轻松支持 TB 级别的分区和 GB 级别的单个文件。
  • 核心结构:NTFS 的基本存储单位是,文件被分割成一个个簇,然后这些簇被记录在主文件表 中,MFT 就像 NTFS 分区的“索引表”或“户口本”,记录了每一个文件(包括 MFT 自身)和文件夹的所有信息,如簇的位置、大小、时间戳、权限等。

与 PE 和 CHS 的关系:

  • NTFS 是 PE 文件的“家”:如前所述,PE 文件作为数据文件,其物理实体(一个个簇)由 NTFS 文件系统管理,MFT 记录了这些簇的逻辑块地址
  • NTFS 与 CHS 的间接关系:NTFS 文件系统本身不直接关心 CHS 地址,它使用的是更现代的 LBA (Logical Block Address),当操作系统需要将 NTFS 管理的数据写入硬盘时,操作系统内核会通过磁盘驱动程序将 LBA 转换为 CHS 或更现代的 LBA-48 地址,然后交给硬盘硬件去物理定位,NTFS 是逻辑层面的管理,而 CHS 是物理层面的寻址。

简单比喻:NTFS 文件系统就像一个“大型现代化图书馆”,MFT 是图书馆的“图书检索系统”(记录每本书的位置和内容),而 PE 文件就是图书馆里的“某一本具体的书”。


CHS (Cylinder/Head/Sector)

是什么?

CHS 是一种硬盘物理寻址方式,用于在硬盘的盘片上精确定位一个数据块,它使用三个参数来确定扇区的位置:

  • C (Cylinder)柱面,硬盘有多个盘片,每个盘片都有两个面(磁头),所有相同半径的磁道构成一个柱面,可以想象成把多个同心圆筒堆叠在一起。
  • H (Head)磁头,指当前正在读写的盘面编号,每个盘面对应一个磁头。
  • S (Sector)扇区,每个磁道被划分为多个扇区,通常是 512 字节(传统硬盘)或 4096 字节(高级格式化硬盘)。

核心特点:

  • 物理属性:CHS 直接映射了硬盘的物理结构,它是一个硬件层面的概念。
  • 历史局限性
    • 容量限制:CHS 地址用特定的二进制位数表示(早期 BIOS 用 10 位表示柱面,8 位表示磁头,6 位表示扇区),这限制了可寻址的最大容量。
    • 现代硬盘的抽象:现代硬盘内部使用一种称为地址转换 的机制,操作系统(或 BIOS)仍然可以提供 CHS 地址,但硬盘控制器会将其内部转换为更高效的 LBA 地址,然后直接移动磁头到正确的物理位置,CHS 对现代操作系统来说,更多是一种兼容性接口,而不是真实的物理操作方式。

与 PE 和 NTFS 的关系:

  • 最底层的物理实现:CHS 是数据最终写入硬盘物理位置的方式。
  • 间接关系:NTFS 分区中的某个 PE 文件,其数据最终要通过 CHS(或更准确的说是 LBA)被写入硬盘的某个特定扇区,整个流程是:
    1. PE 文件:包含程序代码和数据。
    2. NTFS 文件系统:将 PE 文件分割成簇,并记录这些簇在分区内的LBA
    3. 操作系统/驱动:将 NTFS 的 LBA 地址转换为硬盘硬件可以理解的CHS 或现代 LBA 地址。
    4. 硬盘硬件:根据 CHS/LBA 地址,移动磁头到正确的柱面和扇区,进行读写。

简单比喻:NTFS 是图书馆,CHS 就是书架上的具体坐标。“A区-3排-5架-2层”,你通过图书馆系统(NTFS/MFT)找到了书(PE 文件),然后根据这个坐标(CHS)去物理位置上把它取出来。


总结与三者关系

概念 层面 作用 与其他概念的关系
PE 应用/数据格式 定义可执行文件(如 .exe)的结构,使其能被操作系统加载运行。 运行在 NTFS 之上,PE 文件是存储在 NTFS 分区中的数据内容。
NTFS 文件系统/逻辑管理 管理硬盘分区,组织文件和文件夹,记录文件的元数据和存储位置(LBA)。 管理 PE 文件,NTFS 不关心 CHS,它使用 LBA,LBA 是它与硬件交互的桥梁。
CHS 硬件/物理寻址 硬盘最底层的寻址方式,通过柱面、磁头、扇来确定物理扇区位置。 最终物理存储,NTFS 的 LBA 地址最终会被转换为 CHS 地址,用于硬盘的物理读写。

三者关系流程:

  1. 你有一个 program.exe (PE 格式)。
  2. 它被存储在 C 盘,C 盘是 NTFS 格式。
  3. NTFS 文件系统将 program.exe 的内容分割成多个簇,并在 MFT 中记录这些簇的逻辑块地址
  4. 当你运行 program.exe 时,操作系统需要从硬盘读取它。
  5. 操作系统向硬盘发出读取请求,并提供文件的 LBA 地址。
  6. 硬盘控制器将 LBA 地址转换为内部的物理地址(可以理解为 CHS,但现代硬盘内部更复杂)。
  7. 硬盘根据转换后的地址,将磁头移动到正确的物理位置,读取数据并返回给操作系统。
  8. 操作系统加载器解析 PE 格式,将代码和数据载入内存执行。
-- 展开阅读全文 --
头像
MACmini2拆机有何隐藏设计或升级空间?
« 上一篇 昨天
motoe5plus拆机评测
下一篇 » 昨天

相关文章

取消
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]