人間最痛苦的事情之一莫過於當你最愛的人需要幫助時,你沒有辦法伸出援手。莫嘉妮的話讓我們對營救怡年有了希望,更重要的是,我們終於不用像一個廢物一樣等待結果了。
不過雲叢又提出了一個疑問:「你們能夠確定門鎖的加密方式和那種專有的加密方式一致嗎?電子鎖其實並不非要使用非對稱加密演算法。」
「大家別擔心,為了防止洩密,r先生經常會遠端修改密碼。如果沒有非對稱加密演算法,這種修改沒有辦法安全實現。另外,為防萬一我們也考慮過他採用其他加密演算法的可能性,所以在這邊抓緊時間破解演算法的同時,另一組人也在想辦法獲得密碼鎖加密方式的確切訊息。」
莫嘉妮的安排其實是給這次營救行動上了雙保險,那麼只能祈求天意站在我們這一邊了。
「情況大家都知道了,大家先跟我走,接下來的話我們邊走邊說。」雖然莫嘉妮沒有說去哪裡,我們幾個都跟著她走出了辦公室。
「要確認他們究竟採用了哪種加密措施,我們必須想辦法在人間失格的電腦系統中植入一個後門程式,但所有有許可權進入系統的人都是r先生最信任的人,從他們身上下手可能性不大。不過根據臥底打探的訊息,系統明天會有一個安全補丁升級,開發這個補丁的和開發加密演算法的人是同一個人,r先生對他有絕對信任,不出意外的話明天系統都會安裝這個補丁,目前看來這是我們唯一的機會。只要我們能讓後門程式偽裝成這個補丁或者捆綁在這個補丁上,我們的目的就能夠實現。」莫嘉妮說著帶我們走進了電梯,並按下了地下三層的按鈕。
「現在後門程式設計出來了嗎?」雲叢問道。
「這個我們早寫好了,但目前面臨兩個問題。首先,他們的防火牆可以識別到特徵如此明顯的後門軟體;其次,在補丁升級時,他們會校驗檔案的一致性,所以任何對補丁的改動都會被發現。」莫嘉妮道。
「對於第二個問題,我們有沒有可能改動檔案校驗程式,讓它偽裝出校驗成功的資訊呢?」梁炯道。
我心裡和他們一樣著急,但作為一個程式設計的門外漢,只能幹看著他們你一言我一語地討論插不上話。
「改動檔案校驗程式也不難,但如果和補丁一起推送到他們的電腦,特徵如此明顯的檔案一定也會被防火牆發現,所以真正的難點還是第一個問題:如何繞過防火牆。」莫嘉妮道。
「那麼除了這次補丁升級之外,他們的電腦是否還會和外界網路產生聯絡?」童雲叢問。
「只會傳輸一些他們表面上合法的交易資料,不會觸及到系統的底層,而且就算在這些資料中嵌入我們的後門程式或校驗程式,依然會被防火牆發現。」
莫嘉妮說完這句話,我們到了地下三層。她帶我們徑直走向了一輛商務車,從後門進入之後,我們發現裡面電腦和通訊裝置一應俱全。
她說:「因為有些外勤工作需要趕時間,所以車裡配備了一套完整的工作裝置,這輛車也是我們幾個今天的臨時辦公場所。每人一臺電腦,每個鍵盤上放著兩條能量棒,這是你們今天的晚餐。在開始工作之前,必須先把這兩條能量棒吃掉,只有能量充足,我們才能最高效率地思考。」
莫嘉妮此刻才給我們吃的,而不是讓我們剛才邊吃邊聊,看似浪費了時間,實則用心良苦。如果一刻不停地想著眼前面臨的複雜問題,很可能陷入思維死角而不自知。現在我們差不多瞭解了問題的情況,這時單獨給我們一點時間吃飯,在積蓄能量的同時也能讓我們大腦放空,說不定會有什麼靈感湧入。
在我們嚼著能量棒的同時,童雲叢仍然沒有放棄剛才的問題:「莫嘉妮,剛剛的問題你們找到答案了嗎?如果沒有的話,我有一個想法倒是可以試一試。」
莫嘉妮指指自己的長髮,道:「我讓他們在想到辦法的第一時間通知我,現在我還沒有聽到任何訊息,說明他們還在努力。如果你有什麼辦法的話快說,我馬上告訴他們。」
這時我們才發現在莫嘉妮的頭髮裡面藏著一個小小的即時對講耳麥。
童雲叢說:「其實原理不復雜,既然他們的防火牆能夠監控到我們的程式,那麼完整的程式肯定沒有辦法通過網路進入他們的系統。聽你剛才的描述,交易資料的傳輸和升級補丁的傳送應該是分開的,我們可以根據程式檔案的特徵,把程式碼分成兩部分,一部分嵌入交易資料,另一部分嵌入升級補丁。無論是後門程式還是校驗程式,只有兩部分合在一起才能真正發揮作用。」
「聽上去很美好,但很難實現吧,從頭開始做的話不知道要花多長時間啊。」梁炯道。
「不用從頭開始,我手裡有寫好的程式碼可以複用,可能簡單修改一下就可以搞定了。」雲叢一邊說一邊按亮了面前的電腦螢幕,並問莫嘉妮:「我可以登入自己的雲端硬碟嗎?」
莫嘉妮點點頭,雲叢開始操作電腦,而我和梁炯都詫異地看著她,顯然我們都沒想到雲叢這裡竟然會有現成的方法。
「莫嘉妮你們調查過我的履歷,一定知道我曾經參加過香港的一個駭客大賽。共有三百多人參賽,我拿到了第十二名。這在我的履歷中並不算顯眼,估計你們都忽視了吧?因為以當時比賽的水準,我拿冠軍應該也是輕而易舉的。不過當時我想的是既然是駭客大賽,就不能按照常規的方式提交作品,所以我故意等到大賽提交通道關閉後,才把自己的作品通過某種特殊的方式放進了參賽列表。所有評審都沒有發現這一點,以為我是正常提交了作品,最終按照那件作品給了我第十二名,但我認為自己提交作品的方法才是真正的參賽作品,可惜沒有人發現。」雲叢在說這段話的時候帶著一種當仁不讓的氣勢,「當時組委會的防火牆和莫嘉妮剛剛說的有點像,我嘗試了很多繞開它的辦法,都以失敗告終,就在這時一個大陸朋友給我講起了小時候看過的一個叫《嶗山道士》的動畫片,裡面有種技術叫『穿牆術』,我想既然無法繞開牆壁,不如穿牆而過,於是就有了我剛剛的解決方案。」
說話間,雲叢已經從雲端下好了程式碼,拉著我們一起看。雖然我不懂程式設計,但我還是能從莫嘉妮和梁炯的神情當中看到他們對雲叢的欣賞與佩服。
梁炯由衷讚歎道:「雲叢你真是個天才啊!」
「好了別廢話了,莫嘉妮你覺得我這個程式碼可以用嗎?」雲叢道。
「我覺得沒有什麼大問題,但你的程式碼你最熟悉,與其把程式碼給技術組做修訂,不如你直接和技術組的人聯絡,讓他們把需要做的事情交給你,由你來直接完成這部分程式碼,我想這樣的效率最高。」莫嘉妮迅速在電腦上敲了一段程式碼,可以看到從遠端傳過來一個檔案包。
雲叢開啟檔案包快速掃了一眼,道:「沒問題,不過需要梁炯幫我寫一段小的程式碼,用來掩蓋檔案大小的變化。因為就算我們能夠偽裝檔案的校驗過程,但掩飾不了檔案大小的改變,如果人間失格內部有比較細心的人,可能會發現這一點。我前面的程式碼寫得那麼好,最好不要在這個小陰溝翻船。」
在上一次出外勤的時候,雲叢和梁炯在指揮中心負責處理一部分資料。通過這次合作,雲叢顯然已經對梁炯的技術水平有所瞭解。
「包在我身上。」梁炯道。
我從他倆志在必得的氣勢中找回了一些信心,道:「雲叢、梁炯,這件事就拜託你們了。我也開始我的工作,想辦法找到這個數學問題的簡單解法。」
「沒錯,這就是今晚的工作安排。阿珵,我先和你講一下目前這道題的進度。」莫嘉妮道。
其實今年聖哲學園錄取的四名新生中,我是唯一一個做出最後那道題的人,但我的解法劍走偏鋒,沒辦法直接用在解決最終的數學問題上。其他三個人雖然沒能夠解決那道題,但分別給出了他們關於那道題獨到的看法,這些看法本身也提供了一些解決問題的新思路。
莫嘉妮首先給我看了怡年的解答。由於我們從小都把考試當作是選拔的工具,只要老師不講卷子,我和怡年都習慣在考完之後不再談論具體的答題情況,所以這是我第一次看到她對這道題的作答。