麦享科技7月12日消息,微软资深工程师、Raymond Chen在博客上最新披露,Windows 95判断一个程序是否为安装程序的方式出人意料地简单,那就是靠猜,它只看文件名里有没有特定关键词。
这个关键词列表一共只有6个词:setup、install、inst,以及三个非英语词汇imposta、ayarla、felrak,分别是意大利语、土耳其语和匈牙利语中与安装相关的词。
其中install其实是多余的,因为任何包含install的文件名必然也包含inst,他推测inst是后来加的,用来匹配类似blahinst这种命名方式的安装程序,而当时没人顺手删掉冗余的install。

如果文件名一个都没匹配上,Windows 95还会退而求其次,检查可执行文件的完整路径里是否包含Setup一词。
这套字符串匹配机制控制着一个系统文件恢复流程,因为当时的安装程序经常不看版本号就覆盖系统文件,完全无视微软只能用更新版本替换旧版本的规定。
如一个包含Windows 3.1版本共享DLL的安装程序可以把Windows 95的新版文件直接覆盖掉,依赖这些文件的程序随即全部崩溃。
Windows 95的应对方案是在隐藏目录C:WindowsSYSBCKUP中备份常被覆盖的系统文件,等安装程序跑完后再检查一遍,把被降级的文件恢复回正确版本,而这套安全网完全依赖“猜对安装程序是否运行过”这一前提。
Windows 2000放弃了这套机制,引入了Windows文件保护(WFP),通过Winlogon注册文件变更通知,从%WinDir%System32dllcache缓存中恢复受保护文件,不再依赖文件名猜测,也不必等待安装程序结束。
Windows ME推出了类似的系统文件保护,Vista之后又升级为Windows资源保护(WRP),改用访问控制列表(ACL)来保护文件。
如今Windows 11用户仍在运行的sfc /scannow命令正是这一体系的直系后代,取代了1995年那个靠扫描文件名里有没有setup来决定是否行动的原始机制。

💡 网购省钱小技巧
下单前先查历史价格,再领隐藏优惠券,还能享受购物返利,让每一次购物都更划算。
麦享科技

麦享生活微信小程序   麦享生活微信公众号