Windows 使用官方安装器保留数据降级完美方案

前言

如果我们将自己的 Windows 电脑升级至新版正式版或预览版, 并且过了 30 天的旧系统保留期, 还想降级的话, 使用官方工具直接降级是不可行的. 但如果对官方工具稍加修改, 就可以做到保留数据降级. 这篇文章将会告诉你具体的操作方式.


原理

Windows 安装器的兼容性检测模块, 会调用一个叫做 setupcompat.dll 的动态链接库来进行检测. 这份动态链接库中包含了安装器中所有需要检测的条目. 安装器程序在调用该模块时, 会通过读取其返回值来判断是否符合安装要求. 如不符合, 便通知用户, 返回报错. 如符合, 便继续进行安装进程. 我们需要做的, 就是把检测系统版本是否高于当前版本的返回值永远改为 1, 让安装器在任何条件下都认为我们的系统版本时符合条件的.

注意事项

  • 如果你是从 Windows 11 Dev 降级到 Windows 11 正式版, 建议从就近的 Dev 版本开始慢慢降级. 一次性降级很可能导致降级失败
  • 如果你是从 Windows 11 降级到 Windows 10, 请注意备份 Windows App 的应用数据.
  • 不管你是从什么版本进行降级, 降级前请备份所有系统盘数据, 并创建还原点!

警告

  • 此方法只能保证通过安装器的检测, 不保证系统升级的成功率与稳定性, 若使用此方法, 所导致的任何后果与博主无关!
  • 使用此方法进行系统降级可能导致系统崩溃, 驱动失效, 软件运行不正常等后果. 如非必要, 建议通过重装系统进行降级

用到的工具

  • IDA Pro
  • Windows 原版镜像

正片

1. 下载镜像

  • 前往 UUP Dump 网站, 选择你想下载的版本.

UUP Dump
UUP Dump

  • 选择你需要的版本和系统语言
  • 选择下载选项时, 请选择 Download and convert to ISO (下载并转换为安装镜像), 然后单击 Create download package (创建下载包)

Create download package
Create download package

  • 单击下载后会得到一份包含脚本的压缩包, 请解压到一个单独的文件夹后, 运行 uup_download_windows.cmd.

此时, 脚本会自动下载所需的系统组件, 然后转换为可直接安装的 .iso 文件. 在此期间耐心等待即可. 如出现下载失败, 请多运行几次脚本. 此阶段理论上来说除了 下载 aria2c, 均不需要科学上网.

2. 修补文件

  • 将生成的 .iso 文件全部解压到一个单独的文件夹中, 然后找到 /sources/setupcompat.dll 文件, 将它移动至桌面或其他位置.
  • 将文件备份一份, 命名为 setupcompat.dll.bak, 然后启动 IDA Pro 软件, 点击 Go 直接启动软件.

IDA Pro
IDA Pro

  • setupcompat.dll 文件拖至 IDA Pro 软件内, 弹出对话框后不用更改任何设置, 直接点击 OK 进入汇编页面.

IDA Pro
IDA Pro

这里会弹出一个对话框, 询问你是否要从 Microsoft 服务器下载所需要的 PDB 文件, 点击 Yes 即可.
IDA Pro
IDA Pro
  • 进入汇编页面后, 直接定位到左侧的 Functions (函数) 侧边栏, 随便点击一个项目后按下 Ctrl + F 进行搜索.
  • 搜索 IsLaterThan 这个函数, 直接双击 唯一的搜索结果.

IsLaterThan
IsLaterThan

  • 进入右侧的图形视图后, 直接滑动到底部, 找到如图所示的指令.

Function
Function

  • 对准 mov eax, 1 这条汇编指令右键, 点击 Text view (文本视图).
  • 在文本视图中, 将光标对准到 1 的前方 (如图所示), 然后右键选择 Manual (手动), 将值改为 0, 如图所示.

Change value
Change value

  • 改完后点击 OK 进行保存.
  • 保存后, 找到菜单栏中 Edit (编辑) --> Patch program (修补程序) --> Assemble... (汇编...), 单击 OK 进行应用, 应用完成后直接关闭窗口.

Assemble...
Assemble...

  • 应用后, 找到菜单栏中 Edit (编辑) --> Patch program (修补程序) --> Apply patches to input file (应用修补至输入文件), 单击 OK 进行修补.

Apply patches to input file
Apply patches to input file

  • 如左下角弹出 Applied 1/1 patch(es), 则证明保存成功.

3. 应用补丁

  • 将修补后的 setupcompat.dll 文件与原版文件替换. 替换完成后再次运行 setup.exe, 进行系统安装.
  • 如果操作无误, 那么此时安装程序不会再报错系统版本过高. 至此, 教程结束

结语

  • 如成功回滚系统, 请自行处理好系统的善后工作, 例如恢复数据与软件等. 在使用过程中也请时刻注意系统稳定性.
  • 本人非专业逆向人员, 如讲解有误, 请直接指出, 感谢!
  • 如果觉得文章有用, 请向身边有需要的人推荐, 感谢!
Windows 使用官方安装器保留数据降级完美方案
https://blog.nanami.tech/archives/152/
本文作者 Madobi Nanami
发布时间 2025-12-01
许可协议 CC BY-NC-SA 4.0
发表新评论