黑客入門級編程

  • 2019 年 10 月 7 日
  • 筆記

相當多入門書籍開篇就大談**實作,這無疑是在根基不穩的時候建造摩天大廈。與其坐等這種不牢固的大廈傾倒,不如花一些時間固本培原,認識了解一下黑客的根扎在哪裡。

程式語言

程式語言是人與電腦交互的重要工具,它可以讓電腦輕易了解你想讓它做什麼以及怎麼做。一個不懂程式語言的黑客就像一個不懂英語的人去美國旅行,將變得寸步難行。儘管許多不會英語的遊客也能在導遊的帶領下暢遊美國,但這種旅行通常僅限於遊覽一些預先計劃的常規路線,你會因此而錯過很多別緻的風景。就如同使用黑客軟體去攻擊別人的電腦一樣,只能依照軟體設計者預設的目標去行動。當然,更重要的是脫離了程式,你根本就無法與電腦深入對話,更無法透徹了解許多技術,這將影響你向更為高深的層次迸發,甚至在接觸黑客數年後還是一個門外漢。

以上說得有點隱晦,下面舉一個明顯的例子。某一天,網路上發布了一個新漏洞,沒有編寫程式基礎的黑客,根本無法寫出一個掃描該漏洞的專用掃描器,無法快速找出哪些電腦存在該漏洞,而有程式設計能力的黑客,通常只需要花上數十分鐘,即可製作出一個簡易、高效的漏洞利用工具,並使用此工具為自己服務

很短的時間內,使用自製黑客工具的黑客已經掃描了數以萬計的電腦,並成功利用漏洞**控制了數量眾多的電腦。而不具備程式設汁基礎的黑客,則還守候在電腦旁,望眼欲穿等待別人發布相應的黑客工具。即使獲得了一個黑客工具,但是這個工具所提供的功能,可能也與自己所想完成的任務相去甚遠。從這個對比,可以明顯看出程式設計對於黑客而言,是多麼重要的一項技能。

所以,要成為資深黑客,你將不得不學習程式語言,但是現在主要的程式語言有很多,如c.c#、c++、VisualC、Java、Perl等,初學者往往不知從哪一門語言起步。遇到這種情況,將要視你的目標不同而有所差異,假如研究的主要對象是微軟的作業系統,那麼c#是不錯的選擇;如果研究以UNIX主機為主,那麼c/c++將是首選語言:如果涉及的領域比較廣泛,不妨選擇Java,因為它能讓你的程式碼在多個平台運行。

了解程式的語法和構造並不是困難的事情,一門語言往往只需要花費幾個月時間,用戶就可以達到入門級程式設計師的水平。然而,這只是一個開始。因為程式設計不是一項獨立的工作,它與作業系統、密碼學、網路通訊等有著千絲萬縷的關係,要將這些內容綜合起來,編製出你所需的程式並不容易。書本、上課在這方面能給你提供的幫助極為有限不過得益於源程式碼開放運動,你可以從互聯網上找到許多現成的程式碼,參考和分析這些程式碼會讓你受益匪淺。