Repository navigation
Releases: ziyouzhiyi666888/PE_SmartFixer
Releases · ziyouzhiyi666888/PE_SmartFixer
Release list
长期记忆与多阶段自适应风险熔断版 1.1
🧠 v1.1 — 长期记忆与多阶段自适应风险熔断版
核心升级:从"一次性修复工具"进化为带记忆的自适应修复系统。
全部新增代码仅依赖 Go 标准库,零第三方依赖,编译体积基本不变(amd64 4.93 MB)
🆕 新增:硬盘黑匣子长期记忆
- 每轮修复落地后在目标盘写入
X:\Windows\pe_fix_memory.json:
{"last_repair_time":"YYYY-MM-DD HH:MM:SS","diagnose_count":X,"last_action":"REG|a;REG|b"} - 原子写入(先写
.tmp再改名,断电不会产生半截文件) - 多机隔离:记录随目标硬盘走,不污染 PE 自身与其他机器
- BOM 容忍:记事本编辑过也不会被误判损坏
- 精确去重:按分号逐条比对,修复了子串误判会漏记工单的隐患
🚨 新增:多阶段自适应风险熔断
- 24 小时主动防御:超时判定上轮已修复成功 → 自动销毁记忆、回归初诊
- 3 次连续失败本地硬熔断:24h 内
diagnose_count >= 3→ 本地直接拦截,完全不发起网络请求(省 Token),主界面血红色高危提示并锁定"开始诊断" - 时钟错乱保守处理:主板电池失效导致时间跳到未来时,按未过期处理,绝不放行
🔄 新增:非对称事务前置回滚
- 启动阶段自动解析历史
REG|服务名工单,自动reg load→ 路径改写 →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等合法转义不受影响)
🔧 输入框提示文字点击后不消失
- 标准 Edit 控件不支持
EM_SETCUEBANNER水印(需 comctl32 v6 manifest) - 修复:改为"获得焦点清空 / 失焦且为空时恢复",并修正"提示文字不算用户输入"
🔧 AI 收到空文本误报"没有输入任何内容"
- 根因:原逻辑先插入状态消息、再读取输入,导致用户输入被挤到后面且被清洗逻辑删除
- 修复:改为先读输入、再插状态消息;长度改用
GetWindowTextLengthW;清洗逻辑补上未闭合标记过滤
🔧 注册表备份失败仍继续修改(数据安全隐患)
- 备份
.reg写入失败时立即中止修改,绝不出现"改坏了却没有备份依据"
✨ 工程增强
- 备份失败原因中文化:自动识别权限不足/磁盘只读/疑似坏道/盘符未挂载等 9 类,直接给出中文处置建议
- 全链路超时控制:注册表命令 5 秒、HTTP 10 秒、云端下载前 DNS 预检 1 秒
- 消除数据竞争:
globalAIResult改用atomic.Pointer - 代码质量:全项目
gofmt规范化、go vet零告警、71 个自动化测试(8 个测试文件,纯逻辑函数覆盖率 100%)
📦 本包内容
PE_SmartFixer_amd64.exe 64位主程序(推荐)
PE_SmartFixer_386.exe 32位主程序(已修复 WOW64 缺陷)
config.json 配置文件(需填入你的百炼 API Key)
README.txt 图文使用说明(含 v1.1 熔断机制详解)
SHA256(PE_SmartFixer_Release_v1.1.zip):
649B09BE07BD1BA14260A1B8E0F0D22BF2E1A8FD55A329A242B158F6F3A4EC3E
📋 已知限制
- CRITICAL 等级由"强制熔断"调整为"人工确认后可执行"(保留高危警告与 AI 建议动作展示)
- WMP 协议(见 WMP_SPEC_ZH.md)暂无参考实现,本项目未提供 stdin/stdout JSON-RPC 接口与
wmp_manifest.json - 恰好 24 小时的历史记录:因进程启动耗时会判定为略超 24h → 回归初诊(阈值语义为
> 24h) - 注册表修复必须在 PE 环境执行;正常 Windows 下会提示"挂载注册表失败:客户端没有所需的特权"(预期现象)
🙏 反馈
如发现问题欢迎提交 Issue。特别需要社区协助实测的场景:
- 真实 PE 环境下的注册表挂载/回滚
- 不同精简版 PE 的兼容性(尤其 32 位版本)
- 熔断机制在多台机器间的隔离行为
基于 AI 多模态视觉的 Windows PE 智能维护工具1.0
Update README to remove download links Removed download links from the README file.