08c387e609d6c3b0bbe2ac76e8f91062afeb5279
泄露缺陷功能正常、玩家看不出、只有抓包的人知道,所以门禁的【盲区】比一次具体泄露更值得投入。 本轮补掉四处盲区: ① 统计量层(新增):原来只扫牌 id,seatlist 的计数、playproc.maxcard 的牌编码、curmultiple 一个都扫不到。新增「公开账本独立重算」——只喂三家都看得见的信息(已广播的 chupai*.cards、 chupai1 的 count/flower/cardtype、庄家/叫分/主花色,账本里没有任何人的手牌), 算出的 maxseat/maxcard/缺门无对表/curmultiple/捡分 必须与包内值逐项相等; 再钉死 seatlist 恒 5 项、playproc 恒 10 个键,防止有人新加一项统计而门禁照样全绿。 报副格(design §9 的有意公开)单独做门控断言:没人报无主之前必须还是 [-1,-1]。 反向验证 5 组(塞第 6 项统计 / 提前填报副格 / 按真实手牌点亮已有缺门格 / maxcard 混入余主数 / curmultiple 混入余主数)全部转红。 ② 埋牌底牌豁免:从「按 rpc 整包放行」收窄为「按字段路径 bottom.cards + step===6 + result!==3」。 为此 collectCards 改为同时记录牌 id 的字段路径。对照实证:构造「给解散路径也带上 bottom」, 新规则转红、旧规则静默放行。 ③ 投降 / 解散两条结算路径此前零覆盖(9 局全是正常打完),各补 2 局并加覆盖下限断言。 审计未发现新泄露;唯一需放行的是「算奖明细 aset.seatlist[].cards」——投降/解散时牌一张没打, 他家的王/冲关牌会随算奖明细发给三家。这是既有行为(算奖需向三家自证、局已终止), 写成带理由、带命中计数(awardExempt>=1)的显式豁免,不让它落在扫不到的盲区里。 ④ 措辞更正:上一轮把「给重连包补上豁免」记成"收紧",实际净效果是放宽(旧放行面 ⊂ 新放行面), 注释已改成准确说法。 覆盖量:3141 个下发面 / 38619 次可见性判定 / 103175 次统计量重算比对。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Description
No description provided
11 MiB
Languages
JavaScript
99%
HTML
0.8%
PHP
0.1%