什麼是駭客?
幾十年前第一台分時小型電腦誕生, ARPAnet 實驗也剛展開的 年代,那時有一個由程序設計專家和網絡名人所組成的, 具有分享特點的文化社區。這種文化的成員創造了 “hacker” 這個名詞。駭客們建立了 Internet。駭客發明了現在使用的 UNIX 作業系統。駭客讓 Usenet 運作起來, 駭客讓 WWW 運轉。如果你是這個文化的一部分,如果你對這種文化有所貢獻,而 這個社區的其它成員也認識你並稱你為 hacker, 那麼你就是一位黑客。
推薦課程:Python教學。
駭客精神並不僅僅侷限在軟體的駭客文化中。有人用黑客態度對待其它事情,如電子學和音樂—— 事實上,你可以在任何最高級別的科學和藝術活動中發現它。精於軟體的駭客讚賞這些在其他領域的同類並把他們也稱作黑客—— 有人宣稱黑客天性是絕對獨立於他們工作的特定領域的。但在這份文件中, 我們將注意力集中在軟體駭客的技術和態度, 以及發明了「駭客」一詞的以共享為特徵的文化傳統之上。
有一群人大聲嚷嚷著自己是駭客,但他們不是。他們(主要是正值青春的少年)是一些蓄意破壞電腦和電話系統的人。真正的駭客把這些人叫做「駭客」(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.(成為大師。)
嗯,如果你想成為駭客,反覆讀下面的事情直至你相信它們。
如果想成為駭客,都需要具備什麼能力?
1. 學習如何程式設計
這當然是最基本的駭客技能。如果你還不會任何程式語言,我建議你從Python開始。它設計清晰,文檔齊全,合適初學者入門。它是一門很好的入門語言,而且不僅僅只是個玩具; 它非常強大、靈活,也適合做大型專案。我有一篇 Python評論詳細說明這一點。好的 教學 可以在Python網站得到。 (譯者:比較好的中文Python網站可能是http://pythonrecord.51.net)
Java也是好的入門語言。它比Python難得多,但產生的程式碼速度也快得多。它同時也是一種優秀的電腦語言,不只用來入門。
但是注意,如果你只會一兩門語言,你將不會達到黑客所要求的技術水平, 甚至也不能達到一個程式設計師的水平——你需要學會如何以抽象的方式思考程式設計問題, 獨立於任何語言。要做一個真正的駭客,你需要學會在幾天內通過一些手冊, 結合你現在所知,迅速掌握一門新語言。這意味著你應該學會幾種截然不同的語言。
如果要做一些重要的程式設計工作,你將不得不學習C語言,Unix的核心語言。 C 與C非常其他類似;如果你了解其中一種,學習另一種應該不難。但這兩種都不適合程式入門者學習。而且事實上,你越避免用C編程,你的工作效率會越高。
2. 得到一個開放原始碼的Unix並學會使用、運行它
UNIX/LINUX這種作業系統就是用C 語言寫的,是最強大的電腦語言,於上世紀70年由丹尼斯瑞切開發。
沒錯,這世界上除了Unix還有其他作業系統。但它們都是以二進位形式發布的——你無法讀到它的原始程式碼,也不可能修改它。試著在運行DOS或Windows或MacOS的機器上學習駭客技術,就像是帶著腳鐐學跳舞。
除此之外,Unix還是Internet的作業系統。你可以學會上網卻不知道Unix,但不了解Unix就無法成為Internet駭客。因此,今天的駭客文化在很大程度上是以Unix為中心的。 (這點並不總是真的, 一些很早的黑客對此一直很不高興,但Unix和Internet之間的聯繫已是如此之強, 甚至連Microsoft也無可奈何。)
所以, 安裝一套UNIX-我個人喜愛LINUX但還有其他種類的(是的,你可以同時安裝Linux及DOS/Windows在同一台電腦上)。學習它,使用它,配置它。用它在互聯網上衝浪。閱讀它的原始碼。修改它的原始碼。你會得到比在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開發人員社群的重要因素。這是一個值得學習的例子。
那麼,做為小白,該怎麼學起呢?
1.電腦的工作原理
要完成這部分的基礎學習,你有很多開始的起點選擇,你可以選擇從經常使用電腦開始,也可以從明天開始選擇一門程式語言去學開始(這裡注意:小白可能不理解有哪些語言,並且很容易陷入迷亂中),或者是去一些論壇逛逛,或者是買一本書籍。起點的管道很多,看你選哪一種。
我建議,先從程式語言開始,一定要死磕,選擇一門程式語言不能放棄,要從頭到尾的去學完。我在這裡不推薦語言,可以自己慢慢了解選擇自己喜歡的一門。 (了解過程中不免有迷茫,很正常)
但這還只是一部分而已,還有部分硬體的知識可能需要你去理解。例如什麼是馮諾依曼結構?身為小白可以不那麼三心二意,先把前人給你指引的首要的東西學了,然後再去拓展是最穩當的。
電腦眾所周知的是由軟體 硬體的機器,硬體是軌道,軟體是跑車,跑車在軌道上跑才形成了各種各樣的資料樣式的展現。這是一個形象化了的舉例,與真正的硬體和軟體有所出入,但是前期為了理解,放棄那種精確,求之以粗糙是很有必要的。
上面我的建議,從程式設計開始入手學習,從更大的視野來看,就是從軟體開始下手,因為硬體已經被設計完成,與你操作電腦的關係不大,一個懂硬件的未必會對計算機操作很牛逼,因為你的目的是黑客,是對計算機工作的控制,而不是構造計算機,因此軟體優先於硬體。
因此,去找一門程式語言,死磕一門,絕對要死磕,(我指的是想成為黑客大神的人,如果你的目標就是能搞個小入侵,知道點計算機的基本工作過程,沒有必要),學完一門語言後你就會進步很多,到時候你思維打通了,你才會明白今天我所說的。至於學什麼語言前面我已經說過不能推薦,一定要自己去摸索。
2.電腦網路基礎
當你能夠用一門語言去程式設計的時候你就對電腦如何運作的有很深的認知了,電腦上跑的任何軟體和程式(怎麼跑的,為什麼能跑?這些潛在的疑問在學的過程中會迎刃而解,此刻記住你的問題邊界,不要過分拓展疑問邊疆),一些安裝包什麼的,你都明白那是乾啥的。
接著對於所有軟體程式中的一個集合「網路協定」也就很容易學習了。
網路協定本質是程序,他的功能是讓電腦之間能夠通信,加一點,安全通訊。
再上一部分的電腦工作原理基礎上你學習完成後,那麼這部分的學習很輕鬆。但絕對重要,因為駭客的影響力主要來自互聯網,沒有廣泛相互聯繫的互聯網,黑客也只能對面前的計算機進行操控,而不能遠程去控制和攻擊,學習計算機網絡會讓你明白黑客攻擊當中的很多遠端的方式,並且黑客的多數偉大和神秘也是互聯網賦予的。
3.駭客基礎
駭客基礎是給學習完以上兩大基礎後依然不知道如何入侵和進行駭客工程的人準備的,一般有駭客天賦的人學完以上兩部分,對於如何利用電腦透過網路進入其他電腦的系統,竊取資訊等都會不學自通。
假如你還尚未打通,那麼就要學學黑客的基礎,這方面有大量前輩們所寫的書,對於前輩經驗們的系統性的梳理去認知也很快會讓你進入一個不一樣的思考模式去。
以上是怎麼從0開始學駭客的詳細內容。更多資訊請關注PHP中文網其他相關文章!