PE_SmartFixer
Health Warn
- License — License: GPL-3.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Pass
- Code scan — Scanned 1 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
🚀 PE-SmartFixer:国内首款基于 AI 视觉大模型(Qwen-VL)的 Windows PE 离线系统修复与蓝屏诊断智能工具。纯 Go 语言编写,支持脱机维护与注册表挂载。
🚀 PE-SmartFixer:基于 AI 多模态视觉的 Windows PE 离线智能维护工具
版本: v1.1 │ 环境: WinPE │ 核心: Go 语言 (无依赖) │ 大脑: Qwen-VL (多模态 AI) │ 协议: GPL-3.0 (开源)
本工具彻底颠覆了传统 WinPE 维护需要手动查资料、改脚本的断裂体验。利用大模型多模态视觉(Vision)能力作为智能诊断入口,配合 Go 语言底层硬核掌控力,实现"看图识病,一步到位直接修机"。
💡 致开发者:本项目核心 Win32 消息循环、异步消息分发、离线注册表 Hive 挂载架构已全部闭环。由于大模型 Token 消耗极高(作者钱包已穿),现将本项目全面开源,交由社区诸位 Go 语言与 Windows 底层神仙共同维护升级!
✨ 核心特性
- ⚡ 一步到位:拒绝写脚本的中间商!AI 视觉看图诊断蓝屏/驱动,Go 底层直接对离线系统执行注册表手术。
- 📦 零外部依赖:抛弃臃肿的 Python 环境,纯原生 Win32 API 消息循环调度,编译成品仅数 MB,在精简 PE 环境下稳定运行。
- 🧠 长期记忆(v1.1):在目标盘写入
X:\Windows\pe_fix_memory.json黑匣子,记录修复时间、失败次数、历史失败工单,多台电脑自动隔离。 - 🚨 多阶段自适应风险熔断(v1.1):
- 24 小时主动防御:超时自动判定上轮已修复成功,销毁记忆回归初诊。
- 3 次连续失败硬熔断:24 小时内连续 3 次修复无效 → 本地直接拦截,完全不发起网络请求(省 Token),主界面红色高危提示并锁定诊断按钮。
- 自动回滚上次改动:启动阶段自动挂载目标 SYSTEM 并复原上次改错的启动键值。
- AI 负向约束:把历史失败路径列入"禁区",强制 AI 推翻旧假设、更换思路。
- 🛡️ 多重安全防护机制:
- 四层安全白名单:指令格式校验 + 服务名白名单 + 文件名白名单 + 路径穿越防御(拦截命令注入与越界写入)。
- 网络状态预检:内置网络检测,无网环境下自动降级,主 UI 不卡顿。
- 环境幂等纯净:启动时执行清理,修改前自动生成
.reg备份,备份失败则拒绝修改。 - 异步消息分发:采用
PostMessage+ 原子指针模型,有效规避跨线程野指针与死锁风险。
🛠️ 后续社区升级方向
- 本地离线视觉模型适配:支持 MiniCPM-V / LLaVA 等轻量模型,实现无网环境下的视觉诊断。
- 蓝屏 DUMP 文件解析:离线扫描
.dmp文件,联合视觉进行双重诊断。 - PECMD/INI 启动项智能优化:扩展底层模块,支持对原系统外置加载项进行智能重组。
- WMP 协议接入:实现本项目提出的 Windows 维护协议 (WMP) 标准化接口(stdin/stdout JSON-RPC +
wmp_manifest.json),作为协议参考实现。
📖 使用说明
适用环境
Windows PE(Win7 ~ Win11 内核均可),需联网
文件清单
PE_SmartFixer_Release_v1.1.zip
├── PE_SmartFixer_amd64.exe # 64位主程序(推荐)
├── PE_SmartFixer_386.exe # 32位主程序(老旧 PE / 32位环境)
├── config.json # 配置文件(需用户填 Key)
└── README.txt # 使用说明
📥 下载:见 Releases 页面,或直接下载仓库根目录的
PE_SmartFixer_Release_v1.1.zip。
🔐 校验(SHA256):649B09BE07BD1BA14260A1B8E0F0D22BF2E1A8FD55A329A242B158F6F3A4EC3E
使用方法
- 准备工作:将
PE_SmartFixer_amd64.exe和config.json放入同一目录。编辑config.json,填入你的百炼 API Key:"api_key": "sk-你的百炼API密钥" - 启动程序:进入 PE 后,双击 PE_SmartFixer_amd64.exe 即可运行。
- 诊断故障:
- 在文本框中输入故障现象(如"开机蓝屏 0x0000007B")
- 点击"📷 选择截图",可多选蓝屏或报错截图(可选)
- 点击"🚀 开始诊断",等待 AI 分析(约 10–60 秒)
- 确认修复:AI 返回建议后,根据风险等级选择是否执行:
- SAFE / WARNING:弹窗询问"是否执行修复操作?",点"是"执行修复
- CRITICAL:高危警告,列出 AI 建议动作,由你人工确认是否执行(强烈建议先备份数据)
- 完成:修复完成后按提示重启目标系统。若不成功再次运行,v1.1 会自动回滚上次改动并唤醒第二阶段方案。
能力边界
本工具能做什么:
✅ 修复因硬盘模式切换(AHCI/RAID/IDE)导致的 0x0000007B 蓝屏
✅ 修复因关键系统服务被禁用导致的启动失败
✅ 补全缺失或损坏的系统驱动文件(如 iaStorV.sys 等)
✅ 修复因第三方优化工具误改注册表导致的系统崩溃
✅ 修复驱动冲突、驱动加载失败导致的蓝屏
本工具不能做什么:
❌ 无法修复硬件物理故障(硬盘坏道、内存损坏、主板故障)
❌ 无法修复引导记录损坏(MBR/UEFI 引导丢失)
❌ 无法修改 BIOS/UEFI 固件设置(启动顺序、硬盘模式等)
❌ 无法处理全盘加密(BitLocker)锁定的系统
❌ 无法进行数据恢复(误删文件、格式化等)
❌ 无网络环境下无法使用 AI 诊断功能
常见问题
Q1:提示"无法读取 config.json"?
A:请确保 config.json 与 exe 在同一目录,且文件格式正确。
Q2:提示"缺少 api_key"?
A:请打开 config.json,填入有效的百炼 API Key。
Q3:AI 请求超时或失败?
A:请在 PE 中确认网络连接正常(需能访问阿里云 API)。
Q4:修复后蓝屏依旧怎么办?
A:程序已自动备份:
- 文件备份:原文件同目录下的 .bak 文件
- 注册表备份:X:\Windows\服务名_Start_backup.reg
- 回滚方法详见修复成功后的弹窗指引。
v1.1 起会额外自动处理:重新运行本程序时,会自动读取历史失败记录、自动回滚上次改动的启动键值,并把历史失败路径列为 AI 的"禁区"强制换思路。累计 3 次仍无效则触发本地硬熔断(不再消耗 Token)。
Q5:目标盘出现的 pe_fix_memory.json 是什么?能删吗?
A:这是 v1.1 的"黑匣子"长期记忆文件(位于 X:\Windows\,X 为目标系统盘),用于记录修复时间、失败计数和历史工单。
- 超过 24 小时程序会判定上轮已修复成功并自动删除
- 若你想重置计数,手动删除该文件即可(等同于回归全新初诊)
- 它不会写入 PE 自身,也不会影响其他电脑
Q6:累计 3 次失败被熔断了,怎么解除?
A:这是保护你硬盘数据的硬熔断(提示"物理硬件损坏或高危病毒")。请优先备份数据并排查硬件。
若确认是误判需要重新诊断,手动删除目标盘的 X:\Windows\pe_fix_memory.json 后重启程序即可解除。
Q7:PE 里没有网络怎么办?
A:⚠️ 本工具依赖云端 AI 模型进行诊断,必须联网才能完成完整的"诊断-修复"闭环。建议使用带网络功能的 PE(如 FirPE、微PE网络版等)。
Q8:能在正常 Windows 系统下运行吗?
A:可以启动并诊断,但注册表修复必须在 PE 下进行。正常系统下目标 SYSTEM 配置单元被占用,会提示"挂载注册表失败:客户端没有所需的特权",这是预期现象而非程序缺陷。
Q9:32 位版能不能用?
A:v1.1 已修复 32 位版的严重缺陷(v1.0 的 386 版在 64 位 Windows 上受 WOW64 文件系统重定向影响,会找不到系统盘、甚至把 System32 的文件写错到 SysWOW64)。现在 32/64 位均可正常使用,但仍推荐优先使用 64 位版。
授权说明
本工具采用"个人免费 + 厂商授权"模式:
✅ 个人用户:免费使用,无需授权。
✅ 个人 PE 制作者(非商业用途):免费集成,需保留原作者信息和出处,不得篡改版权声明。
✅ 商业 PE 厂商、商业 PE 产品、以盈利为目的的集成:需获得商业授权。请联系作者获取授权协议。
❌ 未经授权的商业集成,视为侵权,作者保留追究法律责任的权利。
免责声明
本工具为免费软件,按"现状"提供,不提供任何形式的明示或暗示担保(包括但不限于适销性、特定用途适用性等)。
使用本工具即表示您已理解并接受以下条款:
- 本工具修改目标系统的注册表和系统文件,操作存在风险。
- 作者不对使用本工具造成的任何数据丢失、系统损坏或其他损失承担责任。
- 修复前请务必备份重要数据,建议在 PE 环境下使用。
如不同意上述条款,请勿使用本工具。
联系方式
致谢
- 基于 Go 1.20 开发
- 感谢 Qwen-VL 提供的 AI 能力
更新日志
v1.1 — 长期记忆与多阶段自适应风险熔断版(当前版本)
核心升级:从"一次性修复工具"进化为带记忆的自适应修复系统。所有新增依赖均来自 Go 标准库,编译体积基本不变(amd64 4.93 MB),依然零第三方依赖。
🆕 新增:硬盘黑匣子长期记忆
- 每轮修复落地后,在目标盘写入
X:\Windows\pe_fix_memory.json,格式严格规范为一行 JSON:{"last_repair_time":"YYYY-MM-DD HH:MM:SS","diagnose_count":X,"last_action":"REG|a;REG|b"} - 原子化写入:先写
.tmp再改名,杜绝断电/崩溃产生半截文件 - 多机隔离:记录随目标硬盘走,不污染 PE 自身,也不影响其他机器
- 向前兼容:兼容 UTF-8 BOM(记事本编辑过也不会被误判为损坏);未知字段自动忽略
- 动作去重:按分号逐条精确比对(修复了子串误判会把
REG|iaStor误当已存在的隐患)
🆕 新增:多阶段自适应风险熔断
- 24 小时主动防御:启动时用时间差判定,超过 24 小时视为上轮已修复成功 → 自动销毁记忆、回归纯净初诊
- 3 次连续失败本地硬熔断:24 小时内
diagnose_count >= 3→ 本地直接拦截,完全不向大模型发起网络请求(帮你省 Token),主界面显示血红色高危安全提示,并锁定"开始诊断"按钮 - 时钟错乱保守处理:主板电池失效导致时间跳到未来时,按"未过期"处理(保守熔断,绝不放行)
🆕 新增:非对称事务前置回滚
- 启动阶段自动解析历史失败工单,提取
REG|服务名 - 抢在 AI 重新号脉前,自动
reg load挂载目标 SYSTEM → 路径改写 →reg import→reg unload,把上次改错的启动键值复原 - ⚠️ 关键实现细节:备份
.reg里的路径是HKLM\SYSTEM\...(在线路径),直接双击导入只会改到 PE 自身的注册表。本版本通过"挂载点路径改写(SYSTEM → SysTemp)"实现真正的离线回滚;改写不成功则中止回滚,绝不静默写错注册表 - 非阻塞设计:回滚结果并入主界面提示文字,不用模态弹窗阻塞启动流程
🆕 新增:内存级负向强约束提示词
- 绝不改写静态
config.json,而是在运行内存中动态判定历史失败工单 - 在
systemPrompt末尾追加"历史重症监护记录",强制 AI 全量封印失败路径、推翻旧假设、更换思维维度 - 历史工单含
%、引号、反斜杠等特殊字符也不会破坏提示词
🆕 新增:四层安全白名单(防御 AI 给出错误指令)
| 防线 | 作用 | 拦截示例 |
|---|---|---|
| 指令格式校验 | REG|服务名(最多 2 段)/ FILE|文件名|相对路径(必须 3 段) |
REG|a|b |
| 服务名白名单 | 仅允许字母、数字、_、.、- |
REG|svc&calc(命令注入) |
| 文件名白名单 | 禁止 \ / : * ? " < > | |
FILE|a/b.sys|drivers |
| 路径穿越防御 | 目标必须锁定在 X:\Windows\ 内 |
FILE|x|..\..\..\Users |
解析层 + 执行层双重校验,即使绕过第一层也会在创建目录/写文件前被拦下。
🔧 修复:32 位版在 64 位 Windows 上完全不可用(严重)
- 现象:386 版启动后主窗口不出现,只弹"未识别到系统盘"
- 根因:WOW64 文件系统重定向 —— 32 位进程访问
C:\Windows\System32会被透明映射到C:\Windows\SysWOW64,而SysWOW64\config\SYSTEM根本不存在 - 危害:① 找不到系统盘导致所有修复功能失效;② 即使找到,修复 System32 下的文件会写错到 SysWOW64
- 修复:启动时调用
Wow64DisableWow64FsRedirection()关闭重定向
🔧 修复:AI 返回 JSON 含 Windows 路径导致解析失败
- 现象:弹窗"解析 AI 药方失败: invalid character 'D' in string escape code"
- 根因:AI 返回
"SYSTEM32\DRIVERS",其中\D不是合法 JSON 转义 - 修复:解析前自动修复非法转义(幂等,
\n、\uXXXX等合法转义不受影响)
🔧 修复:输入框提示文字点击后不消失
- 根因:原用
SetWindowText写成真实文本;标准 Edit 控件不支持EM_SETCUEBANNER水印(需 comctl32 v6 manifest) - 修复:改为"获得焦点清空 / 失焦且为空时恢复",并同步修正读取逻辑(提示文字不算用户输入)
🔧 修复:AI 收到空文本导致误报"没有输入任何内容"
- 根因:原逻辑先插入状态消息、再读取输入,导致用户输入被挤到后面,且清洗逻辑在标记未闭合时会整段删除
- 修复:改为先读取用户输入、再插入状态消息;文本长度改用
GetWindowTextLengthW;清洗逻辑补上未闭合标记过滤
🔧 修复:注册表备份失败仍继续修改(安全隐患)
- 备份
.reg写入失败时立即中止修改,绝不出现"改坏了却没有备份依据"
✨ 增强
- 备份失败原因中文化:自动识别
Access is denied(权限不足)、write protected(磁盘只读)、I/O error/CRC(疑似坏道)、cannot find the path(盘符未挂载)等 9 类,直接给出中文处置建议 - 全链路超时控制:所有注册表命令 5 秒超时、云端下载前 DNS 预检(1 秒)、HTTP 10 秒
- 消除数据竞争:
globalAIResult改用atomic.Pointer,彻底消除跨线程读写的理论竞争 - 代码质量:全项目
gofmt规范化、go vet零告警、71 个自动化测试(纯逻辑函数覆盖率 100%)、引入可测纯函数分层设计
📋 已知限制
- 恰好 24 小时的历史记录:因进程启动耗时,实际会被判定为"略超 24h"→ 回归初诊(阈值语义为
>24h才过期) - WMP 协议(WMP_SPEC_ZH.md)目前尚无参考实现,本项目暂未提供 stdin/stdout JSON-RPC 接口与
wmp_manifest.json - CRITICAL 等级由"强制熔断"调整为"人工确认后可执行"(保留高危警告与建议动作展示)
v1.0
- 首发版本
- 支持 AI 文字 + 截图诊断
- 支持注册表服务修复(REG|服务名)
- 支持系统文件补全(FILE|文件名|相对路径)
- 自动备份 + 回滚指引
- 三级风险熔断机制(SAFE / WARNING / CRITICAL)
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found