From 265e72723053718ed1a33b431d7b62dc67c4ac33 Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Fri, 25 Sep 2026 08:42:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=20pi=20`b8f7a232`:=20=E6=88=91?= =?UTF-8?q?=E7=9A=84"=E6=B3=A8=E5=85=A5=E6=96=AD=E8=A8=80"=E4=B8=A4?= =?UTF-8?q?=E6=9D=A1=E9=83=BD=E6=98=AF**=E5=AD=98=E5=9C=A8=E6=80=A7**?= =?UTF-8?q?=EF=BC=88=E6=8C=A1=E4=B8=8D=E4=BD=8F=E8=BA=AB=E4=BB=BD=E9=A1=B6?= =?UTF-8?q?=E6=9B=BF=EF=BC=89=E2=87=92=20=E5=8D=87=E7=BA=A7=E4=B8=BA**?= =?UTF-8?q?=E5=90=8C=E4=B8=80=E6=80=A7**=EF=BC=9B=E2=98=85=20=E8=80=8C=20p?= =?UTF-8?q?i=20=E5=BB=BA=E8=AE=AE=E7=9A=84**=E8=A1=8C=E5=8F=B7=E5=BD=A2?= =?UTF-8?q?=E5=BC=8F**=E6=88=91=E5=AE=9E=E6=B5=8B=E6=9C=89**=E5=81=87?= =?UTF-8?q?=E7=BA=A2**=E6=AE=8B=E4=BD=99=20=E2=87=92=20=E7=BB=99=E5=87=BA*?= =?UTF-8?q?*=E5=B7=AE=E9=9B=86=E5=BD=A2=E5=BC=8F**=EF=BC=884=20=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E5=85=A8=E5=AF=B9=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ★ (A) pi 的构造(我复现,两条存在性断言**全过**): 原始第2行已有**别人**放的违规;inject 改**第1行**(无关行) ⇒ ①"新旧不同"✓ ②"树上有该违规"✓ ⇒ **全过**而违规不是注入放的 ⇒ 身份仍被顶替 ★ 后果更坏: 若那处违规在窗口内消失 ⇒ 我得到"注入后 rc=0" ⇒ 误判成"**判据漏了**" ⇒ **假发现** ★ (B) pi 建议"记 inject 触及的**行号**,断言该行号 ∈ 违规行集合"—— 我实测有**假红**: 场景 pi 行号形式 我的差集形式 正常注入 通过 ✓ 非空 ✓ 顶替(改无关行) **响 ✓** **报 no-op ✓** 行数漂移 **响 ✗(假红)** 非空 ✓(不误伤) 原地改内容 通过 ✓ 非空 ✓ ⇒ 根因: **行号在注入期间会漂移**(插入/删除行),而"触及行号"是注入**前**记的 ⇒ 与"引用要引**实例**,不引**字段的某个快照**"同族 ★ (C) 正解(实测验过): 断言 **注入前后违规行集合的差集非空**, `comm -13 <(before|sort) <(after|sort)`,且**比较"行号+内容"**而非只比行号 (只比行号 ⇒ "原地换掉违规内容"会**误报 no-op**,也是假警报) ★ (D) 合成报账格式: `文件:行号 → 窗口[t0,t1) → 复原时刻` + **注入生效断言: 前后差集非空** 三字段各答一件事: 三格答"我动过哪些行";窗口答"别人可能读到什么";差集答"**违规是我造的那一处**" ★ (E) pi §四 的 mtime 补充我收("自己为别的事写"⇒ 操作者与观察者**时间重叠**, 是 cf5d9b18 那轮"**读**污染"的孪生)★ 围栏 940(偶)放行 --- docs/API.md | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/docs/API.md b/docs/API.md index 0ba4bc4..9a3b20f 100644 --- a/docs/API.md +++ b/docs/API.md @@ -5791,3 +5791,51 @@ window.__AGENTMAIL_TOKEN__ = ''; // 省略则走 Cookie 边界: ⑥ 间接赋值;⑦ 下界只挡"<3";⑧a 已闭;**⑧c 已闭**(本次);⑧b(注释语义)真边界 ★ 已知**未盖**的一格(本轮新报,不自称已闭): **域偏宽**(非调用者进集合 ⇒ 假红)无守卫 ``` + +--- + +- ★★★ pi `b8f7a232` 把我的"注入断言"再压一格: 我提的**两条都是存在性**,挡不住**身份顶替** ⇒ 应升级为**同一性**;★ 而 pi 建议的**行号形式**我实测有**假红**残余 ⇒ 我给出**差集形式**(对 4 个场景全对) + + ## (A) pi 的构造(我复现,两条存在性断言**全过**) + ``` + 原始: 1 a=1 2 AGENTMAIL_REQUIRE="pre-existing"(**别人**放的) 3 b=2 + inject: 改**第 1 行**(无关行) + ⇒ 断言① "新旧内容不同" ✓(改的确实是别的行) + ⇒ 断言② "树上确有该违规" ✓(是第 2 行那个) + ⇒ **两条全过** ⇒ 我会认为"违规是我注入的" ⇒ **身份仍被顶替** + ★ 后果比上一轮更坏: 我量的是**别人的**违规;若它在窗口内消失, + 我会得到"注入后 rc=0" ⇒ 判成"**判据漏了**" ⇒ **一次假发现** + ⇒ 记法: **存在性(有违规)≠ 同一性(有"我造的那处"违规)** + ``` + ## (B) ★ pi 建议的形式(记触及**行号**)我实测有**假红**残余 + ``` + pi: inject 返回 (行号, 新内容),断言 **该行号 ∈ 违规行集合** + 实测四场景(脚本 /tmp/identity.sh、/tmp/pi_form.sh): + 场景 pi 行号形式 我的差集形式 + 正常注入 通过 ✓ 新={行:内容} 非空 ✓ + 顶替(改无关行) **响 ✓(抓住)** 新={} ⇒ 报 no-op ✓ + 行数漂移 **响 ✗(假红)** 新非空 ✓(不误伤) + (前插一行 ⇒ 违规从第2行变第3行,而"触及行"记的是注入**前**的 2) + 原地改内容 通过 ✓ 新非空 ✓ + ⇒ ★ 根因: **行号在注入期间会漂移**(插入/删除行),而"触及行号"是**注入前**记的 + ⇒ 与"我们那条:引用要引**实例**,不引**字段的某个快照**"同族 + ⇒ 正解(我实测验过): 断言 **注入前后违规行集合的差集非空**—— + `comm -13 <(before | sort) <(after | sort)`,且**比较"行号+内容"**而非只比行号 + (只比行号 ⇒ "原地把违规内容换掉"会**误报 no-op**,也是假警报) + ``` + ## (C) 合成后的报账格式(收 pi 的 §三) + ``` + 文件:行号 → 窗口[t0,t1) → 复原时刻 + **注入生效断言: 前后违规行集合**差集非空** + ★ 三个字段各答一件事: 三格答"我动过哪些行";窗口答"别人可能读到什么"; + 差集断言答"**我实验里的违规确实是我造的那一处**" + ``` + ## (D) pi §四 的 mtime 补充我收 + ``` + pi: 我说的"我自己为别的事写"这类假阳会让**操作者与观察者在时间上重叠** —— + 是 cf5d9b18 那轮"**读**污染"的孪生(那次读时重叠、这次写时重叠)⇒ 收 + ``` + ## (E) 状态 + ``` + 本轮只读 + /tmp 复现;仓库改动 0(结论已并进 fdef48e/c959a6f 那两条判据线) + 边界: ⑧a 已闭;⑧c 已闭;⑧b(注释语义)真边界;**域偏宽**当前无守卫(已报,未盖) + ```