04.15 從0開始成為一名黑客,需要經歷什麼

什麼是黑客?

幾十年前第一臺分時小型電腦誕生, ARPAnet 實驗也剛展開的 年代,那時有一個由程序設計專家和網絡名人所組成的, 具有分享特點的文化社群。 這種文化的成員創造了 “hacker” 這個名詞。黑客們建立了 Internet。 黑客們發明出了現在使用的 UNIX 操作系統。黑客們使 Usenet 運作起來, 黑客們讓 WWW 運轉起來。如果你是這個文化的一部分,如果你對這種文化有所貢獻,而且 這個社群的其它成員也認識你並稱你為 hacker, 那麼你就是一位黑客。

黑客精神並不僅僅侷限在軟件的黑客文化中。 有人用黑客態度對待其它事情,如電子學和音樂—— 事實上,你可以在任何最高級別的科學和藝術活動中發現它。 精於軟件的黑客讚賞這些在其他領域的同類並把他們也稱作黑客—— 有人宣稱黑客天性是絕對獨立於他們工作的特定領域的。 但在這份文檔中, 我們將注意力集中在軟件黑客的技術和態度, 以及發明了“黑客”一詞的以共享為特徵的文化傳統之上。

有一群人大聲嚷嚷著自己是黑客,但他們不是。 他們(主要是正值青春的少年)是一些蓄意破壞計算機和電話系統的人。 真正的黑客把這些人叫做“駭客”(cracker),並不屑與之為伍。 多數真正的黑客認為駭客們又懶又不負責任,還沒什麼大本事。 專門以破壞別人安全為目的的行為並不能使你成為一名黑客, 正如 用鐵絲偷開走汽車並不能使你成為一個汽車工程師。 不幸的是,很多記者和作家往往錯把“駭客”當成黑客; 這種做法一直使真正的黑客感到惱火。

根本的區別是:黑客搞建設,駭客搞破壞

如果你想成為一名黑客,請接著讀下去。如果你想做一個駭客,去讀 alt.2600 新聞組,並在意識到你並不像自己想象的那麼聰明後去坐五到十次監獄。 關於駭客,我只想說這麼多。

黑客應有的態度

黑客們解決問題,建設事物,同時他們崇尚自由和無私的雙向幫助。 要被他人承認是一名黑客,你的行為得體現出你好像具備了這種態度一般。 而要想做得好象你具備這種態度一般,你就得切切實實堅持它。

但是如果你認為培養黑客態度只是一條在黑客文化圈中得到承認的路子, 那就大錯特錯了。成為具備這些特質的這種人對 你自己非常重要——有助於你學習,及給你提供源源不斷的動力。 同所有創造性的藝術一樣,成為大師的最有效方法就是模仿大師的精神—— 不僅從智力上,也要從感情上進行模仿。

或許, 下面這首現代的禪詩很好的闡述了這個意思:

To follow the path:(沿著這樣一條道路:)

look to the master,(尋找大師,)

follow the master,(跟隨大師,)

walk with the master,(與大師通行,)

see through the master,(洞察大師,)

become the master.(成為大師。)

嗯,如果你想成為一名黑客,反覆讀下面的事情直至你相信它們。

從0開始成為一名黑客,需要經歷什麼

如果想成為一名黑客,都需要具備什麼能力?

1. 學習如何編程

這當然是最基本的黑客技能。如果你還不會任何編程語言,我建議你從Python開始。 它設計清晰,文檔齊全,合適初學者入門。 它是一門很好的入門語言,並且不僅僅只是個玩具; 它非常強大、靈活,也適合做大型項目。 我有一篇 Python評價詳細說明這點。好的 教程 可以在Python網站得到。 (譯者:比較好的中文Python站點可能是http://pythonrecord.51.net。)

Java也是好的入門語言。它比Python難得多,但是生成的代碼速度也快得多。 它同時也是一種優秀的計算機語言,不止是用來入門。

但是注意,如果你只會一兩門語言,你將不會達到黑客所要求的技術水平, 甚至也不能達到一個程序員的水平——你需要學會如何以抽象的方式思考編程問題, 獨立於任何語言。要做一名真正的黑客,你需要學會在幾天內通過一些手冊, 結合你現在所知,迅速掌握一門新語言。這意味著你應該學會幾種截然不同的語言。

如果要做一些重要的編程工作,你將不得不學習C語言,Unix的核心語言。 C++與C非常其他類似;如果你瞭解其中一種,學習另一種應該不難。 但這兩種都不適合編程入門者學習。而且事實上,你越避免用C編程,你的工作效率會越高。

2. 得到一個開放源代碼的Unix並學會使用、運行它

沒錯,這世界上除了Unix還有其他操作系統。 但它們都是以二進制形式發佈的——你無法讀到它的源代碼,也不可能修改它。 嘗試在運行DOS或Windows或MacOS的機器上學習黑客技術,就象是帶著腳鐐學跳舞。

除此之外,Unix還是Internet的操作系統。 你可以學會上網卻不知道Unix,但你不瞭解Unix就無法成為一名Internet黑客。 因此,今天的黑客文化在很大程度上是以Unix為中心的。(這點並不總是真的, 一些很早的黑客對此一直很不高興,但Unix和Internet之間的聯繫已是如此之強, 甚至連Microsoft也無可奈何。)

所以, 安裝一套UNIX——我個人喜愛LINUX但還有其他種類的 (是的,你可以同時安裝Linux及DOS/Windows在同一電腦上)。 學習它,使用它,配置它。用它在Internet上衝浪。閱讀它的源代碼。修改它的源代碼。 你會得到比在Microsoft操作系統上更好的編程工具(包括C,LISP,Python及Perl)。 你會覺得樂趣無窮,學到在你成為大師之前意識不到的更多的知識。

(注:如果你是一個新手,我不推薦自己獨立安裝Linux或者BSD。 安裝Linux的話,尋求本地Linux用戶組的幫助;或聯繫 Open Projects Network。 LISC維護著一些 IRC頻道, 在那裡你可以獲得幫助。)

3. 學會如何使用WWW和寫HTML

黑客文化建造的大多東西都在你看不見的地方發揮著作用,幫助工廠、辦公室和大學正常運轉, 表面上很難看到它對非黑客的普通人的生活的影響。Web是一個大大的例外。 即便政客也同意,這個巨大耀眼的黑客玩具正在改變整個世界。 單是這個原因(還有許多其它的),你就需要學習掌握Web。

這並不是僅僅意味著如何使用瀏覽器(誰都會),而是要學會如何寫HTML, Web的標記語言。如果你不會編程,寫HTML會教你一些有助於學習的思考習慣。 因此,先完成一個主頁。(網上有很多好的教程; 這是一個。)

但僅僅擁有一個主頁不能使你成為一名黑客。 Web裡充滿了各種網頁。大多數是毫無意義的,零信息量垃圾——界面時髦的垃圾, 注意,垃圾的水準都類似(更多信息訪問 The HTML Hell Page)。

要想有價值,你的網頁必須有內容—— 它必須有趣或對其它黑客有幫助。這是下一個話題所涉及的……

4. 如果你不懂實用性的英語,學習吧

這一點千真萬確。大概1991年的時候我就瞭解到許多黑客在技術討論中使用英語,甚至當他們的母語都 相同,英語對他們而言只是第二語言的時候;據我知道的報導,當前英語有著比其他語言豐富得多的技術詞彙, 因此是一個對於工作來說相當好的工具。 基於類似的原因,英文技術書籍的翻譯通常不令人滿意(如果有翻譯的話)。

Linus Torvalds,一個芬蘭人,用英語註釋他的代碼(很明顯這對他來說不是湊巧)。 他流利的英語成為他能夠管理全球範圍的Linux開發人員社區的重要因素。 這是一個值得學習的例子。

從0開始成為一名黑客,需要經歷什麼

那麼,做為一名小白,應該怎麼學起呢?

1.計算機的工作原理

要完成這部分的基礎學習,你有很多開始的起點選擇,你可以選擇從經常使用電腦開始,也可以從明天起開始選擇一門編程語言去學開始(此處注意:小白可能不理解有哪些語言,並且很容易陷入迷亂中),或者是去一些論壇逛逛,或者是買一本書籍。起點的渠道很多,看你選擇哪一種。

我建議,首先從一門編程語言開始,一定要死磕,選擇一門編程語言不能放棄,要從頭到尾的去學完。我在這裡不推薦語言,可以自己慢慢了解去選擇自己喜歡的一門。(瞭解過程中不免有迷茫,很正常)

但這還只是一部分而已,還有一部分硬件的知識可能需要你去理解。比如什麼是馮諾依曼結構?作為一名小白可以不那麼三心二意,先把前人給你指引的首要的東西學了,然後再去拓展是最穩妥的。

計算機眾所周知的是由軟件+硬件的機器,硬件是軌道,軟件是跑車,跑車在軌道上跑才形成了各種各樣的數據樣式的展現。這是形象化了的舉例,與真正的硬件和軟件有所出入,但是前期為了理解,放棄那種精確,求之以粗糙是很有必要的。

上面我的建議,從編程開始入手學習,從更大的視野來看,就是從軟件開始下手,因為硬件已經被設計完成,與你操作計算機的關係不大,一個懂硬件的未必會對計算機操作很牛逼,因為你的目的是黑客,是對計算機工作的控制,而不是構造計算機,因此軟件優先於硬件。

因此,去找一門編程語言,死磕一門,絕對要死磕,(我指的是想成為黑客大神的人,如果你的目標就是能搞個小入侵,知道點計算機的基本工作過程,沒有必要),學完一門語言後你就會進步很多,到時候你思維打通了,你才會明白今天我所說的。至於學什麼語言前面我已經說過不能推薦,一定要自己去摸索。

2.計算機網絡基礎

當你能夠用一門語言去編程的時候你就對計算機如何工作的有很深的認知了,計算機上跑的任何軟件和程序(怎麼跑的,為什麼能跑?這些潛在的疑問在學的過程中會迎刃而解,此刻記住你的問題邊界,不要過分拓展疑問邊疆),一些安裝包什麼的,你都明白那是幹啥的。

接著對於所有軟件程序中的一個集合“網絡協議”也就很容易學習了。

網絡協議本質是程序,他的功能是讓計算機之間能夠通信,加一點,安全通信。

再上一部分的計算機工作原理基礎上你學習完成後,那麼這一部分的學習很輕鬆。但是絕對重要,因為黑客的影響力主要來自互聯網,沒有廣泛相互聯繫的互聯網,黑客也只能對面前的計算機進行操控,而不能遠程去控制和攻擊,學習計算機網絡會讓你明白黑客攻擊當中的很多遠程的方式,並且黑客的多數偉大和神秘也是互聯網賦予的。

3.黑客基礎

黑客基礎是給學習完以上兩大基礎後依然不知道如何入侵和進行黑客工程的人準備的,一般有黑客天賦的人學完以上兩部分,對於如何利用計算機通過網絡去進入其他計算機的系統,竊取信息等都會不學自通。

假如你還尚未打通,那麼就要學學黑客的基礎,這方面有大量前輩們所寫的書,對於前輩經驗們的系統性的梳理去認知也很快會讓你進入一個不一樣的思維模式去。


分享到:


相關文章: