在現代,盜版就好像是正版的孿生弟弟,他往往只比他的哥哥晚誕生“一會兒”,但是他卻比哥哥的大方多了,他給所有人提供全部功能,樂意給所有人都提供免費服務。盜版和反盜版之間的鬥爭,猶如病毒和殺毒軟件之間的鬥爭一樣,打從出生起就是死對頭,反盜版技術是“盾”。不斷改進加密算法,從而達到不被盜版技術“矛”攻破的目的。
但是,在這場曠日持久的攻防戰中,“矛”似乎更爲鋒利,經常將“盾”成功刺穿,從而取得勝利,其中的原因除了“盾”過於被動,只能老實巴交的乖乖等着“矛”來進攻之外,很大程度上還在於,“盾”的編制者通常只是一個公司或者一個團體的精英,而他們要面對的,往往是全世界的高手,這本來就是一種非常不對稱的攻防戰。所以,就算是像微軟這種世界級的巨頭軟件公司,其推出的加密機制在一天之後,也往往逃離不了被破解的命運。
“盜版軟件”這個詞彙在商業軟件出現之前是不存在的,自由軟件是計算機業與身俱來的傳統,看看計算機的發展史,從1946年到60年代,從IBM藍色巨人到ARPANET。從集成電路到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”程序,一步一步,從初級升到高級。
原本以爲自己技術已經很牛了的時候,徐科來到了“看雪論壇”。這個時候他才發現,原來國內的破解高手都集中在這裡,自己和這些牛人比起來,依然還是小菜鳥一個。
於是,徐科的破解學習之路又重新開始了。