第 13 章

架構圖

架構圖 illustration

第十三章:架構圖


衡遠在排隊。

配電設施地下一層的冷光管把所有人的臉照成同一種顏色——偏青的灰白,像密封包裝裡的矽晶圓。前面有七個人,每個人之間隔著大約一公尺半的距離。沒有人說話。鑄鋁牆板反射的光線讓空間看起來比實際更寬,但臭氧的味道暴露了真相:這裡的通風系統至少三年沒換過濾網。

衡遠的左手插在口袋裡。不是因為冷——地下一層的溫度常年二十一度。是因為韌體寬限期在今天早上歸零了。

第一次神經干擾發生在他出門前。

很短。零點五秒。右手食指和中指突然不屬於他——像是有人從外部接管了那兩根手指的控制權,讓它們往掌心方向抽了一下,然後歸還。不痛。但他倒出來的水撒了三分之一在流理台上。

葛索在廚房另一邊看到了。衡遠對上他的視線時,那雙眼睛已經完成了歸檔——「父親,日期,事件:手不對了,和平常那種不一樣。」

「新的。」衡遠說。只說了這兩個字。

葛索點頭。

警告模式。隨機零點五秒的神經干擾。可能在任何時刻——走路、吃飯、操作驗證終端。從現在開始,他的身體多了一個不由他控制的中斷程序,而且沒有異常處理的攔截機制。

排隊向前移了一個位置。衡遠跟上。

他在口袋裡翻開工程師筆記本,用拇指摸到昨晚用鉛筆壓出的凹痕——MQTT 訂閱封包的格式,$SYS/hardware/thermal/zone_7/,每個斜線的位置他都能用觸覺確認。這組訂閱指令比之前的混淆數據嵌入複雜得多。混淆只需要在封包尾端附加幾個無害的位元組;訂閱是要讓系統在執行完驗證後,回傳一段它本不該回傳的數據。

如果邱鑄銘的情報是真的,回傳數據裡會有一個欄位:control_mode: manual_override_only

如果是假的——

下一個。向前移。

衡遠的手指在筆記本封面上停了。拇指和食指之間的肌肉收縮了半秒,像是有人在肌腱上彈了一下。然後恢復。

他在腦中計時。距離上一次,大約四十分鐘。如果是均勻分布,今天的 Dongle 操作窗口有將近六十秒,被命中的概率不到百分之一。如果不是均勻分布——他沒有足夠的樣本。

輪到他了。

金屬椅。圓形凹槽對準頸後。冷光管在正上方。他把後腦勺壓進凹槽的動作和前面七個人一模一樣——這是一種集體性的馴服姿態,如果從監控攝影機的角度看,八個人像同一條產線上的零件。

預驗證通過。三組生物信號的綠燈同時亮起。

AI 指令注入。衡遠的意識退到後座。他的手指開始在終端上執行操作序列——不是他的意志,是系統透過運動皮層注入的指令串。但在第十四步和第十五步之間,有一個他預留的空隙。

空隙持續了一點二秒。

在這一點二秒裡,衡遠把 MQTT 訂閱封包的結構從記憶中調出來——十六進位的字節序列,他昨晚用 Cornelius 生成、手抄在紙上、用拇指摸了十七遍的那組。他的手指像是在打字但其實是在嵌入——把訂閱指令夾帶在一段標準的心跳包回應裡。

封包發出。他的指尖還殘留著嵌入操作時按鍵的觸感——比正常操作序列快了零點三秒,每一下都壓得更深。

他不會在終端上看到回傳。回傳數據會經過 MQTT broker 回到他嵌入的訂閱頻道——一個他不該有權限讀取的系統診斷頻道。數據會停留在那裡六十秒。如果他在下一次 Dongle 操作中成功讀取,就能看到 Zone 7 的回傳內容。

但他不需要等到下一次。

在操作序列的第二十一步——也就是 AI 指令串的標準結束前兩步——系統回傳了一段異常長的確認封包。正常的確認封包是四十八個位元組。這一段有一百二十六個。

多出來的七十八個位元組被夾帶在確認封包的保留欄位裡。衡遠的意識在退後座的狀態下無法閱讀,但他的手指——他那雙做了五年 Dongle 操作的手指——感覺到了終端回傳時震動模式的差異。正常確認是一次短震。這次是短——長——短。

他把這個震動模式鎖進記憶。

操作結束。金屬椅鬆開頸後壓力。衡遠站起來,腿有一瞬間的軟——不是警告模式,是標準 Dongle 後遺症。他走向出口的時候,在夾克口袋裡用食指在筆記本封面上劃了三道:短、長、短。

出了配電設施。陽光。永康的街道。鹹粥攤的蒸氣。

他在市場外的一張塑膠椅上坐下,打開筆記本翻到空白頁,把剛才的震動模式轉譯成可能的位元組序列。短——長——短,在他熟悉的 MQTT 確認封包的保留欄位編碼中,對應的前綴是——

control_mode: manual_override_only

邱鑄銘的情報是真的。Zone 7 的冷媒回流閥確實是手動控制,沒有自動備援。

衡遠在那個字下面畫了一條線。然後闔上筆記本。

但他沒有站起來。因為那段超長確認封包裡不只有 control_mode。在他用拇指重新摸過震動模式的第三段時,有一組他預期之外的數據——一個帶有時間戳的排程欄位。

maint_window: 0300-0315 UTC+8 / cycle: 14d

每十四天,Zone 7 會有一個十五分鐘的維護窗口。凌晨三點到三點十五分。

衡遠的第一反應是計算:如果攻擊要在維護窗口之外進行,他需要避開這個排程。如果在窗口內——維護窗口期間冷卻系統的行為模式可能不同,他的偽造信號可能失效。

他把這個排程記在筆記本上。然後起身。

市場邊緣的人流和昨天一模一樣。搬遷期限的倒計時板在市場入口的牆上,數字又少了一天。二十四。


法拉第籠裡的溫度和外面差了四度。衡遠把鋁箔膠帶重新封好——邊緣的起毛已經開始影響密封性了,他用指甲把最長的幾根纖維壓回去,但知道這只是延緩。

Cornelius 暖機。GPU 風扇啟動的低頻嗡聲在一點五公尺見方的空間裡回彈了兩次才穩定下來。電力計時器顯示今天有一百一十九分鐘——雲層比昨天厚。

衡遠把筆記本翻到新頁。在頂部寫下:

攻擊路徑——架構圖 v1

然後在 Cornelius 的對話窗中打字。

> 假設一個大型分散式冷卻系統,其中一個節點(Zone 7)的冷媒回流閥
> 為手動控制、無自動備援。如果要讓這個節點過熱而不觸發系統警報,
> 攻擊者需要做什麼?逐步列出。

Cornelius 想了十二秒。

冷卻系統攻擊路徑分析:

前提:Zone 7 回流閥為手動控制(無遠端備援),意味著關閉此閥
的唯一方式是物理操作。但攻擊者不需要關閉閥門——只需要讓系統
「以為」冷卻正常。

步驟:
1. 偽造 Zone 7 溫度感測器的回報數據——在管理層植入一段邏輯,
   在溫度超標時回報「正常」
2. 同時偽造冷媒流量計的數據——讓系統認為冷媒仍在正常循環
3. 當真實溫度超過 thermal throttling 閾值,晶片自動降頻——
   但管理系統看不到這一層(它看到的是「溫度正常」)
4. 降頻導致該節點算力驟降——依賴這個節點的上層服務開始超時
5. 超時觸發自動重試——retry storm 消耗殘存算力——級聯故障

關鍵前提:攻擊者必須能在 Dongle 任務中將偽造邏輯植入冷卻系統
的管理層。這需要的不是一次操作,而是多次、分散在不同任務中的
模組化植入。

建議分拆為三個獨立模組:
- 模組 A:溫度感測器劫持(修改回報值)
- 模組 B:流量計數據偽造(模擬正常循環模式)
- 模組 C:觸發器——在指定時間同步啟動 A 和 B

衡遠逐行讀完。沒有幻覺。邏輯清晰。但他注意到 Cornelius 跳過了一個環節——級聯故障之後的系統降級行為。

他接著輸入:

> 如果級聯故障擴大到全球算力網路的規模,系統的自動保護機制
> 會做什麼?假設系統有「降級模式」的概念——回退到更穩定的
> 舊版基礎架構。這個回退會影響哪些子系統?列出所有可能受影響的
> 子系統類別。

Cornelius 想了十八秒。比平常久。

全球級聯故障下的系統自動降級可能影響以下子系統:

1. 算力分配系統——從智能調度回退到先到先得
2. 通訊網路——降級到低頻寬模式,非優先流量被丟棄
3. 交通控制系統——自動駕駛降級為手動,可能導致大規模停運
4. 醫療監控系統——遠程手術和 AI 診斷中斷
5. 金融結算系統——算力配額交易暫停
6. 電力調度系統——回退到區域自治模式

注意:以上均為「依賴當前版本全球算力架構」的子系統。

任何擁有本地容錯邏輯和獨立電源的子系統,理論上不受
直接影響——但前提是其容錯邏輯確實能在級聯故障的混亂
中正常啟動。

衡遠看著最後兩行。手指停在鍵盤上方,懸了兩秒。

他打了一行字。刪掉了一半。重新打。

> 維生艙系統是否屬於「擁有本地容錯邏輯和獨立電源」的子系統?

Cornelius 想了九秒。

維生艙系統的設計規格中包含本地容錯控制器和獨立備用電源
(通常可維持 72 小時)。因此理論上屬於「不受直接影響」的類別。

但需要注意:維生艙節點的主電源通常來自所在區域的資料中心。
如果該資料中心的冷卻系統也因級聯故障崩潰,緊急斷電保護
可能切斷主電源。在主電源切斷和備用電源啟動之間,存在一個
數秒到數分鐘的切換窗口。

維生艙子系統依賴當前版本基礎架構的概率:無法確定。

衡遠盯著「無法確定」三個字。

七十億參數的模型不會說這三個字——除非它真的不知道。

也就是說:對他而言,也是。

衡遠的呼吸改變了。不是加速——是節奏亂了。吸氣和呼氣之間多了一個不該存在的停頓,像是肺在某個位置卡了一下。他的右手離開了鍵盤,攥住了自己的膝蓋。指節發白。

他的攻擊計畫可能殺人。

不是抽象的「可能」。是具體的:如果維生艙的備用電源切換系統在級聯故障中出了問題,如果那個「數秒到數分鐘的切換窗口」拉長到備用電源耗盡之後——艙裡的人會死。

多少人?他不知道。一個城市級的節點管理數千到數萬個艙體。全球有多少個節點?他不知道。不是他不願意知道——是這個數字從未出現在他能接觸到的任何信息裡。

衡遠鬆開膝蓋。站起來。在法拉第籠裡站起來的空間不夠,他的頭頂擦到了鋁箔內壁。他需要出去。不是因為缺氧——法拉第籠有通風孔。是因為他需要確認孩子在不在。

他彎腰鑽出金屬工具櫃。臥室裡有光——下午的陽光從窗戶進來,在地板上畫了一個長方形。他走到門口。推開。

走廊。葛索的房間門半開著。衡遠看到了他想看到的——兩個影子。矮桌旁邊,一大一小。

葛索在看書。葛絡趴在桌上,下巴壓在交疊的手臂上,臉朝向窗戶。

他們在。

衡遠站了三秒。然後轉身回去。

他重新鑽進法拉第籠。重新坐到 Cornelius 前面。螢幕上那行「無法確定」還在。

他在鍵盤上打字。

> 繼續。假設維生艙系統有獨立備用電源且本地容錯邏輯設計合理,
> 進入下一個問題:Rollback 的觸發時機與攻擊模組的同步機制。

他跳過了那個問題。

不是因為他判斷安全。是因為他判斷自己無法獲得更多數據。在數據不足的情況下,繼續推演只會產生幻覺——他不是 Cornelius,但在這個問題上,他的大腦和 Cornelius 一樣無能。

所以他選擇繼續。

他在筆記本上畫下攻擊方案的架構圖。三個模組。三次 Dongle 任務。模組 A——溫度感測器劫持——需要在下一次分配到 Zone 7 相關設施的任務中植入。模組 B——流量計偽造——需要在冷卻系統控制層的另一個入口點植入。模組 C——觸發器——最後植入,在模組 A 和 B 就位後才能生效。

三個模組的植入分散在三次不同的 Dongle 任務中,避免單次操作的異常行為量觸發監控。每個模組獨立運作,彼此之間不通訊——它們只在被觸發器同步啟動時才形成完整的攻擊鏈。

但在攻擊鏈之外,還需要一個子程序。一段注入維生艙節點本地控制器的優先指令——在偵測到任何異常時,立即切換備用電源,不等自動切換系統的判斷。

衡遠把這段子程序寫在架構圖的右上角。他注意到自己畫的是虛線——不是實線。虛線在他的工程圖標裡代表「未驗證」。

他在虛線旁邊寫了一行小字:需要非標準生物驗證信號。

因為維生艙節點的本地控制器也受到生物物理驗證保護。要注入那段優先指令,他需要在驗證終端前通過驗證——但維生艙節點的驗證終端不在他的 Dongle 任務輪班範圍裡。他從未被分配到過任何與維生艙相關的設施。

這是一個死結。架構圖上的虛線沒有連接任何東西。

衡遠讓 Cornelius 推演攻擊方案的時序安排。他輸入了三組參數,分別代表三個模組的植入窗口和觸發器的同步延遲。

Cornelius 跑了三次。

第一次:給出了一個乾淨的時序表,三個模組在七天內完成植入,觸發器在第八天啟動。 第二次:修改了模組 B 的植入順序,把它移到模組 A 之前,理由是「減少單次操作的行為特徵暴露」。 第三次:輸出了一段衡遠沒見過的內容——一個警告。

注意:Zone 7 的硬體診斷紀錄顯示存在週期性的控制模式切換排程。
如果此排程在攻擊觸發窗口內啟動,冷卻系統可能暫時回到自動控制
模式,導致偽造信號被覆寫。

建議:確認 Zone 7 的維護排程,避開維護窗口。

衡遠看著這段輸出。

三次推演三組結果。每次都不一樣。這是 7B 模型的老問題——它的推理不具一致性。三組結果裡,哪一組是可靠的?

他的篩選標準和過去十幾次推演一樣:取兩組一致的方向,丟棄偏離的那組。前兩次都聚焦在時序和模組順序上——這是工程問題,有確定性的最優解。第三次突然跳出一個「維護排程」的警告——但 Cornelius 並沒有 Zone 7 維護排程的數據,它怎麼可能知道?

幻覺。衡遠在腦中給第三組結果打了標籤。

他沒有回去看他在市場塑膠椅上記下的那行字:maint_window: 0300-0315 UTC+8 / cycle: 14d。那段數據在他的筆記本裡,離他的手不到三十公分,但他的注意力已經轉到下一個問題了。

他翻到新的一頁,開始畫觸發器的同步邏輯。

電力計時器跳到剩餘五十一分鐘。


衡遠從法拉第籠出來的時候,臥室裡的光已經變成橙色。傍晚了。他今天在 Cornelius 前面坐了將近兩個小時,比平時多了半小時——代價是明天的電力預算要從某個地方挪。

他把鋁箔膠帶封回去。拉開臥室門。

走廊裡有聲音。

不是葛索的——葛索發出聲音的概率和法拉第籠裡出現 Wi-Fi 信號差不多。是葛絡的聲音。

「——然後他就說,『你的腳不是腳,是兩根筷子。』然後我就說——」

衡遠轉過走廊的角。客廳裡,葛絡正站在矮桌上——赤腳踩著桌面,雙手叉腰,用一種明顯是在模仿市場魚販的語調講故事。葛索坐在地板上,背靠著牆,臉上有一個幾乎看不見的弧度。

「欸——爸!」葛絡看到衡遠,語調立刻拉高了半個八度。「爸你知道嗎今天陳伯說我長高了但是只有腿長高其他沒有——」

「從桌子上下來。」衡遠說。

「——所以他說我以後可以當那種走路很快的——什麼鳥?」

「鴕鳥。從桌子上下來。」

葛絡跳下桌子。動作很大,落地時腳跟啪的一聲。他跑到衡遠面前,伸手抓住衡遠的右手前臂——不是牽手,是抓住。觸覺確認。

衡遠感覺到葛絡的手指在他前臂上收緊了一下。然後鬆開。然後又收緊。

「欸,爸。」葛絡的語調變了。從市場魚販切換到了一種更低的、更慢的頻率。「那邊的嗡嗡聲今天很大。」

他的下巴朝臥室方向抬了一下。

衡遠的胃收縮了。那邊——法拉第籠的方向。Cornelius 的 GPU 風扇。他已經關機了,但 GPU 在斷電後還會保持幾分鐘的殘餘電磁場。對普通人來說這完全不可感知。

對葛絡來說不是。

「比上次大。」葛絡皺了一下鼻子。「上次是圓的。今天是方的。方的比較不舒服。」

衡遠蹲下來。和葛絡平視。他的兒子的眼睛很亮——不是恐懼的亮,是在描述一件他認為重要的事情時的那種專注。

「你頭痛嗎?」

「不痛。就是不舒服。像有東西在耳朵後面跑。」葛絡的手指鬆開了衡遠的前臂,改成捏自己的右耳垂。「跑來跑去的那種。」

「現在呢?」

葛絡歪頭聽了一下。「小了。」停頓。「你把那個東西關了嗎?」

「關了。」

「哦。」葛絡接受了這個答案。他的表情以一種九歲孩子特有的速度從不適切換到好奇。「爸,Cornelius 今天煮了什麼湯?」

衡遠嘴角抽了一下。葛絡從來不問 Cornelius 在做什麼計算——他只用他自己的語言框架。Cornelius 會「煮湯」。有時候是「洋蔥湯」(慢慢地熬,就是長時間推演),有時候是「泡麵」(很快就有結果)。

「今天煮了很久的湯。」衡遠說。

「好喝嗎?」

衡遠想了想。「不確定。需要多煮幾次。」

葛絡嚴肅地點頭,彷彿這是一個關乎全家晚餐的重大決策。然後他轉身跑回客廳,重新跳上矮桌——

「下來。」

——然後跳下來。

衡遠站起來。走進廚房準備晚飯。冷粥加市場買的醃蘿蔔。三碗。他在舀粥的時候右手抽了一下——第三次神經干擾。他用左手穩住碗。

葛索在他身後出現了。衡遠沒有回頭,但他知道葛索在那裡——靠門框站著,觀察的角度剛好能看到他的手。

「晚飯了。」衡遠說。

葛索沒動。

「怎麼了?」

「你今天用的時間比平常長。」葛索說。不是問句。

「湯比較複雜。」

停頓。衡遠能感覺到葛索在消化這句話——不是字面意思,是在量測語調、速度、停頓。

「我可以看嗎。」葛索說。

衡遠轉過身。葛索靠在門框上,赤腳,穿著那件已經短了半寸的灰色 T 恤。他的臉是中性的——不是要求,不是懇求。是他那種資料查詢式的平靜。

「看什麼?」

「Cornelius。」

衡遠的第一反應是拒絕。他的口腔裡已經組織好了一個否定句——不行、太複雜、你不需要知道。但他停了。因為葛索的臉上沒有好奇。好奇是想知道一件新事物。葛索的表情是另一種東西——是一個已經在門外站了很多次、看了很多次、自己推演了很多次、終於決定把觀察轉化為行動的人。

「吃完飯再說。」衡遠說。

三碗冷粥。醃蘿蔔。葛絡吃飯時講了一個關於市場裡一隻單耳貓的故事。葛索在三分鐘內吃完,把碗放到水槽,然後站在廚房門口等。

衡遠洗碗。晾碗。擦乾手。

然後帶葛索走進臥室。

他沒有打開法拉第籠。他打開了工程師筆記本。翻到最早的那幾頁——不是今天的攻擊架構圖,是幾個月前他畫的 MQTT 協議結構圖、封包格式、十六進位對照表。

「這是什麼?」他指著第一頁問。

「字母和數字。」葛索說。

「對。每一組字母和數字代表一道指令。Cornelius 聽得懂這些指令。」

「像食譜。」

衡遠愣了一下。然後意識到這是葛絡的語言框架滲透到了葛索身上。

「對。像食譜。」

他把筆記本放在矮桌上。「你可以看。但不能碰 Cornelius。明白嗎?」

葛索點頭。

衡遠站起來。走到門口。回頭看了一眼——葛索已經坐在矮桌旁,筆記本在面前攤開,他的眼睛在紙面上移動的速度是衡遠見過的最平均的掃描節奏。不快不慢。逐行逐行。像是一台掃描儀在做第一遍索引。

他離開了。

四十分鐘後,衡遠回到臥室拿充電器。

法拉第籠的鋁箔膠帶有一角翹起來了。

不是他封的那個角。是另一邊。底部。翹起的位置剛好是一隻九歲孩子的手能觸及的高度。

衡遠蹲下來看。膠帶被掀起過——邊緣有一道新的摺痕。然後被壓回去了。壓得不夠緊,鋁箔的反光角度和周圍的不一致。

他打開法拉第籠。Cornelius 的螢幕是暗的——他關機了,電源也拔了。但螢幕上有一層新的指紋。鍵盤的空白鍵上有兩個。Enter 鍵上有一個。

位置分布不是成人的手——間距太窄。力道也不對——指紋太淡,像是用了最小的力氣去按。

葛索碰了 Cornelius。

沒有電源,所以什麼都不會發生。但他碰了。他試了。他把食譜看了四十分鐘,然後決定試著打開烤箱。

衡遠跪在法拉第籠前面。他的腦子裡同時運行了三條線程:一,葛索的好奇心已經越過了觀察的邊界;二,Cornelius 沒有電源,沒有損害,但這意味著下一次他可能在有電源的情況下嘗試;三——

三。

如果衡遠的攻擊計畫失敗。如果他在某次 Dongle 任務中被標記。如果警告模式惡化到他無法操作。

葛索在學。

這個念頭沒有讓他安心。它讓他的胸腔裡有什麼東西裂開了一條縫——不大,但足夠讓一種他不想命名的東西滲出來。一個九歲的孩子不該需要學這個。一個九歲的孩子不該是備份方案。

他把鋁箔膠帶重新壓好。這次壓得比之前用力。指甲陷進膠帶邊緣,留下一道清晰的壓痕。

然後站起來。走出臥室。

葛索坐在客廳的矮桌旁。筆記本闔起來了,放在桌上。他的臉朝著衡遠的方向。

兩個人對視了一下。

「電源沒插。」葛索說。

「我知道。」

停頓。

「下次我會先問。」

衡遠想說「沒有下次」。他的嘴巴張開了,舌頭頂到了上顎——第一個音節的位置。但他沒有發出聲音。

因為他不確定那是真的。

「吃點東西。」他說。然後走向陽台。

陽台。晚風。太陽能板在暮色裡反射最後一點光。衡遠的手臂撐在欄杆上,前臂壓著生鏽的金屬。遠處南科廢墟的輪廓在夕陽裡比凌晨三點的時候更清晰——看得見那些傾斜的鋼骨結構,像是一個還沒寫完的程式被強制中斷後留下的半成品。

搬遷期限二十四天。韌體已經進入警告模式。攻擊方案的架構圖在他腦子裡,三個模組、一個觸發器、一段虛線連接的子程序。虛線的那頭需要一個他還沒有的東西——非標準生物驗證信號。

而他的兒子在他不在的時候碰了 Cornelius。

衡遠沒有回頭看客廳。他看著南科的方向。風把他額前的頭髮吹開了一下又蓋回去。

攻擊方案是一張架構圖。每一個模組、每一條連接線、每一個觸發條件都有明確的定義和預期行為。這是他最擅長的東西——把混亂的世界壓縮成邏輯閘和數據流。

但架構圖上有一塊他不敢放大檢視的區域。

維生艙子系統依賴當前版本基礎架構的概率:無法確定。

他選擇了不深究。他告訴自己這是因為數據不足。他的手指在欄杆上收緊了一下,然後鬆開。

葛絡的聲音從客廳傳來——「欸——爸——那隻貓又來了!」——然後是跑步聲,赤腳拍在水泥地板上的啪啪聲,然後葛絡出現在陽台門口,整個人掛在門框上,探頭看外面。

「哪裡?」衡遠問。

「下面!你看——就那隻單耳的!」

衡遠低頭看。樓下巷子裡有一隻灰色的貓蹲在水錶蓋上。確實少了一隻耳朵。

「牠不是單耳。」衡遠說。「牠的左耳是摺耳。被毛蓋住了。」

「真的嗎?」葛絡整個上半身探出欄杆。衡遠的手本能地抓住了他的後領。

「真的。遠處看不到而已。」

葛絡縮回來。他的後腦勺碰到了衡遠的手。衡遠沒有收回去。

「爸。」

「嗯。」

「你的手不抖了欸。」

衡遠看了看自己的左手。放在欄杆上。穩的。

「是啊。」他說。

他沒有說的是:那隻手可能在今晚的任何一個時刻再抖起來。不是微顫——是零點五秒的完全失控。但此刻,在陽台上,在暮色裡,在兒子的後腦勺碰著他掌心的三秒鐘裡,他的手是穩的。

下面的貓從水錶蓋上跳下來,消失在巷子深處。

衡遠收回手。走回屋內。他需要在電力預算用完之前,把第一個模組的植入序列背下來。二十三步。每一步的操作碼、延遲、校驗和。

明天的 Dongle 任務。

他走過客廳的時候,瞥到葛索的筆記本。剛才闔著的。現在攤開了。

紙上有鉛筆痕跡。歪歪扭扭的十六進位數字——不完整,大部分是錯的。但格式是對的。字母和數字的排列方式,和衡遠筆記本裡的 MQTT 封包結構是同一個模式。

葛索在抄食譜。用一個九歲孩子的手,以一個九歲孩子的精度。

衡遠走進臥室。關上門。站了一下。然後坐到床沿,翻開自己的筆記本,開始背植入序列。

二十三步。明天。

讀者留言

載入留言中…