33 lines
2.6 KiB
Markdown
33 lines
2.6 KiB
Markdown
# 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 尚缺文件传输助手打开、发送/读回、新消息发现和微信重启恢复。
|