《FAT12考古.序 --- 衔尾蛇之环:恶意目录如何绞杀DOS的CHKDSK》
2026/9/11 18:28:29 网站建设 项目流程

"1994年,一台运行DOS的电脑在运行CHKDSK后永远停在了黑屏上。硬盘没坏。电源没断。是内存先死了。"

真相只有一个。
现场提取的十六进制崩溃转储(Hex Dump),彻底揭示了CHKDSK.EXE在系统最深处的死亡轨迹。

该古典工具采用深度优先递归算法(DFS)来遍历目录流形。每深入一层嵌套,它便在冰冷的栈区中压入一个毫无防备的栈帧——其中塞满了返回地址、局部变量以及路径偏移。

然而,在 16 位实模式的古老铁律下,栈区(Stack Segment)仅有区区64KB的闭塞空间 。
病毒在 FAT12 文件系统里精妙伪造出的目录死循环(衔尾蛇之环),以每级约 16 字节的栈开销飞速膨胀。不到0.2 秒的晶振跳动里,它便将栈段指针(SS:SP)无情地榨干至物理极限 。

更致命的第二刀,精准地落在堆缓冲区上:
程序在内存中试图疯狂拼接出完整的绝对路径。字符串从最初清澈的"C:\",迅速拉长并横冲直撞地超过了 260 个字符的MAX_PATH铁幕上限。
缓冲区发生灾难性溢出。溢出的垃圾数据向后野蛮覆盖,直接踏碎了程序段前缀(PSP)中的核心系统控制块 。

实时内存监控显示,在那个被比尔·盖茨断言过“足够用了”的640KB 常规内存(Conventional Memory)里,明明尚有大片空闲的绿色净土 ;
但在微观尺度上,调用栈已率先崩塌,在主板上触发了毁灭性的#SS(Stack Segment Fault)栈段异常。

刹那间,程序计数器(CS:IP)被残存的、溢出的垃圾数据野蛮劫持 。它迷茫地跳转至一片无效的物理地址,CRT 显像管屏幕上的彩色光标彻底定格在最后的遗言上:
Internal stack overflow; system halted.

这便是逻辑缺陷在底层内存流形中上演的、最优雅也最精准的绞杀——
不伤硬盘分毫,不留片纸只字,只在 640KB 的 RAM 荒原里,留下一座破碎、错乱、且永远无法返回的递归墓碑。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询