「這個U盤,我不能插。」
晚上九點二十,二食堂。最裡面那張桌子,兩碗麻辣燙,一碗加了三份寬粉,一碗什麼都沒加。
護棠把那個黑色U盤放在兩碗中間,推回到顧知夏跟前。
「為什麼?」
「我是棠舟的人,雲帆是棠舟併購的。」他說,「霍硯的文件,經我的電腦打開,明天他的律師就會說,這是我們偽造的,或者我們篡改過。」
顧知夏夾起一根寬粉,沒吃。
「又是取證鏈。」
「你上周剛吃過這個虧。」
她把寬粉放下了。這句話她沒法反駁。伺服器丟了,原件就成了複印件,複印件就成了她自己P的。同一個坑,不能踩兩回。
「那給誰?」
護棠掏出手機,翻到昨晚那張白紙上的名字。沈知微後面寫著「50」,再往下,有一行很小的字,是他爸後來補上去的。
周默。
括號里兩個字:靠譜。
晚上十一點,城東,沈知微家。
開門的是個五十來歲的男人,黑框眼鏡,格子襯衫,頭髮比照片上少了一半。
護棠小時候見過他幾回。逢年過節,他媽那幾個朋友聚會,這個人總坐在最邊上,別人喝酒,他修路由器。
後來護棠才聽說,當年沈姨被一群人追著表白,是這個黑框眼鏡學長在樓下站了一個學期,一句話沒說,就給她修了一個學期的電腦。
說實話,二十多年過去,眼鏡還是那個款式的黑框,這份長情放在哪個年代都算稀罕物。
「進來。」周默說,「鞋不用換。」
沈知微穿著睡衣坐在沙發上,手裡抱著平板,豆包正在給她讀一篇論文。
「喲,太子爺,大半夜帶著小姑娘上門。」她上下打量顧知夏,「這就是那個三十九塊九?」
顧知夏:「……是我。」
「幹得漂亮。豆包說你的邏輯嚴密度是全網前百分之一。」
周默沒理她們,把書房門推開。
裡面沒有顯示器牆,也沒有什麼閃著藍光的機櫃。一張舊書桌,一台十幾年前的筆記本,外殼貼滿了貼紙,鍵盤上的字母都磨沒了。
「這台不聯網。」周默說,「網卡我拆了。」
他接過U盤,沒急著插。先拿手機對著U盤拍了正反兩面,又從抽屜里拿出一個防寫的讀卡器,接上,才插進去。
第一件事,算哈希值。一長串字母數字跳出來,他抄在一張紙上,讓護棠和顧知夏各簽了個名,標上時間:二十三點十七分。
「以後誰說這個東西被動過,就拿這張紙對。」
顧知夏看著那張紙,看了好一會兒。
文件夾不大。四個Excel表,一個文本文檔。
表名都一樣,前綴「yf_sync」,後面跟著日期。
周默點開最新的那個。
一行一行往下拉。學生編號,年級,學校代碼,作業提交記錄,作文全文,家長手機號的後四位。
拉到最底下。
七十二萬三千四百一十六行。
「不止四十萬。」顧知夏說。
「雲帆這三年又進了幾個區縣。」護棠嗓子有點緊,「新用戶都在裡面。」
周默沒說話,把表格往右拖,拖到最後一列。
更新時間。
最後一條記錄,是這個月十四號,凌晨三點四十一分。
三天前。
書房裡沒人吭聲。客廳里豆包還在念論文,念到一個術語,卡了一下,又接著念。
「這不是一次性拷走的。」周默說,「是每天在同步。」
護棠站在那兒,半天沒動。
他算過雲帆的帳。併購價,用戶數,續費率,三年的營收預測。算了七版。
他沒算過,這個平台每天夜裡三點四十,有一根管子,在往外抽東西。
「我要看雲帆的代碼。」周默說,「只讀權限,全部歷史版本。」
護棠掏出手機。
凌晨十二點零五分,他給雲帆的技術負責人小羅打了電話。對方在睡覺,接起來的時候聲音是懵的,聽完以後徹底醒了,十分鐘後開了權限。
周默換了台電腦,開始看。
他看代碼跟看報紙差不多,往下翻,偶爾停一下,停的時候會伸手推一下眼鏡。
顧知夏坐在旁邊一張小板凳上,抱著膝蓋,看了一個小時,終於忍不住問:「周叔叔,您不用查關鍵詞嗎?」
「查過了。」周默說,「它不會叫『偷數據』。」
兩點。
三點。
沈知微進來送了兩回咖啡,第二回直接睡在了書房的懶人沙發上,平板壓在胸口,豆包早就停了。
三點四十一分。
周默的手停了。
「找到了。」
護棠湊過去。
屏幕上是一段代碼,左邊一列,是三年前的一次版本更新,編號二點九點三。提交帳號叫dy_test03。
「dy,」周默說,「鼎越。」
護棠後背一涼。
「三年前,鼎越想往教育裝備轉型,競標過雲帆的硬體合作。」他說,「那會兒雲帆還沒賣給我們。盡調的時候,雲帆給了他們一個測試帳號,允許接入測試環境。」
「測試環境跟正式環境,當年沒隔開。」周默指著屏幕,「他們在裡面留了一個數據同步接口。競標沒成,人走了,接口沒走。」
他又往後翻了幾個版本。
「再看這個。一年半前,你們併購交接,這段代碼被改了個名字,挪進了日誌模塊。名字叫『異地日誌歸檔』。交接文檔里的備註是:系統核心組件,勿動。」
「每天凌晨三點四十,它把當天的新增數據打個包,當成日誌備份,發到一個外部地址。」
護棠的聲音很低:「地址是哪?」
周默把那個IP複製出來,在另一台聯網的手機上查了一下。
查完,他把手機扣在桌上。
「硯川資本大樓。」
顧知夏猛地抬頭。
樹洞牆那條私信。發帖IP,在硯川資本大樓。
同一個地方。
「打個比方。」周默看著護棠,「你家裝修,裝修隊走的時候在後牆上掏了個狗洞。後來你買下這套房子,交接的人在狗洞上掛了塊牌子,寫著『通風口,勿堵』。」
「你住了一年半,天天從它旁邊走過去。」
護棠沒說話。
交接文檔是他簽的。四百多頁,他看了三遍,每一個數據接口都核過名字。
名字都對。
懶人沙發上有動靜。沈知微醒了,揉著眼睛,聽周默又講了一遍。
講完,她坐直了。
「我靠。」
聲音不大,罵得很實在。
然後她把平板舉起來,屏幕懟到護棠臉上。豆包的對話框裡,是她剛打進去的一行字,和豆包的回答。
「問:一個平台漏了三年數據沒人發現,正常嗎?」
「答:不正常。建議立即排查責任人。」
「看見沒有。」沈知微說,「你家的鍋,漏了三年。」
護棠嘴角一抽。
顧知夏在小板凳上低下頭,肩膀抖了兩下,沒笑出聲。
周默沒笑。
他把那段代碼截圖,存進一個新文件夾,又在那張寫著哈希值的紙上補了一行,簽了自己的名字。
然後他摘下眼鏡,揉了揉眼睛,抬起頭。
「全省招標下周開標。現在補漏洞,就得公開承認。」