DOS 3.3 SYS.COM 命令的隐藏Bug:NetDrive 磁盘镜像损坏之谜
2025-02-24
本文讲述了作者追踪一个DOS 3.3系统命令`SYS.COM`的Bug的故事。该命令用于将引导加载程序复制到磁盘,但在与NetDrive虚拟磁盘镜像一起使用时会导致镜像损坏。通过仔细分析,作者发现`SYS.COM`在使用通用IOCTL调用获取磁盘参数时,没有检查返回代码。当调用失败(例如NetDrive驱动程序不支持该功能)时,`SYS.COM`会错误地写入垃圾数据到磁盘的引导扇区,从而破坏磁盘镜像。该Bug只在某些类型的磁盘镜像(例如硬盘镜像)上出现,因为DOS会尝试获取磁盘几何信息,而软盘镜像则不会。作者最终定位了Bug的根源,并解释了其出现的原因和条件。
开发