正文内容 评论(0)

30年没删 Win11还在跑Windows 95的内存管理器:大佬解释来龙去脉
2026-10-19 14:55:14  出处:快科技 作者:黑白 编辑:黑白     评论(0)点击可以复制本篇文章的标题和链接复制对文章内容进行纠错纠错

快科技10月19日消息,据报道,Windows 11 26H2至今仍保留着Windows 95的内存管理器代码,而微软工程师Raymond Chen早在2010年就解释过这段代码的来龙去脉。

故事要从《模拟城市:我是市长》说起,在早期Windows版本中,应用程序向系统申请内存,用完释放后如果还在读这块内存,就是UAF释放后使用漏洞。

原版游戏在Windows 3.x版本上就有这个bug,但却没有出问题,因为释放后的内存并不会真正回收。到了Windows 95测试版,内存管理方式变了,游戏直接崩溃。

30年没删 Win11还在跑Windows 95的内存管理器:大佬解释来龙去脉

微软没等游戏厂商修复,而是自己在Windows 95里写了特殊代码,当检测到模拟城市运行时,内存分配器会切到特殊模式,不立即释放内存。

模拟城市的hack是一次性的,但其他老软件也有类似问题,一些程序依赖Windows 95内存管理器的特性,比如读已释放内存时还指望读到旧值,到了后续版本Windows上直接崩溃。

微软的解决方案叫EmulateHeap,把应用的堆调用从HeapCreate到LocalLock到GlobalReAlloc全部重定向到Windows 95内存管理器的模拟版本。

30年没删 Win11还在跑Windows 95的内存管理器:大佬解释来龙去脉

Chen说这个方案极其简单但完全疯狂,更疯狂的是实现方式,微软直接拿了一份Windows 95内存管理器源代码,重新编译后塞进兼容性框架。用Chen的话说,Windows应用兼容性框架里藏着“Windows 95内核的一大块”。

这段老代码只在EmulateHeap为某个应用启用时才从硬盘加载,电脑不会在后台偷偷跑Windows 95。

30年没删 Win11还在跑Windows 95的内存管理器:大佬解释来龙去脉

【本文结束】如需转载请务必注明出处:快科技

责任编辑:黑白

文章内容举报

  • 支持打赏
  • 支持0人

  • 反对

  • 打赏

文章价值打分

当前文章打分0 分,共有0人打分
  • 分享好友:
  • |
本文收录在
#微软#Windows#内存

  • 热门文章
  • 换一波

  • 好物推荐
  • 换一波

  • 关注我们

  • 微博

    微博:快科技官方

    快科技官方微博
  • 今日头条

    今日头条:快科技

    带来硬件软件、手机数码最快资讯!
  • 抖音

    抖音:kkjcn

    科技快讯、手机开箱、产品体验、应用推荐...