nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
總體來說,要成為較為資深的黑客編程者,你需要掌握以下一些必不可少的編程技術知識:
1,C、C++編程
作為一個比較底層和功能強大的編程語言,黑客基本上是必備的。雖然也有一些玩黑的人刪除用Delphi甚至是易語言等這種,單純編寫木馬還可以,但不是主流,這類編程很多依賴于系統接口,而系統函數幾乎都是用C/C++編寫而成,很多數據結構,函數等與之自然結合,水到渠成。要想成為黑客編程高手,C/C++是不二選擇,沒有這塊,后面說的東西就大打折扣了。
2,深入的系統知識
黑客編程需要用到非常多的系統功能,你對所使用的系統必須有較深入的了解,比如權限,程序運行級別,文本格式自動關聯,線程進程相關知識,跨進程操作,內存管理。這些東西要是不調用系統API,基本不可能完成。另外像鼠標、鍵盤、文件讀寫等事件監控等等都少不了對系統的了解。對計算機本地的各種竊聽、記錄、自動啟動、限制用戶都意味著熟悉這些知識,這部分是木馬作者必須要學習的。早期的黑客編程由于網絡不發達,攻擊很多來自于系統內部的緩沖區溢出攻擊,這中攻擊方式成了黑客的經典攻擊,如果說你不了解和使用這種,就不要說自己玩黑客。但是要完全理解和正確應用是需要了解函數調用過程以及內存相關知識的系統知識。
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
如果要完成函數調用的截獲,增加、減少第三方應用程序的功能,或者傳播你自己的xx東西到其他進程,你需要對可執行文件比較了解,對執行文件的加載過程,動態庫函數是如何注冊到執行文件的流程有清楚認識。要完成典型感染其他程序,這個也是必不可少的,這部分和匯編知識是文件型病毒作者必不可少的學習內容。
4,熟悉常見的匯編指令
要完成一些高級功能,作為一個正牌的黑客編程者,匯編的知識也是必不可少。比如提取傳說中的shellcode,從用戶模式進入內核模式常常會用到。一些特殊功能不用匯編基本不可能完成,比如在你退出你自己的代碼之后需要自己把代碼所在的所有物理內存釋放掉這樣的特定需求。所以黑客程序,實際上有相當一部分是不按常規出牌的程序,這些特別的地方就是使用了匯編(機器碼)直接完成一些高級語言所不能完成的功能,很多典型的計算機病毒都是直接用匯編寫出來的。可見作為資深的黑客編碼者,匯編確實非常重要。
nerror="javascript:errorimg.call(this);" class="" width="" height="" style="" id="" >
說到黑客編程,估計大家都知道,要遠程通信和控制,網絡技術是必備的,你不只是需要了解和學習基本的TCP/IP協議,還有上層的各種應用層協議。比如你聽到過ICMP木馬吧、你發送郵件需要知道SMTP和POP3協議吧,你要下載和上次文件,需要知道FPT/TFTP、HTTP協議吧。在特定情況下,甚至還需要構造網絡包,這些都要求你對網絡相關知識和編程有了解。否則要寫一個掃描器,漏洞檢測工具是不可能完成的,尤其是現在網絡這么發達,不像早期很多黑客程序通過直接接觸媒介進行活動,基本都是網絡連接。
6,網頁相關技術
作為一個經典的黑客,修改網頁貌似成了黑客的標記,這樣裝起逼來更十足^_^。所以你還的了解HTML、JSP、ASP、PHP等這些網站前端編程語言以及用的很多的SQL等數據庫,要不然怎么玩注入漏洞攻擊呢?比起早期的棧溢出攻擊,現在使用的更廣泛,畢竟緩沖區溢出這個漏洞太經典,系統編寫者首要就是防止這個漏洞出現,所以現在要發現和使用它已經太難了。
7,會使用常見的相關工具
上面說的貌似不多,其實要每一項都真正學習并掌握,是需要花很多時間,有相當難度的。所以更好的方式是需要掌握一些常用的工具來幫助你,而不是所以的都去學習,當然學習了更好。比如網絡抓包、掃描聯網主機、尋找代理服務器等等,就有很多常用的工具而不需要你自己去編寫。對于大多數黑客程序編寫者來說,往往重點在其中一項或者幾項中熟悉,那么其他部分就使用現有的工具,比如系統漏洞掃描、網站注入漏洞掃描、弱口令檢查等等,發現之后再編寫對應的工具完成你的任務。
以上主要列出黑客編寫需要的一些技術,其實每一項都有很多要學習,要完全搞得很熟悉估計絕大多數都完不成,就看感興趣的你想學哪些了。
如果內心還有編程的夢想,或者學習過程中遇到的困惑,問問編程到底是咋回事,想深入學習編程,獲取編程里面那點事,可以關注老碼農的微信公眾號:程序員互動聯盟(coder_online),里面集結了眾多的自學編程以及編程高手,問下如何自學。
本文屬原創,禁止轉載,謝謝