Files
wx-win-agent/docs/validation/M1A-2026-09-04.md
T

33 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# M1A/Foundation + Database MVP 真机验收
日期:2026-09-04
主机:`DESKTOP-EGI7QCK` / Windows `10.0.19044.0`
微信:`Weixin.exe 4.1.8.29`
状态:M1A 通过;M1 仍未完成。
## Linux
- .NET SDK:`8.0.424`
- `dotnet test tests/node-agent/WxAgent.Core.Tests -c Release`:7/7 通过。
- `dotnet build WxAgent.sln -c Release -p:EnableWindowsTargeting=true`:0 warning / 0 error。
- self-contained single-file `win-x64` 发布成功;产物约 182 MB,包含自提取 SQLCipher native library。
## Windows
- `doctor`:发现 4 个 Weixin 进程,版本均为 4.1.8.29;4/4 可用最小只读权限打开;发现 1 个账号数据库根目录。
- SSH 在 Session 0 运行时正确报告 `SessionLocked`,不伪装为 UIA 成功。
- `inspect-ui`:通过 InteractiveToken 任务在 Session 1 执行成功;导出 166 个节点。离线校验确认所有非空 Name 均为长度+短哈希,AutomationId 仅保留已知结构常量或长度+短哈希;未出现原始 `session_item_*` 后缀及明文“微信”/“发送”等名称。
- `smoke`:在 Session 1 执行成功,`doctor` 无错误、6/6 关键控件命中,并再次导出 166 个脱敏节点。
- `db scan --save`:扫描 4 个进程,发现 17 个数据库,page 1 HMAC 验证 17/17;普通 CLI 输出不含完整密钥。
- 密钥文件 ACL:继承关闭,仅 `DESKTOP-EGI7QCK\Rogee` 拥有 FullControl。
- `db query`:只读打开 `contact/contact.db`,运行时报告 SQLCipher `4.5.2 community`、SQLite `3.39.2`,读取 26 个 schema 对象,写入探针被拒绝。
- 首轮评审后补充验证:WCDB 长十六进制游程使用定长缓冲;不可读/跳过内存区不再拼接候选;密钥临时文件在写入任何密钥字节前即关闭继承并限制到当前用户;重复扫描会合并历史账号/数据库;发现、扫描和 UIA 路径均传播取消;CLI 拒绝未知、重复、缺值和非法超时参数。
- 验收结束后删除测试密钥文件;未生成解密数据库副本。
## 已知风险
- `SQLitePCLRaw.bundle_e_sqlcipher` 2.1.11 已弃用且内置 SQLite 3.39.2;它仅获准用于当前开发与真机验证。正式商业发布前必须完成许可/安全基线 gate;若不接受,应改用 Zetetic 官方 SQLCipher for .NET 并重新执行数据库验收。
- 尚未实现 PID 打开文件句柄与账号根目录的关联,证据等级仅为 `PageHmacVerified`,不能表示账号当前 active。
- 正在写入的 WAL 数据库可能出现只读一致性/锁问题;本次元数据查询成功,暂不增加解密副本或快照逻辑。
- M1 尚缺文件传输助手打开、发送/读回、新消息发现和微信重启恢复。