时间:2017-04-19 来源:互联网 浏览量:
一位名叫 zeffy 的 Github 开发人员发现,还是有办法去突破微软的封锁的。
zeffy 先是下载了出现问题的 .msu 安装包(其系统对应的是 windows6.1-kb4012218-x64_590943c04550a47c1ed02d3a040d325456f03663.msu),然后将它解压出来、整理二进制文件、并与系统上已安装的进行对比。
在经过大量的调查工作之后,他终于找到了罪魁祸首,它们是 —— IsDeviceServiceable(void) 和 IsCPUSupported(void) 。有鉴于此,zeffy 给出了如下解决方案:
① 给动态链接库(dll)打补丁,将 0x26C948 的 dword_600002EE948 值(见此行)从 0x01 改为 0x00,以便 IsDeviceServiceable(void) 跳过整个实体,并立即回复 1(表明 CPU 可支持)。
—— 这是首要推荐的方法,但请注意只能在 Windows 7 x64 版本中使用。
② 给动态链接库(dll)打补丁,清理 IsDeviceServiceable(void) 中所有高亮的指令(见此行),以启用注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Test\Scan 下的 ForceUnsupportedCPU(类型为 REG_DWORD)。
—— 如果没有,就自建一个,将设定值从 0x00000001(强制不支持 CPU)改为 0x00000000,以变更默认行为。之后可能需要重启计算机,以应用此更改。
—— 需要注意但是,此行为暂无明文可证,未来版本中可能会被移除。
最后,修改有风险,操作需谨慎。为防意外,请不要轻易在生产环境中尝试;且在修改 dll 文件前,请务必做好充分的备份工作。
[编译自:BetaNews]