第 23 章
最後的 Dongle
第二十三章:最後的 Dongle
天亮了。衡遠沒有動。
他躺在床上,看著天花板從黑變灰變白。過程大約四十分鐘。他全程睜著眼。不是失眠——是主動選擇不關機。像伺服器在部署前的靜默等待期:所有進程都已載入記憶體,等待的只是一個外部信號。
天花板白了。信號到了。
他坐起來。動作很慢。身體在整夜未睡之後有它自己的慣性。頸後切口在他轉頭時拉扯了一下。兩天了,邊緣結痂但還沒癒合。他不在意。今天之後這個傷口會變成他身上最不值得關注的東西。
客廳。法拉第籠的門板合著。鋁箔膠帶完好。
他沒有先打開它。先去廚房。水龍頭開了三秒,接了半杯水。喝了一口。嗆了——喉嚨乾到忘記怎麼吞嚥。第二口順利。第三口的時候,走廊盡頭傳來腳步聲。
葛索。穿著昨天的衣服,頭髮壓扁了一邊。他站在廚房門口,看著衡遠。
沒有說早安。九歲的孩子在這個家已經學會了:有些早晨不需要問候語,需要的是狀態確認。
「吃東西了嗎?」葛索問。
「還沒。」
葛索轉身去拿昨天剩的饅頭。涼的。他放在桌上。衡遠看了一眼,撕了一角放進嘴裡。嚼起來像嚼紙板。但碳水是碳水。今天的操作需要穩定的血糖基線,低血糖會讓手指的微顫加倍——他沒有餘量了。
「你弟呢?」
「還在睡。」葛索在他對面坐下來。「要叫他嗎?」
「再等一下。」
衡遠把半個饅頭吃完。喝完剩下的水。站起來走向法拉第籠。
他撕開鋁箔膠帶的時候,手指的觸感比往常遲鈍——右手四根手指勉強完成精細撕扯,小指翹在外面,像一個被開除但還沒離開辦公室的員工。左手輔助固定,拇指根部的單頻抽搐在他握住門板邊緣時微微可見。
Cornelius 啟動。蓄電池綠燈。昨晚充了一整夜的太陽能。今天需要的電量不多——他只需要跑一次最終的預演。
他打了一行指令:
contingency_drill --scenario=early_detection --switch_threshold=step_11
Cornelius 思考了六秒。
螢幕上滾出兩套操作序列的對比。左邊:主方案,十八步,模組 C 完整植入 + fl_09.sh + 鏡像重定向三段重映射。右邊:備用方案,前十一步共用,後段從七步壓縮為四步——模組 C 核心觸發 + fl_09.sh + 單次端口覆寫 + 終止。精準度更低,但在被追蹤後的壓縮窗口內可以完成。
十八步是精確手術。十五步是止血鉗。
他把兩套序列在腦中各走了一遍。右手手指在大腿上無聲地敲擊——模擬操作節奏。主方案的第九步有一個微旋轉,需要食指和中指以特定角度協作。他試了一次。延遲大約零點二秒。在容差範圍內。勉強。
備用方案沒有微旋轉。全部是直線敲擊。像用錘子代替螺絲起子——能把東西固定住,但不好看。
他存了兩套序列。關掉 Cornelius。蓄電池回到待機。
走出法拉第籠。封好膠帶。
葛索坐在客廳地板上,筆記本攤在膝蓋上——不是衡遠的那本,是他自己的。更小,封面是某個食品包裝紙板裁的。衡遠看到上面寫了幾行字,字很小,認不清。
「Cornelius 待會你操作。」衡遠蹲下來。膝蓋響了一聲。「我走之後,你打開它。跑 public_channel_monitor 和 cascade_estimator。如果公開頻道出現 710 區域的異常查詢密度——」
「通知你。」葛索說。「用什麼方式?」
「不通知我。我接收不到。」降級之後沒有遠程通路。「你只需要記錄。時間戳和查詢模式。如果——」他停了一下。「如果我兩個小時之後沒有回來,你帶你弟去翁阿姨那裡。」
葛索的筆停了。他看著衡遠。
他沒有問為什麼。也沒有問兩個小時是怎麼算出來的。他只是把那句話放進了他自己的系統裡——葛索的眼睛眨了一次,嘴唇微微抿緊。
「知道了。」
衡遠站起來。膝蓋又響了。四十八歲的膝蓋加上三十多小時沒睡——韌帶在抗議。
他走到兒子們的房間。葛絡還在睡。臉埋在枕頭裡,耳朵露出來一隻。衡遠在床邊蹲下。
「葛絡。」
嗡嗡聲。鼻音。葛絡翻了個身,眼睛半睜。
「爸?」
「起來。今天幫我聽嗡嗡聲。」
葛絡的眼睛全睜開了。他坐起來的速度比平常快——不是因為緊張,是因為「幫忙」這個詞在過去幾天裡已經被賦予了重量。他知道自己的嗡嗡聲有用。他不完全理解怎麼有用,但他知道爸爸認真的。
「方形的那種?」
「對。方形的。你待在巷口——不要離開巷口。如果感覺到方形的嗡嗡聲,你就——」衡遠從口袋裡掏出一塊金屬片。拆機殼剩下的廢料。「敲牆。三下。」
葛絡接過金屬片。翻了翻。「敲三下然後呢?」
「然後什麼都不用做。繼續聽。如果又有方形的,再敲三下。」
「好。」他跳下床。「可以帶水嗎?」
衡遠的嘴角動了一下。人類在執行最高權限滲透任務前的最後準備會議上,九歲的外圍哨兵最關心的後勤問題是:可以帶水嗎。
「帶。」
巷子很窄。永康特區的建築間距是零點八到一點二公尺,剛好讓兩個人側身錯過。衡遠走在前面,筆記本塞在腰後,蓋住了頸後的切口。不是偽裝——是習慣。露出頸後接口在這一帶等於舉一塊牌子寫「我有晶片」。
葛絡在後面跟著,手裡攥著金屬片和一瓶水。他的步伐比衡遠輕,每三步偏一次頭——在聽。
到了巷口。衡遠停下。
這裡距離目標驗證終端大約四百公尺。一棟半塌的商業建築地下一層。邱鑄銘安排的最後一個高權限窗口——排班表上寫的是「冷卻系統維護驗證」。衡遠不知道邱鑄銘為了這個窗口付出了什麼代價,也不打算知道。信任破裂之後留下的不是信任,是交易。
「葛絡。」
「嗯。」
「你聽到什麼了?」
葛絡歪頭。三秒。「圓的。很多圓的。滑過去的那種。」他皺眉。「有一個——不是方的。是扁的。像被壓過的方形。很遠。」
衡遠在腦中翻譯:環境底噪正常。遠處有一個低強度的掃描信號——可能是例行巡檢,不是定向追蹤。可以走。
「你在這裡等。記住——方形的,敲三下。」
「知道了啦。」葛絡找了一個牆角坐下來,背靠磚牆,水瓶放在腳邊。他的姿勢看起來像在等校車。
衡遠轉身。走了三步。
「爸。」
他停下。
「圓的不用管對不對?只管方的?」
「對。」
「好。」
衡遠繼續走。四百公尺。他數步伐。不是為了測距——是為了壓制心率。每一步都是一個計數器遞增。計數器不思考。計數器只加一。
地下一層。鑄鋁牆板。冷光管。臭氧味道更重了——比上次來時濃,可能是通風系統又退化了一層。衡遠走過轉角,看到一個他認識的門——驗證室。金屬門。沒有標識。上次他來這裡是模組 B 的植入。那次他有完整的 Layer 2,有 AI 灌入操作,他只需要在中繼的間隙夾帶私貨。
這次不一樣。這次沒有 AI。只有他自己的手、他自己的記憶、和一本寫了十八步的筆記本。
門口沒有人排隊。邱鑄銘給的窗口是獨佔的——不是標準排班,不和其他 Dongle 共享時段。衡遠不知道這是特權還是陷阱。可能兩者都是。
他站在門口。深呼吸。一次。
筆記本從腰後抽出來。翻到倒數第二頁。十八步。墨水和鉛筆混雜的字跡。前十六步是他的字,歪斜、用力、有幾處塗改。第十七和十八步有幾個符號是葛索幫他補的——穩定、清晰、比他好看。
他把每一步在腦中走了最後一遍。不念出聲。嘴唇不動。只有眼球在頁面上移動。
第一步。預驗證通過後的等待窗口——○點八秒。手指就位。
第二步到第六步。模組 C 核心代碼注入。直線敲擊。不需要精細控制。右手四指夠用。
第七步。校驗和。停頓○點三秒讓系統確認。
第八步到第十一步。觸發邏輯部署。這裡開始需要精度——第九步的微旋轉。他在腦中模擬了食指和中指的協作角度。可以。應該可以。
第十二步到第十六步。fl_09.sh 注入。點對點指令,繞過調度層。Zone 4,Rack 1172,Pod 9。他在腦中重複了三遍物理節點位址。三遍夠了。這串數字已經刻在他處理記憶和工程記憶的交界處——一半是座標,一半是名字。
第十七步。造物派載荷鏡像重定向。端口位址覆寫。邱鑄銘不知道這一步的存在。
第十八步。確認信號。全序列終止。觸發器進入延時狀態。七十二小時。
合上筆記本。塞回腰後。
他走進驗證室。
三公尺見方。金屬椅。凹槽。和記憶中一模一樣。冷光管在頭頂嗡嗡響——頻率比上次高了一點,可能是鎮流器老化。空氣裡的臭氧混著一絲銅鏽味。
他背對椅子坐下。後腦勺靠近凹槽的時候,頸後的切口碰到了金屬邊緣。冰的。然後是壓力——探針陣列對位,鎖定 C3-C4。
啪。
連接建立。
預驗證開始。三組生物信號同時讀取——腦波熵值、微血管脈動、皮膚電導。暈眩。心臟加速了兩拍。頸後薄汗。
但這次的暈眩比以前輕。降級剝掉了 Layer 3,Layer 2 遠程功能也被切斷了——他的神經系統現在更「乾淨」。更少的數位訊號干擾,更多的原始生物噪聲。驗證系統讀到的是一個比以前更像人類的信號。
通過。
沒有 AI 灌入。不會有。降級後的晶片沒有接收指令注入的能力。從這一秒開始,他的手指只聽他自己的。
第一步。
右手食指落鍵。力道控制在觸發鍵程的最小值。沒有 AI 替他校準——他靠的是五年 Dongle 操作壓進肌肉裡的手感。食指。中指。無名指。節奏是他自己的,不是機器的。更慢。更笨拙。但每一下都是他的。
第二步。第三步。
模組 C 的核心代碼進入終端的緩衝區。直線敲擊。
第四步。第五步。鼻腔裡有東西在動。不是鼻血——還不是。是黏膜充血的壓力感。顱內壓在升高。降級後的神經通路比完整時更容易過載,因為沒有 Layer 2 的遠程緩衝分攤壓力。所有的負荷都壓在本地通路上。
第六步。心率八十三。可以。
第七步。校驗和。他的手指停了○點三秒。系統確認。通過。
第八步。觸發邏輯部署開始。手指的節奏從直線敲擊切換到組合序列——每一步是三到四個鍵的組合,順序和時序都有要求。他的大腦在同時做兩件事:執行當前步驟,和預載下一步驟。像一個只有單核的 CPU 在模擬多執行緒。
第九步。微旋轉。
食指和中指交叉角度三十五度。他試了——延遲。不是○點二秒。是○點四秒。比預演時長了一倍。手指的潤滑劑在三十多小時的脫水後變薄了。關節僵。
他咬著牙完成了旋轉。系統接受了——在容差的邊緣。像一把鑰匙插進鎖孔時多轉了五度——在公差邊緣。鎖開了。
第十步。鼻血來了。
左鼻孔。沿著人中往下。他沒有擦。擦需要抬手。抬手需要中斷序列。中斷序列需要重新定位。重新定位需要時間。時間是他沒有的東西。
血滴到了操作台上。一滴。他繼續。
第十一步。耳鳴。右耳。頻率大約四千赫茲——像有人在耳道裡放了一根音叉然後走了。持續的、穩定的、不打算停的。他把它歸類為背景噪音,從注意力的優先列表裡降級。
就在他完成第十一步確認的瞬間——
牆壁傳來三下敲擊聲。
金屬撞磚牆。悶。均勻。間隔大約一秒。
葛絡。
方形的嗡嗡聲。主動掃描。
衡遠的手指懸在操作台上方。心率從八十七跳到九十四。主動掃描不等於定向追蹤——但主動掃描是定向追蹤的前奏。均衡派的追蹤 AI 在嗅。
他有兩個選擇。
繼續主方案。十八步。剩下七步。正常執行需要大約四十秒。如果追蹤 AI 在嗅了,四十秒後它可能已經鎖定了這個終端的異常流量。
切換備用方案。從第十二步開始接入簡化序列。後段四步替代原本的七步——fl_09.sh 注入、模組 C 觸發確認、簡化版鏡像重定向(單次端口覆寫,不是完整的三段重映射)、終止信號。大約二十秒。精準度降低。鏡像重定向從「完美覆蓋」降為「大致覆蓋」。造物派可能在 Rollback 後的混亂中搶到百分之十到十五的接管窗口。
但他會活著走出這個房間。他的兒子在巷口等他。
四十秒和二十秒。七步和四步。完美和大致。
他切換了。
腦中的序列從十八步翻頁到十五步。像在一個已經排練了幾十遍的劇本中場換幕——演員知道台詞,只是換了一個版本。肌肉記憶重新對齊。右手食指找到了簡化序列第一個鍵位。
第十二步(備用)。fl_09.sh。
Zone 4,Rack 1172,Pod 9。點對點指令從他的手指經過操作台進入終端,繞過調度層,走本地通路。十二行代碼。每一行在他腦中都有重量——不是代碼的重量,是那個位址指向的金屬容器裡的人的重量。
他的手指在執行。心率九十六。鼻血掛在下巴上,要滴不滴。耳鳴從右耳擴展到左耳——雙耳四千赫茲,像立體聲。
第十三步(備用)。模組 C 觸發確認。三個封包。每個封包帶著生物噪聲戳記。降級後的戳記比以前更混亂、更原始——追蹤 AI 的統計模型是基於正常晶片使用者建立的,降級後的信號特徵落在模型的訓練集之外。它認不出這是異常。
這是降級唯一的禮物。
又是三下敲擊。葛絡。
衡遠的手指沒有停。他不能停。第二次敲擊意味著掃描頻率在上升——追蹤 AI 不止在嗅了,它在縮小範圍。但他只剩兩步。
第十四步(備用)。鏡像重定向。簡化版。一次端口覆寫。不是三段重映射的精確外科手術——是拿一塊布蓋住東西,希望沒人掀開。邱鑄銘的載荷在 Rollback 觸發後會嘗試接管算力調度權,這次覆寫能擋住大部分路徑,但不是全部。
衡遠的手指完成了覆寫序列。心率一○一。視野邊緣開始模糊。不是恐懼——是純粹的生理極限。有東西必須讓出去。
視野讓了。
第十五步(備用)。終止信號。
右手食指敲下最後一個鍵。力道比需要的大了一倍——不是刻意的,是手指在這一刻失去了精細控制,只剩下「敲」和「不敲」兩個狀態。開關量。沒有中間值。
終端的確認燈亮了○點五秒。綠色。然後滅了。
觸發器已植入。模組 A、B、C 全部就位。fl_09.sh 已注入目標節點。鏡像重定向已執行。延時機制啟動。
七十二小時。
衡遠的手從操作台上滑下來。不是放下——是掉下來的。手指失去了所有張力。右手四根手指和掌心之間沒有間距,像被壓扁了。小指翹著。左手的單頻抽搐從微顫升級到可見的震動,他握拳壓住——握了三秒,鬆開。震動降回微顫。
探針陣列鬆開。啪。頸後的壓力消失。切口在分離的瞬間刺痛了一下——結痂被扯開了一小塊。
他站起來。這次膝蓋沒有軟——不是因為身體比上次好,是因為腎上腺素還沒退。退的時候會補上的。
鼻血還在流。他用手背擦了一下。紅色從鼻子到嘴角畫了一道斜線。他沒有面紙。今天只有他自己。
走出驗證室。走廊。冷光管。鑄鋁牆板上有他右手手指按過的印子——汗的。他走了十步。二十步。上樓梯。地面層。
陽光打在臉上的時候,他的眼睛痛了一下。瞳孔在地下待了太久,對光的反應慢了半拍。他站在出口處等眼睛適應。耳鳴還在。鼻血慢下來了。心率他不知道——沒有晶片讀數了,他只能靠感覺。快。但在降。
四百公尺。他走回去。沒有數步伐了。計數器完成了它的任務。
巷口。葛絡還坐在牆角。水瓶空了一半。金屬片握在手裡。他看到衡遠的時候站起來——然後看到了衡遠臉上的血。
「爸!你——」
「鼻血。」衡遠說。「沒事。」
葛絡盯著他看了兩秒。然後從口袋裡掏出一團紙——不知道從哪裡撿的宣傳單,揉成一團。他踮腳把紙團遞到衡遠鼻子底下。角度不太對。紙團太大了。但意圖是清晰的。
衡遠接過紙團。沒有用。塞在口袋裡。
「方形的來了幾次?」
「兩次。我敲了。你聽到了嗎?」
「聽到了。」
「第二次比第一次大聲。」葛絡皺眉。「硬的。像——像有人用尺量你。」
用尺量你。衡遠在腦中翻譯:掃描精度在提高。追蹤 AI 在第二次掃描時縮小了搜索半徑。他切換到備用方案的決定是對的。如果多花了二十秒——
他沒有算完。不需要了。
「走。回家。」
兩個人走進巷子。葛絡的步伐跟不上衡遠——衡遠的速度比來時快了不少。不是刻意的。是身體在腎上腺素消退前自動加速撤離。戰鬥結束了,逃跑程序接管。
七一○。樓梯。門。
葛索在客廳等著。法拉第籠門板敞開——接收公開頻道需要天線暴露。Cornelius 開著,螢幕上是監控介面,滾動的文字。他看到衡遠進門的時候站了起來。他的眼睛先看衡遠的手,再看臉。順序很說明問題:手是功能性指標,臉是情緒指標。他先確認功能。
「公開頻道在十四分鐘前出現了 710 區域的異常查詢。」葛索說。語速平穩。「密度是平常的三倍。七分鐘後降回正常。」
十四分鐘前。正好是任務執行中段。和葛絡的預警吻合。掃描和查詢同步上升——追蹤 AI 在那個窗口裡對 710 區域做了一次集中探測。然後降回正常。
它沒有找到確切目標。降級後的生物信號騙過了它。
「Cornelius 跑 cascade_estimator 了嗎?」
「跑了。」葛索走回螢幕旁邊。「倒計時已經開始了。」
螢幕上。衡遠走過去看。
Cornelius 的推演引擎從公開頻道的系統心跳包頻率變化中推算——不是直接讀取觸發器,是從心跳包的微小時序偏移推測系統負載出現了不屬於正常值班的異動。模組 C 的觸發器已經在目標系統裡開始計時。
cascade_countdown: 71:47:23
七十一小時四十七分鐘。大約十三分鐘前開始的——任務完成的那一刻。
衡遠看著那串數字。它們在跳動。每一秒少一秒。
七十一小時四十七分鐘之後。冷卻系統偽造的溫度數據會觸發第一個異常。然後熱失控。然後算力驟降。然後 retry storm。然後級聯故障。然後回退。
Rollback。
他按下了那個開關。不可逆的開關。現在開關在自己走。不需要他了。不需要任何人了。它會自己走完七十一小時四十七分鐘——四十六——四十五——
他站在螢幕前。鼻血停了。耳鳴沒停。右手垂在身側,四根手指和掌心之間的距離在慢慢恢復——腎上腺素消退後,肌肉從痙攣回到它們日常的半損狀態。小指翹著。
葛絡在門口。他沒有進法拉第籠——他知道那是爸爸和哥哥的地方。他把空了一半的水瓶放在門邊地板上。
葛索站在 Cornelius 旁邊,手指放在鍵盤上。監控介面還在滾動。公開頻道的查詢密度恢復正常了。
衡遠轉過身。他看到了兩個兒子。一個站在螢幕旁邊,一個站在門口。一個九歲的公開頻道監控員,一個九歲的電磁波預警哨兵。他把他們放進了一個成功率百分之十到十五的方案裡。他把他們當成功能性節點。
葛絡在門口晃金屬片。「爸,這個還要用嗎?」
「不用了。」
「可以留著嗎?好敲。」
衡遠的右手抬起來了。
他看著它——像看著別人的手。四根手指張開,伸出去,落在葛絡的頭頂。
頭髮很短。參差不齊。指腹下面是頭骨的弧度。溫的。
手指沒有移動。沒有從額頭滑到後腦勺。沒有畫弧。只是停在那裡。搭著。四根手指和一顆頭。
小指翹在葛絡耳朵上方兩公分的地方,碰不到頭髮。
葛絡沒有動。他仰頭看著衡遠。
三秒。
衡遠把手收回來。轉回螢幕。
71:46:08
數字在倒。他看著它們。腦中什麼都沒有計算。什麼都沒有推演。什麼都沒有歸檔。
倒計時不需要他。它會自己跳。他站在這裡或者不在這裡,數字不會因此多一秒或少一秒。
他只是站在那裡。一個按下了開關的人。等開關自己走完。
載入留言中…