黑客第一課:書一封
這第一課,就從以下7個問題的回答,開始講起吧……
(1)在高中階段的學習成績,尤其是數學和英語。
(2)計算機知識和技能背景,比如是否曾經學習過或掌握一些計算機編程語言。
(3)是否接觸或聽說過UNIX、GNU和Linux。
(4)對高考結束后升入高等院校的志愿或預期,比如傾向的專業。
(5)比較強烈的興趣愛好。
(6)對宗教信仰的看法。
(7)對毒品的看法。比如,一些年輕人認為除了鴉片、海洛因、可卡因等等“傳統毒品”之外的毒品都屬于“新型毒品”,對身體和精神危害不大,可以很容易地戒除,對此,您有什么看法?
你對這7個問題,都進行了回答。
前6個問題,你都按照所問的回答了,是符合要求的。但是,對于第7個問題,你的回答是不符合要求的。
第7個問題,所問的是,你對毒品的看法。但你的回答,卻是在闡述有關你自己的一些情況。
明白我指出的這種差異嗎?
我再剖開來說,我所問的是“你對毒品的看法(是什么)”,而不是問“你吸毒嗎?”“你是否會吸毒?”、“你的家庭狀況是否會成為你吸毒的誘因?”這樣的問題。
也就是說,你的回答應該是“我認為:毒品是……”這樣的形式。尤其我在第7個問題中補充了相關的提示,即“一些年輕人認為……對此,您有什么看法?”,那么,你的回答應該著眼于你對毒品這種東西、吸毒這種現象、以及其他人對此的看法,展開闡述。
我們針對任何一個被提出來的問題,都應該很謹慎地觀察,準確地理解和把握到它所提供給你的信息,到底是什么(即它問的是什么,以及不是什么),這就是所謂“審題”。
許多人都倡導所謂的“發散性的思維”。發散性的思維,是指其具備豐富的聯想和想象,思維跨度大、跳躍性大、信息處理量大、穿透力強、活躍、持久,能夠將一般人不容易聯系在一起的事物合理地聯系在一起。的確,發散性的思維是一切創造力的重要泉源,也是黑客必須具備的品質。
然而,當我們經過一番發散性的思維,再回到問題面前來的時候,就必須由極度的發散轉為極度的收斂,如同火力再猛的導彈必須精準地擊中目標才算是完成任務,否則火力再強大、功能再花哨也沒有意義。也就是說,必須精準地就這個問題的本身,給予它所需要的解答,必須完全符合問題所設置的條件,而不能在無關的事情上浪費精力。
在黑客切入計算機系統缺口的時候,這種缺口的寬度是極小的(而且越小越好),而切入、操作并退出的時間是極短的(而且越短越好)。黑客在此之前所做的大量的思考性工作,或許要花上比較長的時間,而且思維是發散的。但是,一旦進入切入計算機系統缺口的實施階段,動作就必須非常迅捷、干凈、徹底、并且幅度極小,所謂“厚積而薄發”。在進入系統之后,任何繁復、冗余、畫蛇添足的工作,都會留下黑客個人特征的痕跡,從而容易導致他最終被暴露。
比如在我用2B鉛筆把答題卡上那條“斑馬”涂成“黑馬”的事件中,我動了許多腦筋來思考,但是在下手實踐的時候,動作是極快的。如果我那時,慢慢吞吞地、又涂又擦又描的、還左顧右盼、或磨磨蹭蹭或孤芳自賞、喜形于色的話,那么,就容易引起監考老師的疑惑,那么,我的白日夢,很可能還沒有被驗證(這是我的目的),就胎死腹中了。
黑客也是如此,其實我們面對生活中的許多事情,皆應該如此。在高考的競賽場上,尤其應該如此。從復習、模擬測試到最終在高考考場上的應試發揮,都應該特別注意“審題”,以及根據審題所得到的基礎性結論進行精準、充分、命中得分點的解答。
回到你的例子上。從你的回答所提供的信息看來,你的思維是具備發散性品質的,但是,在思維的收斂和專注度上,還需要有針對性的強制性操練。 —— 這或許就是,你總覺得英語的閱讀理解試題,對于你來說簡單得就跟“玩”一樣,但經常“玩不對”的原因之一吧。
這種把問題“答偏”的現象,我給他起名叫“偏差”。在作文題應試時,這種“偏差”就是所謂的“跑題”;在我們日常生活中與人交流時,這種“偏差”,就是所謂的“所答非所問”。
在計算機系統中,這種“偏差”是十分常見的。
比如說,程序員(編寫、制作計算機軟件的工作人員)在接到一個項目任務之后,動了很多腦筋,然后到落筆(敲鍵盤)編寫的階段,就很可能都分不清(或記不清)哪些是需要的,哪些是不需要的,哪些是符合要求的,哪些是不符合要求的了。尤其是當他們的上級催促得比較緊的時候,程序員腦袋外面是一層臭汗,腦袋里面是一團漿糊,把所有能想到的東西,都一股腦兒地寫進程序代碼里,反正大差不差地,趕快交了差了事。這就是我們經常使用的軟件,為什么會有那么多“補丁”(用以修正和彌補之前造成的“偏差”的),而且補丁越來越多,最后自然是補丁落補丁。
那么,這些偏差在沒有得到修正與彌補之前,就成為了計算機系統的安全性方面的漏洞。黑客一旦掌握了切入漏洞的方法,就可以進入該計算機系統的內部了。
上面提到了“偏差”的一些例子,以及這些“偏差”產生的原因。我們要注意的是,在不同場合和處境中,“偏差”的產生原因,是大相徑庭,甚至千差萬別的。
我們仔細回顧一下,你在前6個問題的回答上,都符合了要求,為什么到了第7個問題,就發生偏差了呢?
或許,是因為答題疲勞。疲勞是產生偏差的主要原因之一。
或許(以下均是假設,并非定論),是“毒品”這個話題,屬于比較“敏感”的問題,尤其在你的回答里面,涉及到了關于你的家庭條件、生活背景方面的東西。也就是說,你在思考這個問題的時候,心態上發生了微妙的變化。這種變化讓你的思維進一步發散,但沒有及時收斂,在最后的回答上,沒有命中目標,脫離了問題所要求的范圍,所謂“焦點脫失” —— 這個過程,我稱之為“抖動”。
在日常生活中,當我們向他人提及一些問題的時候,如果觸及到對方難以坦然應對的事情(比如問及隱私,質問有可能以謊言來回答的問題),就會發生這種“抖動”,具體表現為:慌張、回答延遲、說模棱兩可或前后矛盾的話、出汗、咂嘴、舔唇、神態或面色改變、眼神改變、肢體語言異常(如手不知道怎么擺了、踱步、姿勢不自然)、遲鈍(有可能發生了內在的矛盾性焦慮)等等……
黑客必須密切關注他的目標的“抖動”情況。在計算機系統中,“抖動”也是很常見的。比如說,如果程序員(人方面)的編程進度(快慢、節奏)發生了異常,那么就暗示了程序員可能遇到了一些棘手或難以解決的問題;如果計算機(機器方面)對輸入的信息應答遲緩甚至停滯,則暗示了程序內部很可能遇到了問題。
在刑事案件的調查中,警察或檢察官對犯罪嫌疑人的審訊,就是以發掘后者的“抖動”為重要突破口的。
在財務稽核中,賬目款項的“抖動”,可能揭示出非法的資本流動(如非法的拆借、抽逃)。
在地球科學中,地磁指數的“抖動”,能夠(間接地)反映出地殼的活動狀況,尤其是指數如果呈高階導數級的下滑,就預示著可能有重大地震會發生(奇怪的是,在某些特大地震前夕,有人居然對它視而不見)。
對于一些生物,比如青蛙,感知獵物的“抖動”是它們捕食維生所賴之道。
對大氣“抖動”的觀測,讓我們知道,我們在炎炎夏日里可以盼來一陣降溫的豪雨,或是可以逃避一場奪命的洪水。
如果你在醫院做超聲波檢查的時候,發現醫生的表情、握著探頭的手發生了“抖動”,那么預示著你的內臟可能有一些不妙的事情。
如果你在家里,發現衛生間墻壁上的一塊瓷磚發生了“抖動”,那么有可能是埋在墻里面的水管漏水了。
如果CCTV的《新聞聯播》發生“抖動”—— 播音員在節目一開始就告訴大家:“今天的新聞聯播需要NNN分鐘”,那么,(……)
而在黑客領域,黑客也是通過對計算機使用者(包括開發者、程序員、終端用戶)以及計算機軟件系統的“抖動”的細致和耐心的觀察,找到切入系統的線索。
總結一下,上面的關鍵點:
(1)黑客學習者不僅要培養發散性思維,也要培養注意力集中的思維品質。在下手實踐時,要努力做到專注、收斂、集中、干凈利落、不拖泥帶水。
(2)許多因素,都會造成目標(人或機器)處理事務時發生“偏差”。
(3)反過來說,發生“偏差”的原因,有可能是因為目標發生了“抖動”。
(4)“抖動”是黑客必須關心的,切入計算機系統的重要線索。
接下來,根據你的計算機等相關專業知識和技能的背景,談談你在這方面的學習計劃。
在初級階段,有幾個必需的要點:
(1)熟悉并掌握有關計算機系統基本結構的知識。
(2)熟悉并掌握一門關乎計算機底層(內在的東西)的編程語言。
對于第(1)點,你已經去維基了相關知識,比如UNIX、GNU、Linux,這很好。必須要有主動自發的自學熱情。自學是黑客必需的基本素養。
對于第(2)點,C語言是不可或缺的。
但是學習C語言并非易事。市場上的教材五花八門、良莠不齊。選書是有方法的:不妨仔細地閱覽一下豆瓣、China-Pub、亞馬遜等等網站上的評價(留意作者、編者、譯者、甚至是作序者、版次、刷數、出版社、系列圖書的出品機構)。現在向你推薦一本:《C程序設計語言(第2版新版)》
這本書的作者之一是C語言之父,世界頂級大黑客,但他已辭世,本書絕唱耳。
最后,為你布置作業(不交作業就沒有第二課),如下:
請你談談,對上面我所講到的“發散性思維”、“收斂”、“偏差”、“抖動”這四個概念的理解或看法。
恭祝平安!
Ager
2012年6月19日