2026-11-03
Windows 读取 VCD 光碟档案
竟然会导致 Windows Explorer 瘫痪
文: 编辑部 / 新闻中心
文章索引: IT快讯

【30 年的 Bug 😓】资安研究员 Clyde 近日发表了一个关于「Windows 读取 Video CD (VCD) 竟导致 Windows Explorer 档案总管当机瘫痪」的 Bug。这个离奇的 Bug 跨越近 30 年,由最早期的 Windows 95 到今天的 Windows 11 依然存在,是一直深植于作业系统底层的歷史遗留缺陷。

 

据 Clyde 指出,要重现这个 Bug 非常简单,使用者只需在光碟机放入一张标准 VCD(或挂载包含完整轨道资讯的 VCD 映像档),并执行以下操作:

 

1. 开启「档案总管」并进入光碟机根目录。

 

2. 点击进入存放视讯数据的 MPEGAV 资料夹。

 

3. 尝试双击或读取当中的 .DAT 视讯轨档案(例如 AVSEQ01.DAT)。

 

此时,「档案总管」会立刻陷入无限等待状态,随后跳出无回应提示,甚至直接造成 explorer.exe 处理程序崩溃并自动重启。

 

究竟为何这样做会导致 Windows Explorer 瘫痪崩溃?他深入研究后发现,这个问题源于 Video CD 特殊的物理储存标准与 Windows 档案系统架构之间的相容性断层。

 

VCD 採用「白皮书」(White Book)标准,其视讯与音讯轨道是以 CD-ROM XA 的 Mode 2 Form 2 扇区封装。为了追求更高的储存容量以容纳影音资料,该格式拿掉了传统数据光碟(Mode 1)用来进行错误校正的 EDC/ECC 冗余码,将每个扇区的使用者资料容量由 2,048 Bytes 提升至 2,324 Bytes。

 

可是,Windows 的 CD-ROM 档案系统驱动程式(如 CDFS)为了让使用者能在图形介面浏览,会透过「虚拟映射」将这些 RAW 数据轨道包装成 MPEGAV 目录下的 .DAT 档案。

 

当「档案总管」开启资料夹或使用者选取档案时,系统内建的 Shell 属性读取器、预览处理常式及 Windows Media 相关的剖析元件会自动尝试读取档案开头的中继资料(Metadata)或产生预览缩图。然而,底层驱动程式在处理这种非标准 2,048 Bytes 扇区的循序资料流时,缺乏妥善的例外处理机制与边界检查,直接造成 I/O 请求挂起(Hang)或记忆体存取违规,最终导致外壳程式瘫痪。

 

这项缺陷最惊人之处在于其广泛的影响范围。测试显示,从最早引进新版档案总管的 Windows 95、经典的 Windows 98 / XP / 7,一路至现今主流的 Windows 10 及 Windows 11,在读取此类光碟结构时均会出现相同的当机状况。

 

在此期间,微软经歷了多次系统架构重构与外壳程式最佳化,但由于 Video CD 在千禧年代中期后迅速被 DVD-Video 及线上串流媒体取代,这段专门用于处理 VCD/CDFS 的老旧驱动与 Shell 读取逻辑便长期处于未被维护与检视的状态,成为隐藏在 Windows 底层长达数十年的系统「活化石」。

 

目前微软尚未针对此项冷门相容性问题释出安全性修补或更新。对于仍需读取或数码化典藏 VCD 老光碟的使用者,建议避免直接透过「档案总管」点选 MPEGAV 资料夹内的档案,改为透过 VLC、MPC-HC 等具备光碟解析能力的专用媒体播放器直接开启光碟,或使用 IsoBuster、ImgBurn 等专业映像工具将整个轨道抽取转换为标准 MPEG-1 档案,以避开系统崩溃问题。

 

 

 

资料来源: