黑客傳說 第三卷 第一百七十四章 子程序調用
    「小毅,你怎麼可以輕易放棄這局呢!」鄭潔有些「恨鐵不成鋼」,她一個勁的在幫他爭取,卻沒想到他自己倒大方地放棄了。

    蘇蘭上前拉住鄭潔的手,安慰道:「別生氣了,接著看下去吧,小顏不會輸的。」

    第二題還是解密題,不過不再是那種加了密碼型殼的加密,而是直接給出一個加密文件,機密者將該文件還原出來。

    在Windows中,有一種非常重要的文件格式──PE文件格式(pontableExecutable可移植的執行體),這是引入的一種新的可執行文件格式,Windows系統中的所有可執行文件都是PE文件格式的。要在Windows下研究加密解密,這種格式是必須掌握的。雖然PE文件格式的規範包含了MSDN的CD中,但是那些文檔非常的晦澀,而且這些文檔並沒有提供足夠的信息,所以有時候連開發者們往往都無法很好地弄懂這一格式。

    Windows下的加密和解密說白了就是針對PE文件格式結構的相關操作,所以掌握這種格式是每個破解者的必備技能。

    第二場比試開始,這次的題目很顯然大大難於上一個,兩人有條不紊地開始進行破解。

    這個難度比較大,所以允許他們從網絡上下載一些常用的破解軟件,當然,如果他們自己有工具的話,也允許用自己的工具。

    許毅從網絡上的一台肉雞中下載了幾個小軟件,有用來檢測殼的,也有用來調試跟蹤的。其中大部分功能和網絡上流傳的那些工具差不多,不過經過了他的一些相應修改,功能更為強大。例如如果其中有反跟蹤代碼,可能那些工具有影響,但他的工具可以無視等。

    許毅用一個檢測殼的小軟件將那個要破解的文件加載進去,想看看,是否能夠看出到底是加了什麼類型的殼。

    「殼」是一種很形象的說法,意思就是對軟件進行保護的那一層代碼。說起來,殼和病*毒在某些方面比較類似。即殼和病*毒都需要比原程序代碼更早地獲得控制權,這一功能可以通過在原程序的代碼執行前加入自己地一段代碼來實現。在文件執行的時候,殼修改了原程序的執行文件的組織結構,從而達到殼的代碼能夠比原程序的代碼提前獲得控制權的目的,並且還不會影響原程序地正常運行,從這點上來說,殼和病*毒是很類似的。

    許毅編寫的這個軟件是根據一些殼的特徵代碼來識別到底是什麼殼的,肅然,識別的準確度也有可能不準確,因為這些特徵代碼也是可以偽造的。許毅看了一下,軟件中顯示,「殼」是VC++的,於是許毅用另一外一個脫殼工具試了一下,發現脫出來地文件是損壞的文件,也就是說,這個殼並沒有這麼簡單。他再經過一番努力,發現這個殼根本就是偽造的,工具脫殼並行不通,看來只有手動脫殼了。

    詹姆斯的進展就比許毅慢多了,他發現,這種加密方式自己很陌生,以前根本沒有接觸過,腦門的汗漸漸冒了出來,看來,上帝並不是每次都這麼照顧他。詹姆斯現在正被那個具有欺騙性質的殼弄得頭昏腦漲,他現在還在相信這個殼是VC++的,所以正朝這方面努力著。

    米歇爾教授一直在後面觀察著他們兩個的情況,看到詹姆斯有些手忙腳亂的樣子,他微微地搖頭,他和許毅相比,差得實在是太遠了。光從心態上來看,他就已經輸了。破解的時候,最忌諱的就是心浮氣躁。破解是一個非常需要耐性的活,冷靜的頭腦是必不可少的,越心急進展就會越慢。反觀許毅,他一步一個腳印,心平氣和,井井有條。

    不過米歇爾教授心中並不擔心。因為這個題目的難度遠遠超乎大家的意料,在幾周之前,他自己也肯定不能夠在短時間內將其搞定,這可是他最近才研究出來的新地加密方式。米歇爾教授是想讓他們都破解不出來,這樣他們就又成了平局。

    許毅原本對這次比試也沒怎麼在乎,可是現在,他改變了了自己的想法,他對這個文件的加密方式感興趣起來,這正是許毅的性格,越難越能挑起他的鬥志。

    PE格式文件是按節區進行規劃組織的,不同地節區一般保存的數據的作用也不相同,殼出於保護原程序代碼和數據的目的,一般都會加密原程序文件的各個節區,當然,既然是加密保存的,但程序在執行的時候又不能也保持加密狀態,所以解密也是殼必做的工作之一。節區不只一個,如果殼是按節區加密的,那麼在解密時也按節區解密,並且要把解密的節區數據按照節區的定義放在合適的內存位置。

    入口點節區基地址重定信鉤子函數。

    如果加殼時用到了壓縮技術,那麼在解密之前還有一道工序,當然是解壓縮。

    這也是一些殼的特色之一,比如說原來的育種文件未加殼時1-2M大小,加殼後反而只有幾百K,這種瘦身技術當然會吸引了不少眼球。

    時間一點一滴地過去,眾人靜靜地在那等著也有些無聊了,他們開始慢慢議論起來。單從表面上來看,許毅比詹姆斯要鎮定多了,至少他額頭還沒有冒汗,並且,許毅的手一直有事做,不像詹姆斯,他每隔一段時間就會發上一陣呆,簡直有些手足無措了。

    比賽在這邊進行,而一些情況也早就傳到了網絡上,MLT論壇現在正針對已經進行的那場作廢的比賽進行激烈地討論著,許毅用WINRAR就簡單破解了一個密碼型殼的加密文件,這太讓人驚訝了,從來沒有人想到過,這個軟件竟然還可以這麼用!大家紛紛拿出網絡上很多加密軟件的加密結果進行試驗,結果發現,這個軟件竟然可以破解掉網絡上流行的幾乎三分之一的加密軟件!

    「這些加密軟件也太垃圾了!」眾人紛紛罵道。大家沒想到,原來值得信賴的加密軟件原來是如此的不堪一擊,大家紛意識到,以後加密文件的時候,一定不能隨便選擇加密軟件,一定要選擇信得過的,質量有保證的,要不然自己的秘密就隨便可以被別人瀏覽了。

    時間已經過去了兩個多小時,米歇爾覺得已經差不多了,可以宣佈停止比賽了,因為他相信,就算再延長幾個小時,結果也還是會這樣。

    「看來這次的題目我出得太難了,以至於他們兩個都沒能做出來,看來,只能宣佈……」

    「終於搞定了!」這時,許毅突然感歎一聲,打斷了米歇爾教授的話,「教授,這個加密方法還真是不錯呢!」

    「什……什麼?你破解出來了?!」米歇爾教授徹底震驚了。

    「沒想到,這個文件不但是分節區進行加密,竟然還對其中的數據進行了壓縮處理,更為巧妙的是,在加殼的同時,還讓加殼後的程序調用了殼中的幾個子程序……,教育,這個加密方法可是第一次出現呢!」

    許毅剛才就是把大量的時間花在最後一個「子程序」技術上,許毅進行脫殼處理之後,雖然將殼脫掉了,但是程序執行也還是不正常,因為在脫殼的同時也將這些子程序給脫掉了。

    另外,這個加密技術中的壓縮處理技術也是一個亮點,原本有快2M的程序文件在加殼之後,竟然只剩下幾百K了。

    米歇爾剛開始還有些不相信許毅真的破解出來了,但是聽到許毅的話之後,他不得不信了。他跑到許毅的計算機前查看了一下,結果真的出來了。他能說什麼呢?只能承認自己的確老了,這個問題困擾了他幾個月的時間,自己將這個技術發明出來之後,竟然被許毅在幾個小時之內就給解決掉了。

    米歇爾教授歎了口氣,轉頭問詹姆斯:「詹姆斯,你做到哪了?」

    詹姆斯猶豫了一下,說道:「解……解壓縮。」

    「耶∼太棒了,贏了,贏了!……」鄭潔歡呼起來,跑上場來強制性地給許毅來了一個熊抱。弄得許毅尷尬不已,連忙將其推開一段距離,還真受不了她的熱情。

    肯看不過去,站了出來怪聲道:「先別高興得太早,詹姆斯還有機會扭轉戰局,別忘了,他現在才勝一場而已。」  
本站首頁 | 玄幻小說 | 武俠小說 | 都市小說 | 言情小說 | 收藏本頁