第1卷 第122章 破解 文 / 瘋狂小強
在現代,盜版就好像是正版的孿生弟弟,他往往只比他的哥哥晚誕生「一會兒」,但是他卻比哥哥的大方多了,他給所有人提供全部功能,樂意給所有人都提供免費服務。盜版和反盜版之間的鬥爭,猶如病毒和殺毒軟件之間的鬥爭一樣,打從出生起就是死對頭,反盜版技術是「盾」,不斷改進加密算法,從而達到不被盜版技術「矛」攻破的目的。
但是,在這場曠日持久的攻防戰中,「矛」似乎更為鋒利,經常將「盾」成功刺穿,從而取得勝利。其中的原因除了「盾」過於被動,只能老實巴交地乖乖等著「矛」來進攻之外,很大程度上還在於,「盾」的編制者通常只是一個公司或者一個團體的精英,而他們要面對的,往往是全世界的高手,這本來就是一種非常不對稱的攻防戰。所以,就算是像微軟這種世界級的巨頭軟件公司,其推出的加密機制在一天之後,也往往逃離不了被破解的命運。
「盜版軟件」這個詞彙在商業軟件出現之前是不存在的,自由軟件是計算機業與身俱來的傳統,看看計算機的發史,從1946年到60年代,從ibm藍色巨人到arpa,從集成電路到pc機,從互聯網到電信自由經營,每一個時期都留下了「自由」的影子。那個時候,軟件的「自由拷貝」和「源代碼」開放是整個計算機業,包括個人電腦及互聯網兩大領域的天然的軟件開發和傳播模式。早在60年代,就有以大學為陣地,以年輕人為主題,自由地交流的風尚,並在軟件開發與研究方面碩果纍纍:如unix、tcp/ip、fortran、pascal、lisp等等。在個人電腦革命還沒爆發之前,軟件的傳播是鼓勵自由拷貝的,正是這種自由拷貝、信息共享的精神上點燃了個人電腦革命,促成了軟件業的發展。
而這也是黑客們一直堅持的「黑客精神」,他們始終認為,軟件和互聯網就應該像以前那樣,繼續保持自由、共享和免費。而比爾蓋茨這孩子,以前也是一個黑客,他憑借自由軟件搞出了basic,後來又搞出了ms-dos,但是這個時候他拋棄了黑客精神,轉而發展所謂的「商業軟件」,即要想使用他的軟件,就得付錢。在70年代末,以比爾蓋茨《致電腦業餘愛好者的一封公開信》為標誌,以世界知識產權組織《伯爾尼公約》為框架,軟件步入了copyright的時代。
「軟件破解者(cracker)」實際上也是從這個時候才正式從黑客這個主幹分離出來,他們也從來不認為自己是一個盜版者,他們通常都有自己的精神信仰,破解軟件,他們聚集在一起,號稱是「不以盈利為目的的純技術團體」。
而說起軟件破解,就不得不提到一個詞彙「warez」。這個單詞由兩部分組成,一個是「ware」,即「軟件」,其後面的那個字母「z」,則是「零(zero)」的首字母,「零」即「零天(0day)」,通俗一點的說法就是:在不到一天的時間內,就可以將某個軟件給破解出來。warez則可以理解為:可以無需任何代價的使用這個軟件。
實際上,warez本身並不是一個具體的組織,它代表的只是一種理念,一個泛稱,和世界上並不存在一個叫做「hacker」的黑客組織一樣,warez所代表的是追求warez理念的人們自行組合而成各個小組。
這一屆的全球黑客大賽上,出現了一個中國人,但是由於大賽的保密性質,他的出現也並沒有引起多大的關注,只有圈內少數熟知內情的人知道而已。而這些人並沒有心思去將這事大肆宣傳,因為這種事情雖然不是什麼不光彩的事情,但保持低調卻是必須的。
這個中國人就是徐科。
徐科是看雪學院破解版塊的版主,明面上他是以看雪論壇的代表的身份去參加這個比賽,但實際上,他還有一個身份,即為razor1911組織中國區負責人。這一次他去參加比賽,其實主要是接到了razor1911總部的邀請,讓他去那邊參加一個razor1911的內部核心成員會議。
而razor1911正是一個世界著名的warez破解組織。
由於家庭條件的原因,徐科並沒有上大學,高中畢業之後就直接走上了社會,他的第一份工作就是在網吧打工,從此和電腦結下了不解之緣。
徐科很聰明,從小他的數學成績就非常好,高考之後,他接到了水木大學數學系的入學通知書,可是這個時候,家裡已經沒有能力再供他上學了,為了讓他讀高中,家裡已經是負債纍纍。窮人家的孩子早當家,徐科不得不輟學了,家裡還有一個弟弟要上學。
那個時候,電腦還是於新鮮事物,根本沒有現在這麼普及,徐科通過一個同學的介紹,找到了一個網吧打工的工作,在那個時候已經相當不錯了,令徐科滿意的是,這份工作還能學到不少東西。
也就是在那個名為「網神網絡」的網吧,徐科第一次接觸了windows視窗操作系統,第一次知道了網絡,申請了第一個qq號碼,擁有了第一個電子郵箱……
由於每天長達十幾個小時接觸電腦,好學的徐科很快就成為了電腦高手,硬件或者軟件方面的一些常見毛病,他都能輕易解決。
不過,徐科並沒有滿足,他開始利用工作的便利,通過網絡學習更多的知識,他開始混跡於國內有名的電腦技術論壇,和志同道合者一起學習、交流和討論。
還記得是九年前的那個暑假,混跡於某個黑客論壇的徐科無意中下載了一個破解教程,這個時候的他,已經有一定的編程基礎,能夠看懂一些簡單的程序代碼,但是在破解領域,他還是菜鳥一個,甚至一些基本的概念他都沒有聽說過。之所以下載這個教程,也只是他的習慣而已,因為那個網站上的那些教程,好像就只剩下這個沒有看了。
按照他的習慣,他將整個教程一篇篇的看過去,每一篇都看得非常仔細,遇到要動手的地方,必定會一步一步完全按照教程中的步驟來。
也正是這個教程,將他引入了破解的世界,他真正瞭解了破解的一些基本概念,為什麼要加密?什麼叫「殼」?脫殼的原理主要是什麼?……
看了這個教程之後,他發現破解似乎並沒有那麼神秘,於是他進入了該網站論壇的破解版,開始了他的破解學習路程。
當基礎知識學得差不多的時候,他開始動手破解自己平生第一個「crackme」程序。
crackme程序通常是由破解高手寫出來的一個很小很小的程序,它只有一個功能:要求你輸入一些信息和註冊碼,然後點擊確認之後,判斷該註冊碼是否正確。實際上,這只是一個商業軟件中的註冊部分功能而已,高手們將這部分功能抽離出來,然後以出題的形式分發出去,給新手們作為破解入門的階段練手用。它的作用就是供破解愛好者去破解它的加密原理,繞過註冊步驟或者找出註冊碼,甚至寫出註冊機。這種程序單純只是用作破解學習的,並沒有任何特定的功能,也沒有任何攻擊性。
crackme最簡單最直接的破解方法是所謂的「爆破」。爆破也是破解的初步,主要是指僅僅通過修改可執行文件的源文件,就可以達到相應的破解目的。例如輸入註冊碼之後,程序通常要判斷用戶輸入的註冊碼是否正確,如果否,則重新跳轉到輸入之前的那個步驟,這是一個循環。而使用「爆破」的手法,可以直接用編輯軟件,將程序中的那個判斷給修改掉,如改成這個判斷永遠正確,這樣無論用戶輸入什麼字符,都會認為這是正確的註冊碼,從而達到破解效果。
在秘界,軟件破解者通常分三個階段。初級,直接用「爆破」方式來破解。中級,使用調試軟件,動態追蹤出軟件的註冊碼。高級,完全弄懂軟件的加密算法,然後根據這個算法,寫出一個註冊機,可以用這個註冊機算出無數個合法的註冊碼。
徐科剛學破解的時候,就是不斷地去破解別人提供的各類「crackme」程序。一步一步,從初級升到高級。
原本以為自己技術已經很牛了的時候,徐科來到了「看雪論壇」,這個時候他才發現,原來國內的破解高手都集中在這裡,自己和這些牛人比起來,依然還是小菜鳥一個。
於是,徐科的破解學習之路又重新開始了。^-^^-^