



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
黑客編程基礎(chǔ)黑客編程基礎(chǔ)黑客編程基礎(chǔ)V:1.0精細(xì)整理,僅供參考黑客編程基礎(chǔ)日期:20xx年X月黑客編程基礎(chǔ)good一、了解Windows內(nèi)部機(jī)制Windows是一個(gè)“基于事件的,消息驅(qū)動(dòng)的”操作系統(tǒng)。在Windows下執(zhí)行一個(gè)程序,只要用戶進(jìn)行了影響窗口的動(dòng)作(如改變窗口大小或移動(dòng)、單擊鼠標(biāo)等)該動(dòng)作就會(huì)觸發(fā)一個(gè)相應(yīng)的“事件”。系統(tǒng)每次檢測到一個(gè)事件時(shí),就會(huì)給程序發(fā)送一個(gè)“消息”,從而使程序可以處理該事件。每個(gè)Windows應(yīng)用程序都是基于事件和消息的,而且包含一個(gè)主事件循環(huán),它不停地、反復(fù)地檢測是否有用戶事件發(fā)生。每次檢測到一個(gè)用戶事件,程序就對(duì)該事件做出響應(yīng),處理完再等待下一個(gè)事件的發(fā)生。Windows下的應(yīng)用程序不斷地重復(fù)這一過程,直至用戶終止程序,用代碼來描述實(shí)際上也就是一個(gè)消息處理過程的while循環(huán)語句。下面便簡單介紹一下與Windows系統(tǒng)密切相關(guān)的幾個(gè)基本概念:⒈窗口:這是我要說的第一個(gè)概念。似乎是地球人都知道的事兒了,窗口是Windows本身以及Windows環(huán)境下的應(yīng)用程序的基本界面單位,但是很多人都誤以為只有具有標(biāo)題欄、狀態(tài)欄、最大化、最小化按鈕這樣標(biāo)準(zhǔn)的方框才叫窗口。其實(shí)窗口的概念很廣,例如按鈕和對(duì)話框等也是窗口哦,只不過是一種特殊的窗口罷了。從用戶的角度看,窗口就是顯示在屏幕上的一個(gè)矩形區(qū)域,其外觀獨(dú)立于應(yīng)用程序,事實(shí)上它就是生成該窗口的應(yīng)用程序與用戶間的直觀接口;從應(yīng)用程序的角度看,窗口是受其控制的一部分矩形屏幕區(qū)。應(yīng)用程序生成并控制與窗口有關(guān)的一切內(nèi)容,包括窗口的大小、風(fēng)格、位置以及窗口內(nèi)顯示的內(nèi)容等。用戶打開一個(gè)應(yīng)用程序后,程序?qū)?chuàng)建一個(gè)窗口,并在那里默默地等待用戶的要求。每當(dāng)用戶選擇窗口中的選項(xiàng),程序即對(duì)此做出響應(yīng)。⒉程序:通常說的程序都是指一個(gè)能讓計(jì)算機(jī)識(shí)別的文件,接觸得最多的便是.exe型的可執(zhí)行文件,這個(gè)不難理解。⒊進(jìn)程:說到進(jìn)程,學(xué)過《操作系統(tǒng)》的人都很清楚,所謂進(jìn)程就是應(yīng)用程序的執(zhí)行實(shí)例(或稱一個(gè)執(zhí)行程序)。需要注意的是:進(jìn)程是程序動(dòng)態(tài)的描述,而上面說到的程序是靜態(tài)的描述,兩者有本質(zhì)的區(qū)別。舉個(gè)例子,從網(wǎng)上Down了一個(gè)瑞星殺毒軟件到C盤但沒有運(yùn)行,那個(gè).exe可執(zhí)行文件叫做程序,它是一個(gè)二進(jìn)制碼的文件。一旦雙擊了exe文件圖標(biāo)運(yùn)行程序,那個(gè)“正在運(yùn)行著的瑞星殺毒”便稱為進(jìn)程,它在雙擊的那一刻被系統(tǒng)創(chuàng)建,當(dāng)你關(guān)機(jī)或者在任務(wù)欄的圖標(biāo)上單擊鼠標(biāo)右鍵選“退出”時(shí),進(jìn)程便消亡,徹底結(jié)束了生命。進(jìn)程經(jīng)歷了由“創(chuàng)建”到“消亡”的生命期,而程序自始至終存在于你的硬盤上,不管你的機(jī)器是否啟動(dòng)。⒋線程:線程是進(jìn)程中的一個(gè)執(zhí)行單元,同一個(gè)進(jìn)程中的各個(gè)線程對(duì)應(yīng)于一組CPU指令、一組CPU寄存器以及一堆棧。進(jìn)程本來就具有動(dòng)態(tài)的含義,然而實(shí)質(zhì)上是通過線程來執(zhí)行體現(xiàn)的,從這個(gè)意義上說,Windows中進(jìn)程的動(dòng)態(tài)性意義已經(jīng)不是很明顯了,只算是給程序所占的資源劃定一個(gè)范圍而已(個(gè)人觀點(diǎn),純屬個(gè)人理解,不必引起爭議?。嬲哂袆?dòng)態(tài)性意義的是線程。以前在大二學(xué)習(xí)操作系統(tǒng)課的時(shí)候就有個(gè)同學(xué)跟筆者提起這點(diǎn),筆者還跟他駁得面紅耳赤呢!現(xiàn)在想想,覺得很有道理,不得不佩服那位同學(xué)對(duì)Windows內(nèi)部機(jī)制了解得如此清楚。
之所以在此花那么多的篇幅說線程,是因?yàn)橄旅鎸⒁榻B到多線程編程技巧,如果不理解這點(diǎn),那就很難應(yīng)用到實(shí)踐上,希望大家明白。⒌消息:我們幾乎做每一個(gè)動(dòng)作都會(huì)產(chǎn)生一個(gè)消息,在用鼠標(biāo)指點(diǎn)江山的今天,鼠標(biāo)被移動(dòng)會(huì)產(chǎn)生WM_MOUSEMOVE消息,鼠標(biāo)左鍵被按下會(huì)產(chǎn)生WM_LBUTTONDOWN的消息,鼠標(biāo)右鍵按下便產(chǎn)生WM_RBUTTONDOWN消息等等。所有的這些都可以通過GetMessage,SendMessage等函數(shù)得到,以后的操作中我們會(huì)經(jīng)常接觸到這些函數(shù)。⒍事件:何謂事件從它的字面意思我們就可以明白它的含義,如在程序運(yùn)行的過程中改變窗口的大小或者移動(dòng)窗口等,都會(huì)觸發(fā)相應(yīng)的“事件”。⒎句柄:單單一個(gè)“柄”字便可以解釋它的意思了,我們天氣熱搖扇子的時(shí)候只要抓住扇柄便可以控制整個(gè)扇子的運(yùn)動(dòng)了,在程序中也差不多是這個(gè)意思。通常一個(gè)句柄就可以傳遞我們所要做的事情。有經(jīng)驗(yàn)的讀者肯定清楚,編寫程序總是要和各種句柄打交道的,句柄是系統(tǒng)用來標(biāo)識(shí)不同對(duì)象類型的工具,如窗口、菜單等,這些東西在系統(tǒng)中被視為不同類型的對(duì)象,用不同的句柄將他們區(qū)分開來??纯碈++教材中是如何給句柄下定義的:“在Win32里,句柄是指向一個(gè)無值型對(duì)象(void*)的指針,是一個(gè)4字節(jié)長的數(shù)據(jù)”。雖然我對(duì)它的本質(zhì)是什么還是很迷惑,但我知道句柄并不是一個(gè)真正意義上的指針。從結(jié)構(gòu)上看,句柄的確是一個(gè)指針,盡管它沒有指向用于存儲(chǔ)某個(gè)對(duì)象的內(nèi)存位置(很多書都這么說,這正是我的迷惑所在),而實(shí)際上句柄指向的是一個(gè)包含了對(duì)該對(duì)象進(jìn)行的引用的位置。在編程時(shí),只要抓住了對(duì)象的句柄就可以對(duì)該對(duì)象進(jìn)行操作了(我在《一個(gè)簡單木馬程序的編寫與偽裝策略》中說到的對(duì)QQ密碼的截獲就是要找到QQ登陸窗口的句柄后才開始截密行動(dòng)的)。下面再舉個(gè)例子來說明句柄的運(yùn)用:編一個(gè)程序,使QQ登陸窗口的號(hào)碼框和密碼框均變黑,相關(guān)代碼及解釋:void__fastcallTForm1::FormCreate(TObject*Sender){HWNDhCurWindow,HC,HE;pp文件操作注冊(cè)表了,接著來!在窗體的OnCreate()里加入以下代碼(你可以在try{}里面加入任何操作注冊(cè)表的代碼):TRegistry*Registry;Registry=newTRegistry();創(chuàng)建一個(gè)TRegistry類型的對(duì)象Registry,用于修改注冊(cè)表。try{Registry->RootKey=HKEY_CURRENT_USER;.ALT+F7”,在彈出的“ProjectSettings”對(duì)話框右側(cè)選“Link”標(biāo)簽,再在“ProjectOptions”下方的編輯框中增加文件,點(diǎn)“OK”就可以了。加載好文件之后,就可以在文件里加入以下代碼了:fm"TForm1*Form1;__fastcallTForm1::TForm1(TComponent*Owner):TForm(Owner){}voidTForm1::GetHostIpAddress(){//GetHostIpAddress()獲得本機(jī)IP地址structhostent*thisHost;structin_addrin;charMyName[80];char*ptr;WORDwVersionRequested;WSADATAwsaData;interr;wVersionRequested=MAKEWORD(2,0);err=WSAStartup(wVersionRequested,&wsaData);if(err!=0)return;if(LOBYTE()!=2||HIBYTE()!=0){WSACleanup();return;}if(gethostname(MyName,80)==SOCKET_ERROR)return;if(!(thisHost=gethostbyname(MyName)))return;memset((void*)&in,sizeof(in),0);=*((unsignedlong*)thisHost->h_addr_list[0]);if(!(ptr=inet_ntoa(in)))return;WSACleanup();Edit1->Text=AnsiString(ptr);}void__fastcallTForm1::FormCreate(TObject*Sender){GetHostIpAddress();}void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年?duì)I銷策劃師試題及答案
- 2025年高考語文備考之名著閱讀《紅樓夢》第十五回章回解讀及相關(guān)練習(xí)(含答案)
- 2025年電信轉(zhuǎn)正面試題及答案
- 2025年化工面試題及答案圖
- 2025年反三違考試試題及答案
- 2025年天津中電工考試題及答案
- 2025年市場管理與營銷試題及答案
- 2025年哲學(xué)問答題試題及答案
- 2025年外科學(xué)規(guī)培試題及答案
- 2025年城市規(guī)劃師試題及答案
- 清水樁灌注指南
- 土壤顆粒分析-比重計(jì)法
- 解熱鎮(zhèn)痛抗炎藥和抗痛風(fēng)藥專家講座
- 人教版三年級(jí)下冊(cè)《道德與法治》電子教案
- 試講評(píng)分標(biāo)準(zhǔn)
- 《網(wǎng)紅現(xiàn)象的研究背景、意義及文獻(xiàn)綜述(2100字)》
- 管接頭注塑模具設(shè)計(jì)開題報(bào)告
- 最新-駕駛員職業(yè)心理和生理健康知識(shí)二-課件
- 既有住宅加裝電梯業(yè)主意愿征集表
- 加氫裝置催化劑硫化方案
- 危險(xiǎn)源及危險(xiǎn)源辨識(shí)教材課件
評(píng)論
0/150
提交評(píng)論