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