�吹貿隼矗��且丫��Χ嗍繃恕�
“這個軟體是用來加密的那個,該軟體的作者對反跟蹤計算非常精通,給這個軟體加了好幾層殼,我已經順利脫去兩層,第三層陷入了僵局……”黃飛在旁邊給周松仔細地講解起來,他把這幾天來自己遇到的情況和自己的一些想法都毫無保留地說給周松聽了。周松聽著聽著,他的眉頭也皺了起來,看樣子,這次遇到的情況非常扎手。他一邊聽著黃飛的講解,一邊親自把他已經進行過的操作再重複了一遍,熟練地下斷點,跟蹤除錯,順利脫殼……一系列動作讓圍觀的幾個人眼睛一亮,從這點可以看出,周松並不是沽名釣譽之輩,至少他還是有點專業技術的。黃飛反而一副理所當然的樣子,表情沒有什麼變化,倒是那個年輕人,臉上露出訝然的神色。
在CPU中存在兩種中斷:INT1和INT3。INT1即單步中斷,它是由機器內部狀態引起的一種中斷,當CPU中的標誌暫存器TF被置位時,就會自動產生一次單步中斷,這個時候,CPU在執行一條指令之後就會停下來,並且顯示各個暫存器中的內容。INT3即斷點中斷,這是一種軟中斷,當CPU執行到這個軟中斷點的時候,就會進入斷點服務程式,由斷點中斷服務程式完成對斷點處各暫存器內容的顯示。
用來跟蹤除錯的軟體就是利用了這兩種中斷,透過單步執行或者下斷點執行,達到跟蹤除錯的目的。利用這樣的軟體每執行一次指令之後,就可以停下來檢視CPU各暫存器的狀態,從而找出破解的方法。
反跟蹤技術在加密技術中是最能體現技術水平的部分,稍有漏洞就會影響到整個加密技術的可*性。加密與解密天生就是一對矛盾體。有加密必然會有解密。為了破解加密的內容,解密者必然是想盡一切辦法,無所不用其極。而為了提高加密技術的可*性,加密者則千方百計的阻撓解密者的解密程序。明明是一個簡單的演算法,他偏偏弄得異常複雜,就是不讓解密者順心。你來動態跟蹤,想要破解?我就加入一些反跟蹤措施,例如看記憶體中是否執行了除錯程式,如果發現,則立即拒絕繼續執行,甚至讓你的跟蹤除錯軟體掛掉。你想躲過我的反跟蹤檢測程式碼?那也沒門,我每隔一段時間就來看看,看你怎麼搞。反正我就是要讓你不順心。
“他這段反跟蹤程式碼很巧妙,跟到這裡就把SOFTOICE搞掛掉了。除非有一個改編過的除錯軟體。”終於到了黃飛到達的地方,事實和他說的一樣,這個時候SOFTOICE軟體突然報錯停止執行了。
不過經過黃飛這麼一提醒,周松想起自己還真有這麼一個軟體。那是師傅許毅給他的,說是經過他親自重新修改並編譯過的,可以解決一些意想不到的錯誤。由於平時周松從來沒有遇到這樣的情況,他漸漸地忘記了那個軟體和網上流傳的軟體有什麼不同。
既然想到這點,周松也就不再遲疑,他連上網路,從自己的“網上硬碟”中將那個軟體給下載了下來。在網路上建立自己的工具箱,這是許毅告訴他的。他說身為一個駭客,應該只要有網路,就能隨時隨地拿到自己的駭客工具。
看到周松的動作,黃飛知道這事有戲了。他轉頭,朝董立國點了點頭,然後繼續盯著顯示器。
董立國見狀顯然大為高興,仔細看去,竟然可以看到他的手在微微顫抖。那個年輕人看著周松那熟練的動作,臉上陰晴不定,當他看到黃飛的動作時,眼睛中更是寒光一閃。
軟體下載之後,周松便重新開始脫殼,這次果然非常順利地將第三層殼脫了下來,第一關算是透過了,眾人都感到非常高興。周松也偷偷地鬆了一口氣,不知不覺中他的後背已經汗溼了。心中暗道,幸好平時師傅給自己做的那些千奇百怪的功課自己都原原本本地完成了,要不然今天可就要出洋相了。
脫殼完成,密碼入口已經顯示出來。周松一鼓作氣,繼續進行跟蹤。很快,他就確定了那段密碼驗證程式碼,關鍵演算法段也找到了,剩下來的工作就是破譯密碼了。不過前面三層加殼都顯示這個加密軟體的作者非常厲害,所以周松和黃飛心裡都對後面的進展不太樂觀。
已經找到關鍵演算法程式碼段,也就是說真正考驗毅力的時候到了,因為這裡是密碼變換,破譯者必須逐句逐句地讀懂這些程式碼,不像動態跟蹤,有時候可以大段大段地跳過一些程式碼自動執行。也就是說,破譯者必須弄清楚作者是採取哪種加密演算法,然後根據作者的演算法反向進行,從而從密文反推出明文。
周松在演算法方面比較弱勢,他盯著顯示器看了一會兒就只