You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言解析MS-DOS头时paragraph单位的大小是多少?

MS DOS MZ头中paragraph单位的准确解释
  • paragraph是x86实模式环境下的固定长度内存单位,和word集合没有绑定关系,固定为16字节。
  • 这个单位是MZ可执行格式定义时就确定的标准规则,不会因为你解析文件时使用的宿主机是32位、64位架构发生任何变化,和现代系统的内存分段、分页规则也没有关联。
  • 定位DOS头结束位置的方法非常直接:读取e_cparhdr字段的无符号整数值,将其乘以16,得到的结果就是DOS头从MZ文件起始偏移开始计算的总字节长度,跳过这段长度即可到达DOS头之后的内容区域。

补充背景:x86实模式的内存寻址逻辑为「段地址左移4位 + 偏移地址」,段地址的最小寻址粒度就是16字节,这就是paragraph单位的来源。绝大多数标准MZ可执行文件的e_cparhdr字段值为4,对应DOS头总长度为64字节,和逆向分析中观测到的标准MZ头结构长度完全吻合。

内容的提问来源于stack exchange,提问作者sinavix742

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.13 16:18:33