盧涵蓄站在公司大樓的玻璃窗前,望著外面的雨幕,手中那份解雇通知書仿佛還帶著墨水的涼意。他記得那天中午,高層會議室里傳出的低語聲:“這個系統(tǒng),必須瞞住所有人。”他沒有多想,只是笑了笑,轉(zhuǎn)身繼續(xù)敲擊鍵盤??烧l知,四個月后,那場悄無聲息的布置,將會讓一切崩塌。
01
雨水順著窗戶滑落,模糊了盧涵蓄的視線。他揉了揉太陽穴,辦公室里的空調(diào)嗡嗡作響,空氣中彌漫著咖啡和打印紙的味道。
盧涵蓄今年32歲,在這家名為“華星科技”的軟件公司做了五年的測試工程師。每天的工作就是盯著屏幕,檢查代碼的漏洞,確保系統(tǒng)運(yùn)行順暢。他不是那種野心勃勃的人,只想安穩(wěn)地過日子,攢錢娶媳婦。
今天是周五,部門經(jīng)理李廣明走進(jìn)來,臉上掛著慣常的假笑。李廣明五十出頭,頭發(fā)稀疏,總是穿著筆挺的西裝,看起來像個老派商人。
“涵蓄,來我辦公室一趟?!崩顝V明的聲音平靜,卻帶著一絲不容置疑的語氣。
盧涵蓄點(diǎn)點(diǎn)頭,關(guān)掉電腦,跟了上去。辦公室門關(guān)上時,他聽到外面同事們的鍵盤聲戛然而止,大家的目光都投向這邊。
李廣明坐下,遞給他一份文件。“公司最近優(yōu)化結(jié)構(gòu),你被裁了。補(bǔ)償金按標(biāo)準(zhǔn)走,下周一辦手續(xù)?!?/p>
盧涵蓄愣住了,手指微微顫抖?!盀槭裁词俏??我的績效一直不錯啊。”
李廣明避開他的目光,盯著桌上的水杯。“不是針對你,是整體調(diào)整。市場競爭激烈,大家都得適應(yīng)。”
盧涵蓄的心沉了下去。他想問更多,但李廣明的表情告訴他,一切都已定局。走出辦公室時,他看到同事孫可馨投來同情的眼神。孫可馨是他的搭檔,二十八歲,總是扎著馬尾,笑起來有酒窩。
“涵蓄,怎么了?”孫可馨小聲問,拉著他到茶水間。
盧涵蓄苦笑一聲,把文件給她看?!氨徊昧?。沒想到這么突然。”
孫可馨的眼睛紅了?!安豢赡?!你負(fù)責(zé)的核心系統(tǒng)測試,從沒出過岔子。公司這是怎么了?”
茶水間里,咖啡機(jī)滴答作響。盧涵蓄靠在墻上,腦海中閃過最近的項(xiàng)目。那是個內(nèi)部管理系統(tǒng),負(fù)責(zé)公司財(cái)務(wù)和數(shù)據(jù)備份。他在測試時,發(fā)現(xiàn)了一些奇怪的日志記錄,似乎有數(shù)據(jù)被異常轉(zhuǎn)移,但上報(bào)后,高層只是說“沒事,繼續(xù)”。
“可馨,你覺得公司最近有什么不對勁嗎?”盧涵蓄低聲問。
孫可馨猶豫了一下,點(diǎn)點(diǎn)頭。“我聽到財(cái)務(wù)部的董嫻說,上個月的審計(jì)報(bào)告被壓下來了。好像涉及高層?!?/p>
盧涵蓄的心跳加速。他沒有多說,只是拍拍她的肩?!爸x謝你。以后有空,聯(lián)系?!?/p>
離開公司時,天已黑了。盧涵蓄走在街頭,雨點(diǎn)打在傘上,噼啪作響。他租的單身公寓在城郊,地鐵上人擠人,他靠著車窗,腦子里亂成一鍋粥。
回到家,女友傅凌薇已經(jīng)在廚房忙活。傅凌薇三十歲,在一家廣告公司做文案,長發(fā)披肩,總是帶著溫柔的笑容。
“回來了?飯快好了?!彼D(zhuǎn)頭看到他的臉色,頓時放下鍋鏟?!俺鍪裁词铝??”
盧涵蓄把她拉到沙發(fā)上,講述了一切。傅凌薇聽完,抱住他?!皼]事,我們一起想辦法。你這么優(yōu)秀,肯定能找到更好的?!?/p>
那一夜,盧涵蓄睡不著。他盯著天花板,回想被裁前的那天中午。他路過會議室,聽到李廣明和韓永的對話。韓永是公司副總,四十多歲,聲音總是低沉有力。
“這個漏洞,必須封死。不能讓審計(jì)發(fā)現(xiàn)。”韓永說。
李廣明應(yīng)和:“放心,我已經(jīng)讓技術(shù)部改了日志?!?/p>
盧涵蓄當(dāng)時沒在意,以為是常規(guī)維護(hù)??涩F(xiàn)在想來,那或許是第一個線索。
第二天早上,盧涵蓄起床,傅凌薇已經(jīng)去上班了。他打開電腦,登錄公司舊賬號——奇怪,它還沒被注銷。他瀏覽測試記錄,那些異常日志還在。
他深吸一口氣,開始備份數(shù)據(jù)。這不是報(bào)復(fù),只是想弄清楚,為什么一個盡職的工程師,會被無情拋棄。
公寓外,晨光灑進(jìn)窗臺,照亮了桌上的咖啡杯。盧涵蓄的手指在鍵盤上飛舞,心中的疑慮如種子般悄然發(fā)芽。
02
盧涵蓄坐在電腦前,屏幕的藍(lán)光映在他臉上。他花了整個上午,梳理那些測試日志。數(shù)據(jù)轉(zhuǎn)移的痕跡指向財(cái)務(wù)模塊,似乎有人在偷偷挪用資金。
他揉揉眼睛,站起來伸懶腰。廚房里,傅凌薇留下的便條貼在冰箱上:“中午吃面條,別餓著。愛你?!?/p>
笑了笑,他煮了碗面。熱氣騰騰的面條下肚,暖了胃,也稍稍平復(fù)了心情。
下午,他聯(lián)系了老同學(xué)徐俊熙。徐俊熙是程序員,在另一家公司做開發(fā),兩人大學(xué)時是室友。
“涵蓄,怎么突然找我?”電話那頭,徐俊熙的聲音帶著驚訝。
盧涵蓄猶豫片刻,說:“我被裁了。但公司系統(tǒng)有問題,我想查查。你有空見面嗎?”
徐俊熙答應(yīng)了。他們約在市中心的咖啡館??Х瑞^里,爵士樂輕柔流淌,空氣中飄著咖啡豆的香氣。
徐俊熙一見面,就拍拍他的肩?!靶值?,聽說你的事了。華星科技最近風(fēng)聲不對勁,很多人在跳槽?!?/p>
盧涵蓄點(diǎn)點(diǎn)頭,點(diǎn)了一杯美式?!拔野l(fā)現(xiàn)系統(tǒng)日志有異常。數(shù)據(jù)被轉(zhuǎn)移了,可能涉及財(cái)務(wù)?!?/p>
徐俊熙眉頭一皺,壓低聲音。“你小心點(diǎn)。聽說華星高層和供應(yīng)商有貓膩。去年有個項(xiàng)目,測試員舉報(bào)漏洞,被直接開除了。”
盧涵蓄的心一沉。這和他太像了。他拿出U盤,里面是備份的數(shù)據(jù)。“你幫我看看,能不能分析出什么?”
徐俊熙接過U盤,插進(jìn)自己的筆記本?!靶?,但別抱太大希望。我不是專家?!?/p>
他們聊了兩個小時,徐俊熙初步看了一眼,臉色變了?!斑@日志被篡改過。轉(zhuǎn)移路徑指向一個 offshore 賬戶。涵蓄,你卷進(jìn)大麻煩了?!?/p>
盧涵蓄握緊杯子??Х鹊目酀谏嗉饴印K肫鸨徊媚翘?,李廣明的眼神,總覺得藏著什么。
晚上回家,傅凌薇已經(jīng)在等他。她做了紅燒肉,飯桌上燈光溫暖。
“和朋友聊得怎么樣?”她問,給他夾菜。
盧涵蓄點(diǎn)點(diǎn)頭?!坝悬c(diǎn)眉目。但我不想連累你?!?/p>
傅凌薇放下筷子,握住他的手?!拔覀兪且惑w的。有什么,說出來?!?/p>
他講述了發(fā)現(xiàn),傅凌薇聽后,眼睛里閃著擔(dān)心。“那你打算怎么辦?報(bào)警?”
盧涵蓄搖頭。“證據(jù)不夠。我想繼續(xù)查?;蛟S,能證明我的清白。”
夜深了,臥室里月光灑進(jìn)。盧涵蓄躺在床上,傅凌薇枕著他的臂彎,輕聲說:“不管怎樣,我信你。”
他吻了吻她的額頭,心中涌起一股暖流。但同時,疑慮如影隨形。公司黑幕的輪廓,漸漸清晰。
第二天,他開始暗中布置。第一步,創(chuàng)建匿名郵箱,聯(lián)系孫可馨。
“可馨,是我。別說出去,我想問問財(cái)務(wù)部的董嫻?!彼麑懙?。
孫可馨很快回復(fù):“她在忙,但我說服她見你。明天中午,公園?!?/p>
盧涵蓄關(guān)掉電腦,望著窗外的高樓。城市燈火閃爍,像無數(shù)秘密在夜色中隱藏。
03
公園的長椅上,秋葉飄落。盧涵蓄戴著帽子,孫可馨和董嫻準(zhǔn)時出現(xiàn)。董嫻四十歲出頭,中年女性的穩(wěn)重,穿著樸素的毛衣,眼神警惕。
“涵蓄,你找我什么事?”董嫻坐下,聲音低沉。
孫可馨在一旁守著,假裝看手機(jī)。
盧涵蓄直入主題?!岸?,我被裁了。但我知道系統(tǒng)有問題。財(cái)務(wù)數(shù)據(jù)被轉(zhuǎn)移,你知道嗎?”
董嫻的臉色微微變了。她環(huán)顧四周,樹影婆娑,風(fēng)吹過湖面,泛起漣漪?!澳阍趺粗赖模俊?/p>
“我測試過。日志顯示,資金流向不明賬戶?!北R涵蓄遞給她一張打印的報(bào)告。
董嫻看了一眼,嘆了口氣?!肮靖邔樱顝V明和韓永,在做假賬。供應(yīng)商回扣,他們挪用項(xiàng)目資金,偽造成正常支出。”
盧涵蓄的心跳加速?!盀槭裁锤嬖V我?”
董嫻苦笑?!拔乙灿邪驯谒麄兪掷?。去年審計(jì),我被迫簽字。現(xiàn)在,你被裁,或許就是因?yàn)槟闾?。?/p>
孫可馨插話:“董姐,我們能做什么?”
董嫻搖頭?!白C據(jù)鏈不全。韓永手眼通天,他老婆是市里官員?!?/p>
他們聊了半小時,董嫻離開前,說:“小心。別信任何人?!?/p>
盧涵蓄和孫可馨走在小徑上。落葉踩在腳下,發(fā)出沙沙聲。
“涵蓄,你要報(bào)復(fù)嗎?”孫可馨問,眼睛里滿是擔(dān)憂。
盧涵蓄停下腳步?!安皇菆?bào)復(fù),是正義。我想讓真相大白。”
回家路上,他接到傅凌薇的電話?!巴砩霞影啵瑒e等我?!?/p>
公寓里空蕩蕩的。盧涵蓄打開電腦,繼續(xù)分析數(shù)據(jù)。他發(fā)現(xiàn),系統(tǒng)核心有個后門,允許外部訪問。這不是bug,是人為植入。
夜色中,他的手指敲擊鍵盤,屏幕反射出堅(jiān)定的眼神。伏筆漸漸收緊,他知道,風(fēng)暴即將來臨。
第二天,他聯(lián)系了退休的審計(jì)師陳吉昌。陳吉昌六十多歲,老工程師,曾經(jīng)在華星工作過。
他們在一家小茶館見面。茶館里,茶香裊裊,老板娘端上熱騰騰的普洱。
“小子,你說系統(tǒng)崩潰?”陳吉昌捋著胡須,眼睛瞇起。
盧涵蓄點(diǎn)頭。“我想模擬一個故障,暴露后門。但需要你的經(jīng)驗(yàn)?!?/strong>
陳吉昌想了想。“華星當(dāng)年就有黑幕。我退休前,發(fā)現(xiàn)財(cái)務(wù)漏洞,被韓永威脅?!?/strong>
他講起往事,盧涵蓄聽得入神。茶水涼了,他們的對話卻熱烈起來。
離開時,陳吉昌拍拍他的肩?!拔?guī)湍?。但記住,揭開黑幕,代價不小?!?/p>
盧涵蓄點(diǎn)頭,心中多了一份底氣。夕陽西下,街道上車水馬龍,他步履堅(jiān)定。
04
周末的早晨,陽光灑進(jìn)客廳。傅凌薇在廚房煎蛋,香氣彌漫。盧涵蓄從臥室出來,抱住她。
“今天不去公司?”她笑著問。
盧涵蓄搖頭?!拔覀兂鋈プ咦摺I⑸⑿?。”
他們?nèi)チ烁浇暮吂珗@。湖水清澈,柳樹垂枝,情侶們手牽手散步。
傅凌薇靠在他肩上。“你最近總心事重重。查得怎么樣了?”
盧涵蓄猶豫?!坝羞M(jìn)展。但危險。我不想你擔(dān)心?!?/p>
她停下腳步,認(rèn)真地看著他?!案嬖V我實(shí)話。我們一起面對。”
他深吸一口氣,講述了董嫻的話和陳吉昌的幫助。傅凌薇聽完,眼睛濕潤?!澳阏嫔?。為什么不直接走人?”
“因?yàn)椴桓市?。公司毀了我的前途,我要讓他們付出代價?!北R涵蓄的聲音堅(jiān)定。
湖邊風(fēng)起,波紋蕩漾。他們的影子拉長,交織在一起。
下午,盧涵蓄獨(dú)自去了圖書館。借了幾本網(wǎng)絡(luò)安全書籍,埋頭研究后門漏洞。他知道,要讓系統(tǒng)崩潰,必須精準(zhǔn)模擬,而不傷及無辜。
晚上,孫可馨打來電話。“涵蓄,財(cái)務(wù)部又有動作。韓永讓加班改數(shù)據(jù)?!?/p>
盧涵蓄的心一緊。“謝謝。保持聯(lián)系?!?/p>
掛斷電話,他打開電腦,編寫一個腳本。腳本能悄無聲息地監(jiān)控后門,記錄所有異常訪問。
傅凌薇從浴室出來,裹著浴巾?!斑€在忙?”
他關(guān)掉屏幕,笑了笑。“沒事。來,陪我看電影?!?/p>
他們窩在沙發(fā)上,看一部老片。屏幕光影閃爍,傅凌薇的頭靠在他胸口。他撫摸她的頭發(fā),心中涌起溫暖。但腦海中,計(jì)劃的輪廓越來越清晰。
周一,盧涵蓄以求職為名,去了另一家公司面試。面試官是朱英朗,年輕的技術(shù)主管。
“盧先生,你的簡歷不錯。為什么離開華星?”朱英朗問,辦公室明亮,墻上掛著代碼海報(bào)。
盧涵蓄笑了笑?!肮菊{(diào)整。我對測試有熱情?!?/p>
聊到一半,他試探:“華星的系統(tǒng),你知道嗎?聽說有漏洞?!?/p>
朱英朗一愣,壓低聲音?!皠e提了。我以前在那兒,差點(diǎn)被牽連。高層貪污,系統(tǒng)是幫兇?!?/p>
盧涵蓄的心跳加速。這又是一個線索。他謝過朱英朗,離開時,雨又下了起來。
回家路上,他接到李廣明的電話?!昂?,補(bǔ)償金到賬了。別亂想,好好找工作?!?/p>
聲音平靜,卻讓盧涵蓄脊背發(fā)涼。他掛斷電話,雨水打在車窗上,模糊了視線。
夜里,他夢到系統(tǒng)崩潰的場景。代碼如洪水傾瀉,黑幕暴露在光天化日之下。他醒來時,汗?jié)窳苏眍^。
傅凌薇睡得安穩(wěn)。他輕輕抱住她,暗下決心:必須繼續(xù)。
05
辦公室的回憶如潮水涌來。盧涵蓄坐在電腦前,回想五年的點(diǎn)滴。同事們的笑聲,深夜加班的疲憊,一切都那么真實(shí)。
現(xiàn)在,他是自由身,卻像個幽靈,潛伏在暗處。孫可馨發(fā)來消息:“公司氛圍不對。高層開會,韓永發(fā)火了?!?/p>
盧涵蓄回復(fù):“穩(wěn)住。幫我留意日志?!?/p>
他聯(lián)系了陳吉昌,兩人視頻通話。陳吉昌的書房堆滿舊書,背景是泛黃的獎狀。
“小子,你的腳本我看了。能行,但需加個觸發(fā)器。四個月后,系統(tǒng)升級時,崩潰?!标惣f,聲音沙啞。
盧涵蓄點(diǎn)頭?!盀槭裁此膫€月?”
“因?yàn)閷徲?jì)季。華星每年底審計(jì),到時證據(jù)最全。”陳吉昌解釋。
掛斷后,盧涵蓄開始完善計(jì)劃。他創(chuàng)建假身份,潛入公司論壇,搜集情報(bào)。論壇上,有人匿名發(fā)帖:“系統(tǒng)后門,誰知道?”
回復(fù)寥寥,但一條吸引了他:“小心韓永。他有黑客朋友。”
盧涵蓄的心沉了下去。韓永不簡單。
晚上,傅凌薇下班早,帶回超市的食材。“我們做火鍋慶祝。你找到工作了嗎?”
盧涵蓄笑了笑?!翱炝恕O瘸园?。”
火鍋咕嘟冒泡,熱氣模糊了視線。他們邊吃邊聊,傅凌薇講起工作趣事,他偶爾點(diǎn)頭。
飯后,她洗碗,他靠在門框?!傲柁保绻揖砣肼闊?,你會后悔嗎?”
她轉(zhuǎn)頭,擦干手。“不會。因?yàn)槲覑勰氵@個人?!?/p>
那一刻,盧涵蓄的眼睛熱了。他抱住她,廚房的燈光溫暖如家。
第二天,他去了市圖書館,又借了資料。途中,遇到老同事吳思琪。吳思琪二十九歲,測試組的骨干,總是戴眼鏡,看起來文靜。
“涵蓄!好巧?!彼@喜地叫。
他們在路邊咖啡店坐下。吳思琪攪拌著 latte?!澳惚徊茫译y過死了。公司現(xiàn)在亂套?!?/p>
盧涵蓄試探:“亂套?怎么說?”
吳思琪壓低聲音。“新項(xiàng)目,測試壓力大。韓永催進(jìn)度,但系統(tǒng)老出問題。我懷疑有人在搞鬼?!?/p>
盧涵蓄的心一動?!澳阌腥罩締??”
她猶豫,點(diǎn)點(diǎn)頭。“但不能給你。太冒險?!?/p>
他們道別時,吳思琪塞給他一張紙條:“晚上八點(diǎn),舊倉庫見。帶U盤?!?/p>
盧涵蓄握緊紙條,夕陽拉長影子。他知道,這步棋危險,但必須走。
晚上,舊倉庫昏暗,空氣中塵土味濃重。吳思琪遞給他U盤?!斑@是最近的。小心用?!?/p>
盧涵蓄謝過她,離開時,身后腳步聲響起。他回頭,只見一個黑影閃過。
回家,他檢查U盤。數(shù)據(jù)證實(shí),后門活躍,資金流向清晰。韓永的名字赫然在列。
傅凌薇已睡。他坐在書桌前,月光照進(jìn),計(jì)劃進(jìn)入第二階段:布置陷阱。
06
日子一天天過去,盧涵蓄的生活表面平靜,內(nèi)心波瀾起伏。他開始兼職 freelance 測試,賺點(diǎn)生活費(fèi),同時推進(jìn)計(jì)劃。
傅凌薇察覺到他的變化,但沒多問。只是偶爾,在飯桌上多夾菜給他。
一個下午,他接到董嫻的電話?!昂?,韓永在查你。別露面?!?/p>
盧涵蓄的心一緊?!爸x謝董姐。我會小心。”
掛斷,他立刻換了SIM卡。城市喧囂,他走在街上,人群如潮,卻覺得孤立。
晚上,他和徐俊熙見面。酒吧里,燈光曖昧,音樂低沉。
“數(shù)據(jù)我分析了。挪用金額上億。華星快撐不住了?!毙炜∥跽f,端起啤酒。
盧涵蓄點(diǎn)頭?!拔矣?jì)劃在升級時觸發(fā)崩潰。讓后門暴露。”
徐俊熙皺眉?!帮L(fēng)險大。你確定?”
“確定。為了那些被坑的同事?!北R涵蓄的眼神堅(jiān)定。
他們碰杯,啤酒泡沫溢出。聊到深夜,徐俊熙離開前,說:“兄弟,保重。”
回家,傅凌薇在看書。見他進(jìn)來,她放下書。“又喝酒了?臉色不好?!?/p>
盧涵蓄笑了笑,坐到她身邊。“沒事。想你了?!?/p>
她靠過來,輕聲問:“計(jì)劃進(jìn)展?”
他講述了部分,她聽后,抱緊他?!拔抑С帜恪5饝?yīng)我,別冒險?!?/p>
臥室里,夜風(fēng)吹進(jìn)窗簾。盧涵蓄睡不著,腦中回蕩董嫻的話。韓永在查他,意味著時間不多了。
第二天,他聯(lián)系陳吉昌。老人家聲音疲憊,“小子,準(zhǔn)備得怎么樣?”
“我計(jì)劃在系統(tǒng)升級時觸發(fā)故障,但韓永在盯著我。”盧涵蓄坦白。
陳吉昌沉默片刻,“你得小心。這個人心狠手辣,曾經(jīng)有同事因?yàn)榻野l(fā)他而遭到報(bào)復(fù)?!?/p>
“我知道,并不想正面沖突。我的目標(biāo)是讓真相大白?!北R涵蓄的聲音堅(jiān)定。
“好,繼續(xù)推進(jìn)。必要時我可以提供支持。”陳吉昌說。
掛斷電話,盧涵蓄心中一緊。他知道,時間不多,必須盡快行動。他開始準(zhǔn)備系統(tǒng)崩潰的代碼,計(jì)劃在周末的系統(tǒng)維護(hù)時悄然啟動。
幾天后,盧涵蓄收到了徐俊熙發(fā)來的消息:“涵蓄,有人盯著你。我在公司論壇上看到有帖子在討論你,可能有人出賣你?!?/p>
他的心猛然一沉,事情變得更加復(fù)雜。他必須更加小心,不能讓任何人看出破綻。
周末的晚上,盧涵蓄在家中熬夜調(diào)試代碼。傅凌薇在旁邊陪伴,偶爾給他遞水。她關(guān)心地問:“你真的要這樣做嗎?這可能會很危險。”
“我必須揭開真相?!北R涵蓄堅(jiān)定地回答?!斑@是為了所有受到傷害的人?!?/p>
傅凌薇沉默了,雖然心中擔(dān)憂,但她知道盧涵蓄的決心。夜色漸深,窗外的燈光閃爍,仿佛在為即將到來的風(fēng)暴預(yù)示著什么。
終于,系統(tǒng)維護(hù)的日子來臨。盧涵蓄的心跳加速,他走進(jìn)辦公室,環(huán)顧四周,確保沒有異常。孫可馨也在,似乎察覺到他的緊張,給他一個鼓勵的眼神。
維護(hù)開始了,盧涵蓄打開電腦,輸入觸發(fā)代碼。緊張的氣氛在空氣中彌漫,他不知道會發(fā)生什么。
“現(xiàn)在是時候了?!彼吐曌哉Z,手指輕觸鍵盤,代碼迅速運(yùn)行。
突然,整個系統(tǒng)開始閃爍,數(shù)據(jù)流動的速度急劇加快,屏幕上出現(xiàn)一行行異常的警告信息。盧涵蓄屏住呼吸,看著這一切。
“完了?!彼吐暷剜?,心中既期待又恐懼。
正當(dāng)他準(zhǔn)備收回代碼時,系統(tǒng)發(fā)出一陣刺耳的警報(bào)聲,整個公司陷入混亂。盧涵蓄的臉上浮現(xiàn)出一絲解脫,終于,真相將被揭開。