“小毅你怎麽可以輕易放棄這局呢!”鄭潔有些“恨鐵不成鋼”她一個勁的在幫他争取卻沒想到他自己倒大方地放棄了。
蘇蘭上前拉住鄭潔的手安慰道:“别生氣了接着看下去吧小顔不會輸的。”
第二題還是解密題不過不再是那種加了密碼型殼的加密而是直接給出一個加密文件機密者将該文件還原出來。
在indos中有一種非常重要的文件格式──pe文件格式(pontab1eexdosnT3.1中引入的一種新的可執行文件格式indos系統中的所有可執行文件都是pe文件格式的。要在indos下研究加密解密這種格式是必須掌握的。雖然pe文件格式的規範包含了msdn的cd中但是那些文檔非常的晦澀而且這些文檔并沒有提供足夠的信息所以有時候連開者們往往都無法很好地弄懂這一格式。
indos下的加密和解密說白了就是針對pe文件格式結構的相關操作所以掌握這種格式是每個破解者的必備技能。
第二場比試開始這次的題目很顯然大大難于上一個兩人有條不紊地開始進行破解。
這個難度比較大所以允許他們從網絡上下載一些常用的破解軟件當然如果他們自己有工具的話也允許用自己的工具。
許毅從網絡上的一台肉雞中下載了幾個小軟件有用來檢測殼的也有用來調試跟蹤的。其中大部分功能和網絡上流傳的那些工具差不多不過經過了他的一些相應修改功能更爲強大。例如如果其中有反跟蹤代碼可能那些工具有影響但他的工具可以無視等。
許毅用一個檢測殼的小軟件将那個要破解的文件加載進去想看看是否能夠看出到底是加了什麽類型的殼。
“殼”是一種很形象的說法意思就是對軟件進行保護的那一層代碼。說起來殼和病*毒在某些方面比較類似。即殼和病*毒都需要比原程序代碼更早地獲得控制權這一功能可以通過在原程序的代碼執行前加入自己地一段代碼來實現。在文件執行的時候殼修改了原程序的執行文件的組織結構從而達到殼的代碼能夠比原程序的代碼提前獲得控制權的目的并且還不會影響原程序地正常運行從這點上來說殼和病*毒是很類似的。
許毅編寫的這個軟件是根據一些殼的特征代碼來識别到底是什麽殼的肅然識别的準确度也有可能不準确因爲這些特征代碼也是可以僞造的。許毅看了一下軟件中顯示“殼”是Vc++的于是許毅用另一外一個脫殼工具試了一下現脫出來地文件是損壞的文件也就是說這個殼并沒有這麽簡單。他再經過一番努力現這個殼根本就是僞造的工具脫殼并行不通看來隻有手動脫殼了。
詹姆斯的進展就比許毅慢多了他現這種加密方式自己很陌生以前根本沒有接觸過腦門的汗漸漸冒了出來看來上帝并不是每次都這麽照顧他。詹姆斯現在正被那個具有欺騙性質的殼弄得頭昏腦漲他現在還在相信這個殼是Vc++的所以正朝這方面努力着。
米歇爾教授一直在後面觀察着他們兩個的情況看到詹姆斯有些手忙腳亂的樣子他微微地搖頭他和許毅相比差得實在是太遠了。光從心态上來看他就已經輸了。破解的時候最忌諱的就是心浮氣躁。破解是一個非常需要耐性的活冷靜的頭腦是必不可少的越心急進展就會越慢。反觀許毅他一步一個腳印心平氣和井井有條。
不過米歇爾教授心中并不擔心。因爲這個題目的難度遠遠乎大家的意料在幾周之前他自己也肯定不能夠在短時間内将其搞定這可是他最近才研究出來的新地加密方式。米歇爾教授是想讓他們都破解不出來這樣他們就又成了平局。
許毅原本對這次比試也沒怎麽在乎可是現在他改變了了自己的想法他對這個文件的加密方式感興趣起來這正是許毅的性格越難越能挑起他的鬥志。
pe格式文件是按節區進行規劃組織的不同地節區一般保存的數據的作用也不相同殼出于保護原程序代碼和數據的目的一般都會加密原程序文件的各個節區當然既然是加密保存的但程序在執行的時候又不能也保持加密狀态所以解密也是殼必做的工作之一。節區不隻一個如果殼是按節區加密的那麽在解密時也按節區解密并且要把解密的節區數據按照節區的定義放在合适的内存位置。
入口點節區基地址重定信鈎子函數。
如果加殼時用到了壓縮技術那麽在解密之前還有一道工序當然是解壓縮。
這也是一些殼的特色之一比如說原來的育種文件未加殼時1-2m大小加殼後反而隻有幾百k這種瘦身技術當然會吸引了不少眼球。
時間一點一滴地過去衆人靜靜地在那等着也有些無聊了他們開始慢慢議論起來。單從表面上來看許毅比詹姆斯要鎮定多了至少他額頭還沒有冒汗并且許毅的手一直有事做不像詹姆斯他每隔一段時間就會上一陣呆簡直有些手足無措了。
比賽在這邊進行而一些情況也早就傳到了網絡上mLT論壇現在正針對已經進行的那場作廢的比賽進行激烈地讨論着許毅用InRaR就簡單破解了一個密碼型殼的加密文件這太讓人驚訝了從來沒有人想到過這個軟件竟然還可以這麽用!大家紛紛拿出網絡上很多加密軟件的加密結果進行試驗結果現這個軟件竟然可以破解掉網絡上流行的幾乎三分之一的加密軟件!
“這些加密軟件也太垃圾了!”衆人紛紛罵道。大家沒想到原來值得信賴的加密軟件原來是如此的不堪一擊大家紛意識到以後加密文件的時候一定不能随便選擇加密軟件一定要選擇信得過的質量有保證的要不然自己的秘密就随便可以被别人浏覽了。
時間已經過去了兩個多小時米歇爾覺得已經差不多了可以宣布停止比賽了因爲他相信就算再延長幾個小時結果也還是會這樣。
“看來這次的題目我出得太難了以至于他們兩個都沒能做出來看來隻能宣布……”
“終于搞定了!”這時許毅突然感歎一聲打斷了米歇爾教授的話“教授這個加密方法還真是不錯呢!”
“什……什麽?你破解出來了?!”米歇爾教授徹底震驚了。
“沒想到這個文件不但是分節區進行加密竟然還對其中的數據進行了壓縮處理更爲巧妙的是在加殼的同時還讓加殼後的程序調用了殼中的幾個子程序……教育這個加密方法可是第一次出現呢!”
許毅剛才就是把大量的時間花在最後一個“子程序”技術上許毅進行脫殼處理之後雖然将殼脫掉了但是程序執行也還是不正常因爲在脫殼的同時也将這些子程序給脫掉了。
另外這個加密技術中的壓縮處理技術也是一個亮點原本有快2m的程序文件在加殼之後竟然隻剩下幾百k了。
米歇爾剛開始還有些不相信許毅真的破解出來了但是聽到許毅的話之後他不得不信了。他跑到許毅的計算機前查看了一下結果真的出來了。他能說什麽呢?隻能承認自己的确老了這個問題困擾了他幾個月的時間自己将這個技術明出來之後竟然被許毅在幾個小時之内就給解決掉了。
米歇爾教授歎了口氣轉頭問詹姆斯:“詹姆斯你做到哪了?”
詹姆斯猶豫了一下說道:“解……解壓縮。”
“耶~太棒了赢了赢了!……”鄭潔歡呼起來跑上場來強制性地給許毅來了一個熊抱。弄得許毅尴尬不已連忙将其推開一段距離還真受不了她的熱情。
肯看不過去站了出來怪聲道:“先别高興得太早詹姆斯還有機會扭轉戰局别忘了他現在才勝一場而已。”