第二場比試開始,這次的題目很顯然大大難於上一個,兩人有條不紊地開始進行破解。
這個難度比較大,所以允許他們從網路上下載一些常用的破解軟體,當然,如果他們自己有工具的話,也允許用自己的工具。
許毅從網路上的一臺肉雞中下載了幾個小軟體,有用來檢測殼的,也有用來除錯跟蹤的。其中大部分功能和網路上流傳的那些工具差不多,不過經過了他的一些相應修改,功能更為強大。例如如果其中有反跟蹤程式碼,可能那些工具有影響,但他的工具可以無視等。
許毅用一個檢測殼的小軟體將那個要破解的檔案載入進去,想看看,是否能夠看出到底是加了什麼型別的殼。
“殼”是一種很形象的說法,意思就是對軟體進行保護的那一層程式碼。說起來,殼和病*毒在某些方面比較類似。即殼和病*毒都需要比原程式程式碼更早地獲得控制權,這一功能可以透過在原程式的程式碼執行前加入自己地一段程式碼來實現。在檔案執行的時候,殼修改了原程式的執行檔案的組織結構,從而達到殼的程式碼能夠比原程式的程式碼提前獲得控制權的目的,並且還不會影響原程式地正常執行,從這點上來說,殼和病*毒是很類似的。
許毅編寫的這個軟體是根據一些殼的特徵程式碼來識別到底是什麼殼的,肅然,識別的準確度也有可能不準確,因為這些特徵程式碼也是可以偽造的。許毅看了一下,軟體中顯示,“殼”是VC++的,於是許毅用另一外一個脫殼工具試了一下,發現脫出來地檔案是損壞的檔案,也就是說,這個殼並沒有這麼簡單。他再經過一番努力,發現這個殼根本就是偽造的,工具脫殼並行不通,看來只有手動脫殼了。
詹姆斯的進展就比許毅慢多了,他發現,這種加密方式自己很陌生,以前根本沒有接觸過,腦門的汗漸漸冒了出來,看來,上帝並不是每次都這麼照顧他。詹姆斯現在正被那個具有欺騙性質的殼弄得頭昏腦漲,他現在還在相信這個殼是VC++的,所以正朝這方面努力著。
米歇爾教授一直在後面觀察著他們兩個的情況,看到詹姆斯有些手忙腳亂的樣子,他微微地搖頭,他和許毅相比,差得實在是太遠了。光從心態上來看,他就已經輸了。破解的時候,最忌諱的就是心浮氣躁。破解是一個非常需要耐性的活,冷靜的頭腦是必不可少的,越心急進展就會越慢。反觀許毅,他一步一個腳印,心平氣和,井井有條。
不過米歇爾教授心中並不擔心。因為這個題目的難度遠遠超乎大家的意料,在幾周之前,他自己也肯定不能夠在短時間內將其搞定,這可是他最近才研究出來的新地加密方式。米歇爾教授是想讓他們都破解不出來,這樣他們就又成了平局。
許毅原本對這次比試也沒怎麼在乎,可是現在,他改變了了自己的想法,他對這個檔案的加密方式感興趣起來,這正是許毅的性格,越難越能挑起他的鬥志。
PE格式檔案是按節區進行規劃組織的,不同地節區一般儲存的資料的作用也不相同,殼出於保護原程式程式碼和資料的目的,一般都會加密原程式檔案的各個節區,當然,既然是加密儲存的,但程式在執行的時候又不能也保持加密狀態,所以解密也是殼必做的工作之一。節區不只一個,如果殼是按節區加密的,那麼在解密時也按節區解密,並且要把解密的節區資料按照節區的定義放在合適的記憶體位置。
入口點節區基地址重定信鉤子函式。
如果加殼時用到了壓縮技術,那麼在解密之前還有一道工序,當然是解壓縮。
這也是一些殼的特色之一,比如說原來的育種檔案未加殼時1-2M大小,加殼後反而只有幾百K,這種瘦身技術當然會吸引了不少眼球。
時間一點一滴地過去,眾人靜靜地在那等著也有些無聊了,他們開始慢慢議論起來。單從表面上來看,許毅比詹姆斯要鎮定多了,至少他額頭還沒有冒汗,並且,許毅的手一直有事做,不像詹姆斯,他每隔一段時間就會發上一陣呆,簡直有些手足無措了。
比賽在這邊進行,而一些情況也早就傳到了網路上,MLT論壇現在正針對已經進行的那場作廢的比賽進行激烈地討論著,許毅用WINRAR就簡單破解了一個密碼型殼的加密檔案,這太讓人驚訝了,從來沒有人想到過,這個軟體竟然還可以這麼用!大家紛紛拿出網路上很多加密軟體的加密結果進行試驗,結果發現,這個軟體竟然可以破解掉網路上流行的幾乎三分之一的加密軟體!
“這些加密軟體也太垃圾了!”眾人紛紛罵道。大家沒