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

2.6 KiB
Raw Blame History

M1A/Foundation + Database MVP 真机验收

日期:2026-09-04
主机:DESKTOP-EGI7QCK / Windows 10.0.19044.0
微信:Weixin.exe 4.1.8.29
状态:M1A 通过;M1 仍未完成。

Linux

  • .NET SDK8.0.424
  • dotnet test tests/node-agent/WxAgent.Core.Tests -c Release7/7 通过。
  • dotnet build WxAgent.sln -c Release -p:EnableWindowsTargeting=true0 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 尚缺文件传输助手打开、发送/读回、新消息发现和微信重启恢复。