2026年7月13日,微软一位资深工程师在个人技术博客中披露,Windows 95识别安装程序的方式极为朴素——仅通过文件名中是否包含特定关键词进行判断,本质上是一种启发式猜测。
该关键词列表共包含六个词:setup、install、inst,以及三个非英语词汇imposta、ayarla、felrak,分别对应意大利语、土耳其语和匈牙利语中“安装”的含义。值得注意的是,install一词实际存在冗余,因为所有含install的文件名必然也含inst;推测inst是后期为兼容类似blahinst这类命名习惯而加入,而install未同步移除。
若文件名未匹配任一关键词,系统会进一步检查可执行文件的完整路径中是否出现Setup字样。
这一简单机制服务于一项关键功能:系统文件版本保护。当时许多第三方安装程序无视版本规则,直接覆盖已有系统文件,甚至用旧版DLL替换Windows 95自带的新版本组件,导致依赖这些组件的应用程序大面积失效。
为应对此类风险,Windows 95在隐藏目录C:WindowsSYSBCKUP中预先备份高频被覆盖的核心系统文件。安装过程结束后,系统会扫描该目录,将被意外降级的文件还原至正确版本。整个恢复流程成败的关键,完全取决于前述文件名匹配能否准确识别出安装程序的运行。
进入Windows 2000时代,这一依赖名称猜测的机制被彻底弃用,转而采用Windows文件保护(WFP)机制:通过Winlogon进程监听文件变更事件,并从%WinDir%System32dllcache缓存中自动恢复受保护文件,不再依赖路径字符串分析,也无需等待安装程序退出。
后续Windows ME延续了类似思路,推出系统文件保护功能;至Windows Vista,该机制升级为Windows资源保护(WRP),改用访问控制列表(ACL)实现更底层的文件权限管控。
今天用户仍在使用的sfc /scannow命令,正是这一演进脉络的延续,它取代了1995年那个仅靠检索文件名中是否含setup一词便启动响应的原始逻辑。

评论
更多评论