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