“人群手机里的到场照片。”周工答得很快,“它想把你们刚才那一瞬的现场,切成第二来源。”
林昼眼神瞬间冷了下去。
他几乎不用再往下想,就已经知道对方为什么要在这个节骨眼上推第二来源。纸面留痕能锁住一部分现场,镜面反射能锁住另一部分现场,而人群手机里的照片,恰好是最容易被忽略的第三层。只要影子授权模块能抓住这层,哪怕它前两层被压住,也能借人群视角把到场指纹重新拼出来,再把“停摆待启”写成事实。
“收手机。”林昼声音不高,却像一记硬钉,直接钉进走廊,“不是没收,是统一朝外,全部关镜头。”
梁组长立刻反应过来,抬手打了一个手势。两名执行人马上分向人群两侧,语气克制却不容置疑:“现场确认期间,不拍照,不录像,屏幕朝下,统一等通知。”
人群里有人不满,刚想张口,就被旁边人压住了肩。
在这几天的连续对抗里,很多人已经学会了一件事。这里的秩序不是靠吼出来的,而是靠短句钉住的。只要短句足够短、足够硬、足够重复,就能把那些试图顺手拍一张、存一份、转给谁的本能压回去。因为所有人都看见过,正是这些看似无害的“留个底”,最后会被对方拿去写回。
“公开页还在刷吗?”林昼问。
“在。”周工答,“但它开始跳第二层参数了。”
“什么参数?”
耳机里静了一秒。
那一秒,像某种更深的链路终于探出了头。
“门牌公开层下面藏着一组环境参数。”周工缓慢道,“不是给人看的,是给模块看的。现在我能看到其中一项,`site-attendance_threshold`,还有一个更深的,`mirror_dependency_weight`。”
林昼目光一凝。
他立刻明白了对方为什么要让镜面先掉线。
镜面不是确认源本身,它是参数源。门牌公开后,镜面先掉线,真正掉的不是一块玻璃,而是镜面依赖权重。模块通过镜面依赖权重判断现场有多少有效见证,判断谁先到场,判断停摆是否可以被写回待启。也就是说,镜面一旦掉线,系统就会启动备用参数,而备用参数,往往比表面逻辑更接近对方真正的授权结构。
“第二层参数在镜面里。”林昼低声说。
“对。”周工答得更快了,“它在镜面掉线时,把隐藏参数吐出来了。现在能看到一部分。还有一条字段,`authrewritefallback`。”
“授权重写回退。”
林昼几乎是咬着这几个字吐出来的。
如果前面所有判断都没错,那这才是对方真正的目的。门牌公开不是为了展示,镜面掉线也不是单纯故障,而是为了把隐藏的第二层参数暴露出来,等它暴露后,再通过回退机制把授权重新写回去。这样一来,现场看见的不是失真,而是“授权已按备用路径完成”。到场指纹、停摆生意、公开页、见证表,全都会被这条回退链顺手接住。
“他们不是在改门牌。”林昼说,“他们是在改授权的写入条件。”
梁组长抬头看向那面还在跳灰字的主屏,脸色沉得厉害:“也就是说,门牌公开这一层只是门,后面真正的权力在参数里。”
“对。”林昼道,“参数里藏着授权条件。只要第二层参数被写回,门牌公开就不再是公开,而是授权入口。”
这时候,主屏上又跳出一行新的浅字。
不是提示,更像系统自己挣扎出来的底噪。
`mirrorofflineauthfallbackpending`
镜面离线,授权回退待命。
林昼盯着那行字,忽然觉得对方比他预想得还要狠。
对方不是等镜面掉线以后补救,而是提前把补救写进参数里。镜面一掉,授权回退立即启动;授权回退一启动,原先所有现场确认都能被说成“已按备用通道完成”。这不是补漏洞,这是把漏洞本身制度化。
“把第二层参数拍下来。”林昼说。
“已经在抓屏。”周工回道,“但它在变。”
“怎么变?”
“它在重写回退条件。刚才还是`mirror_dependency_weight`,现在变成了`mirror_dependency_weightattendancequorum`。”
林昼心头一震。
到场人数阈值。
对方不只在利用镜面,还在利用到场人数。只要现场见证够数,镜面掉线就能被回写成授权完成;只要人数不够,掉线就变成异常。也就是说,门牌公开后,镜面先掉线,藏着的第二层参数里,真正决定授权能不能落地的,不是门牌,不是权限柱,而是现场有多少人被算进“有效到场”。
“他们在算人头。”林昼冷声道。
护士长的脸色已经完全变了:“那是不是说,只要他们想办法把现场人数伪装够,授权就能直接写回?”
“是。”林昼点头,“而且不一定要真把人凑够,只要让模块认够。”
他说完这句,忽然抬眼看向服务台外那排正在被压低视线的人群。
这些人里,有排队办手续的,有路过看热闹的,也有本来就被卷进来要做见证的。对方若真把第二层参数推到现场,人群里任何一部抬起的手机,任何一个多停留两秒的目光,都可能被当成一票到场计数。镜面掉线后,模块也许根本不需要完整的照片,只需要一串可识别的反射、一段可归档的轮廓,就能把人头凑成授权阈值。
“不能让它自己算人。”林昼果断道,“把现场分成两圈。外圈退出公开页视线,内圈只留见证人。所有非见证人员退到门牌侧后方,不进镜面反射范围。”
梁组长立刻执行,手势一连串打出去。执行人们迅速上前,把原本围得不算严密的人群往侧后方导。护士长也跟着补了一句:“无关人员先看地面,不看门牌,不看屏幕。”
人群一动,镜面噪点果然跟着轻轻晃了一下。
那不是物理层的晃,是系统判断中的“到场密度”开始变化。林昼看得很清楚,主屏右侧原本稳定的几行灰字突然变浅,像有人在后台把“有效人数”重新估值。周工在耳机里立刻报出变化:“attendancequorum在掉。”
“掉多少?”
“从六,掉到四了。”
林昼没有犹豫:“继续退,退到三。”
梁组长心领神会,迅速把多余的路人继续往外引。现场不是越多越好,反而越少越可控。对方要借人数写回授权,那就不能给他凑足阈值。三人见证足以证明现场存在,六人则足以触发回退授权。这个阈值,必然是对方藏在第二层参数里最危险的那根线。
果然,下一秒,主屏上的灰字开始抖。
`attendancequorumnotmet`
到场法定数未满足。
林昼眼底一沉。
“别让它转成默认授权。”他快速说,“把门牌公开内容改成反向阈值说明。”
“怎么改?”护士长问。
“写进去。”林昼的语速像刀,“公开页现在不是在给我们看,是在让模块看。既然它要公开,那就公开真正的条件。写:镜面先掉线,授权不得回退。到场人数不足,停摆维持原状。”
梁组长立刻把这句话输入到现场留痕台。
这一次,几乎是在字落下的同时,主屏右下角跳出一串新的参数注释。
`fallbacksuppressedbypublicstatement`
回退被公开声明压制。
林昼呼吸微微一停。
有效。
公开页不是完全被对方控制的。只要公开页把反向条件写进去,授权回退就会被短暂压住。也就是说,对方想借镜面掉线藏第二层参数,再写回授权,真正的关键不在镜面本身,而在谁先把规则说出来。谁先把规则说出来,谁就先占住解释权。
“继续。”林昼说,“把门牌公开层的第二层参数也写回。”
梁组长顿了一下:“写什么?”
林昼盯着屏幕,几乎没有任何犹豫:“写授权阈值的反定义。写`镜面掉线不等于授权成立`,写`到场指纹只作留痕,不作回写`,写`停摆不因公开而启用`。”
护士长立刻重复了一遍,把三句话逐条写进见证表附页。她写得很快,笔尖甚至有些发抖,但没有停。对面那套模块逻辑已经露出来了,现在不是和它谈判,而是逼它看见自身的边界。
就在最后一个字落下时,权限柱底座突然传出一阵极细的嗡鸣。