freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)任務(wù)書-局域網(wǎng)監(jiān)控技術(shù)研究與實(shí)現(xiàn)-資料下載頁

2024-10-08 08:49本頁面

【導(dǎo)讀】畢業(yè)設(shè)計(jì)(論文)任務(wù)書。擬題單位電子科技大學(xué)計(jì)算機(jī)學(xué)院審題人郭建東。1.對局域網(wǎng)監(jiān)控領(lǐng)域的相關(guān)技術(shù)進(jìn)行研究。2.完成一種局域網(wǎng)監(jiān)控軟件的設(shè)計(jì)。3.對設(shè)計(jì)的軟件程序?qū)崿F(xiàn)。起止時(shí)間:2020年3月10日至2020年6月10日。學(xué)生姓名李箏專業(yè)算機(jī)科學(xué)與技術(shù)班次21082020. 指導(dǎo)教師郭建東,王慶先。設(shè)計(jì)地點(diǎn)電子科技大學(xué)UESTC-INTELIXA實(shí)驗(yàn)室。成果形式軟件產(chǎn)品

  

【正文】 文件生成 .OBJ 模塊 4) 鏈接程序?qū)⑸傻?.OBJ 模塊鏈接起來 5) 如果至少輸出一個(gè)函數(shù) /變量,那么鏈接程序生成 .LIB 文件 創(chuàng)建 EXE: 6)建立帶有輸入原型 /結(jié)構(gòu) /符 號的頭文件(視情況而定)。 7)建立不引用輸入函數(shù) /變量的 C/C++源文件 8)編譯器為每個(gè) C/C++源文件生成 .OBJ 源文件 9)鏈接程序?qū)⒏鱾€(gè) .OBJ 模塊鏈接起來,生成 .EXE 文件 運(yùn)行應(yīng)用程序: 10)加載程序?yàn)?.EXE 創(chuàng)建模塊地址空進(jìn)程的主線程開始執(zhí)行,應(yīng)用程序啟動(dòng)運(yùn)行。 顯示加載 DLL: 11)一個(gè)線程調(diào)用 Loadlibary(Ex)函數(shù),將 DLL 加載到遠(yuǎn)程進(jìn)程的地址空間這時(shí)可以調(diào)用 GetProcAddress 以便間接引用 DLL 的輸出符號。 進(jìn)程中的線程可以通過下面兩個(gè)函數(shù)將 DLL 映射到進(jìn)程的地址 空間。 HINSTANCE LoadLibary(PCTSTR psxDllPathName)。 HINSTANCE LoadLibaryEx(pctstr psxDllPathName,HANDLE hFile,DOWORD dwFlags)。 這兩個(gè)函數(shù) 均用于找出用戶系統(tǒng)上的文件映象,并將 DLL 的文件映射到調(diào)用進(jìn)程的地址空間中。兩個(gè)函數(shù)返回的 HINSTANCE 值用于標(biāo)識文件映象映射到的虛擬內(nèi)存地址。如果 DLL 不能被映射到進(jìn)程的地址空間,則返回 NULL。 LoadLibaryEx 函數(shù)輔助參數(shù),即 hFile 和 dwFlags。參數(shù) hFile 保留供將來使用,現(xiàn)在必須是 NULL。對于參數(shù) dwFlags,必須將它設(shè)置為 0,或者設(shè)置為DONT_RESOLVE_DLL_REFERENCES,LOAD_LIBARY_AS_DATAFILE 和LOAD_WITH_ALTERED_SEARCH_PATH 等標(biāo)志的一個(gè)組合。 DONT_RESOVLE_DLL_REFERENCES標(biāo)志用于告訴系統(tǒng)將 DLL映射到調(diào)用進(jìn)程的地址空間中。通常情況下,當(dāng) DLL 被映射到進(jìn)程的地址空間中 時(shí), 系統(tǒng)要調(diào)用 DLL 中的一個(gè)特殊函數(shù),即 DllMain(本章后面介紹)。該函數(shù)用于對 DLL 進(jìn)行初始化。DONT_RESOLVE_DLL_REFERENCES 標(biāo)志使系統(tǒng)不必調(diào)用 DllMain 函數(shù)就能映射文件映Q260046902 專業(yè)做論文 XXV 像。 此外, DLL 能夠輸入另一個(gè) DLL 中包含的函數(shù)。當(dāng)系統(tǒng)將一個(gè) DLL 映射到進(jìn)程的地址空間中時(shí),它也要查看該 DLL 是否需要其他的 DLL,并且自動(dòng)加載這些 DLL。當(dāng)DONT_RESOLVE_DLL_REFERENCES 標(biāo)志被設(shè)定時(shí),系統(tǒng)并不自動(dòng)將其他的 DLL 加載到進(jìn)程的地址空間中。 LOAD_LIBRARY_AS_DATAFILE標(biāo)志與 DONT_RESOLVE_DLL_REFERENCES標(biāo)志相類似,因?yàn)橄到y(tǒng)只是將 DLL 映射到進(jìn)程的地址空間中,就像它是數(shù)據(jù)文件一樣。系統(tǒng)并不花費(fèi)額外的時(shí)間來準(zhǔn)備執(zhí)行文件中的任何代碼。例如,當(dāng)一個(gè) DLL 被映射到進(jìn)程的地址空間中時(shí),系統(tǒng)要查看 DLL 中的某些信息,以確定應(yīng)該將哪些頁面保護(hù)屬性賦予文件的不同的節(jié)。如果設(shè)定了 LOAD_LIBRARY_AS_DATAFILE 標(biāo)志,系統(tǒng)將以它要執(zhí)行文件中的代碼時(shí)的同樣方式來設(shè)置頁面保護(hù)屬性 。 由于下面幾個(gè)原因,該標(biāo)志是非常有用的。首先,如果有一個(gè) DLL(它只包含資源,但不包含函數(shù)),那么可以設(shè)定這個(gè)標(biāo)志,使 DLL 的文件映像能夠映射到進(jìn)程的地址空間中。然后可以在調(diào)用加載資源的函數(shù)時(shí),使用 LoadLibraryEx 函數(shù)返回的HINSTANCE 值。通常情況下,加載一個(gè) .exe 文件,就能夠啟動(dòng)一個(gè)新進(jìn)程,但是也可以使用 LoadLibraryEx 函數(shù)將 .exe 文件的映像映射到進(jìn)程的地址空間中。借助映射的 .exe 文件的 HINSTANCE 值,就能夠訪問文件中的資源。由于 .exe 文件沒有 DllMain函數(shù), 因此,當(dāng)調(diào)用 LoadLibraryEx 來加載一個(gè) .exe 文件時(shí),必須設(shè)定LOAD_LIBRARY_AS_DATAFILE 標(biāo)志。 LOAD_WITH_ALTERED_SEARCH_PATH標(biāo)志用于改變 LoadLibraryEx用來查找特定的DLL 文件時(shí)使用的搜索算法。通常情況下, LoadLibraryEx 按照第 19 章講述的順序進(jìn)行文件的搜索。但是,如果設(shè)定了 LOAD_WITH_ALTERED_SEARCH_PATH 標(biāo)志,那么LoadLibraryEx 函數(shù)就按照下面的順序來搜索文件: 1)pszDLLPathName 參數(shù)中設(shè)定的目錄。 2)進(jìn)程的當(dāng)前目錄。 3)Windows 的系統(tǒng)目錄。 4)Windows 目錄。 5)PATH 環(huán)境變量中列出的目錄。 Q260046902 專業(yè)做論文 XXVI 一旦 DLL 模塊被顯式加載,線程就必須獲取它要引用的符號的地址,方法是調(diào)用下面的函數(shù): FARPROC GetProcAddress( HINSTANCE hinstDll, PCSTR pszSymbolName)。 參數(shù) hinstDll 是調(diào)用 LoadLibrary(Ex)或 GetModuleHandle 函數(shù)而返回的,它用于設(shè)定包含符號的 DLL 的句柄。參數(shù) pszSymbolName 可以采用兩種形式。第一種形式是以 0 結(jié)尾的字符串的地址,它包含了你想要其地址的符號的名字: FARPROC pfn = GetProcAddress(hinstDll, SomeFuncInDll)。 注意,參數(shù) pszSymbolName 的原型是 PCSTR,而不是 PCTSTR。這意味著GetProcAddress 函數(shù)只接受 ANSI 字符串,決不能將 Unicode 字符串傳遞給該函數(shù),因?yàn)榫幾g器 /鏈接程序總是將符號名作 為 ANSI 字符串存儲在 DLL 的輸出節(jié)中。 參數(shù) pszSymbolName 的第二種形式用于指明你想要其地址的符號的序號: FARPROC pfn = GetProcAddress(hinstDll, MAKEINTRESOURCE(2))。 這種用法假設(shè)你知道你需要的符號名被 DLL 創(chuàng)建程序賦予了序號值 2。同樣,我要再次強(qiáng)調(diào), Microsoft 非常反對使用序號,因此你不會經(jīng)??吹?GetProcAddress的這個(gè)用法。 這兩種方法都能夠提供包含在 DLL 中的必要符號的地址。如果 DLL 模塊的輸出節(jié)中不存在你需要的符 號, GetProcAddress 就返回 NULL,表示運(yùn)行失敗。 我們把要實(shí)現(xiàn)的幾個(gè)功能都封裝成了 DLL 模塊,不僅是從資源利用的角度考慮,更重要的是為進(jìn)程隱藏做準(zhǔn)備。我們在調(diào)用這個(gè) DLL 模塊時(shí)所使用的是顯示調(diào)用方式。 如何利用 DLL 技術(shù)實(shí)現(xiàn)進(jìn)程隱藏,下章將進(jìn)行介紹。 Q260046902 專業(yè)做論文 XXVII 遠(yuǎn)程線程注入 客戶端程序要駐留在客戶機(jī)上,而且不能讓用戶發(fā)現(xiàn)。如何隱藏自己就顯得非常重要。在 WIN9X 中,只需要將系統(tǒng)進(jìn)程注冊為系統(tǒng)服務(wù)就能夠從 查看器中隱形,但WINNT 中就不同了,無論從端口,啟動(dòng)文件上如何巧妙 地隱藏自己,始終不能欺騙WINNT 的任務(wù)管理器。那么如何實(shí)現(xiàn)進(jìn)程的隱藏呢,我想有兩種方法,第一種是讓系統(tǒng)管理員看不見(或視而不見)你的進(jìn)程,第二種則是不使用進(jìn)程。 在 Windows 中有多種方法能夠看到進(jìn)程的存在: PSAPI( Process Status API), PDH( Performance Data Helper), ToolHelp API,如果我們能夠欺騙用戶或入侵檢測軟件用來查看進(jìn)程的函數(shù)(例如截獲相應(yīng)的 API 調(diào)用,替換返回的數(shù)據(jù)),我們就完全能實(shí)現(xiàn)進(jìn)程隱藏,但是一來我們并不知道用戶 /入侵檢測軟件使用 的是什么方法來查看進(jìn)程列表,二來如果我們有權(quán)限和技術(shù)實(shí)現(xiàn)這樣的欺騙,我們就一定能使用其它的方法更容易的實(shí)現(xiàn)進(jìn)程的隱藏。 那么如何不使用進(jìn)程使用什么呢。我們剛才介紹了 DLL。 DLL 文件沒有程序邏輯,由多個(gè)功能函數(shù)構(gòu)成,但他并不能獨(dú)立運(yùn)行,一般都是由進(jìn)程加載調(diào)用。如果我們編寫一個(gè) DLL,讓別的進(jìn)程調(diào)用他,無論入侵檢測軟件還是進(jìn)程列表,都只會出現(xiàn)調(diào)用的進(jìn)程而不會出現(xiàn) DLL,如果那個(gè)進(jìn)程是可信進(jìn)程,(例如是 )用戶就不會懷疑了。那么我們編寫的 DLL 作為進(jìn)程的一部分,從而成功實(shí)現(xiàn)了隱藏。 那么 現(xiàn)在要解決的問題就是如何來啟動(dòng) DLL。方法有好幾種,前面我們講到的HOOK 注入就是一種,但勾子特別是系統(tǒng)勾子會消耗消息處理時(shí)間,降低系統(tǒng)性能。只有在必要的時(shí)候才安裝勾子,在使用完畢后要及時(shí)卸載。比較高級一點(diǎn)有 使用特洛伊 DLL 來插入 DLL 特洛伊 DLL 的工作原理是替換常用的 DLL 文件,將正常的調(diào)用轉(zhuǎn)發(fā)給原 DLL,截獲并處理特定的消息。例如,我們知道 WINDOWS 的 Socket 的函數(shù)都是存放在 中的,那么我們自己寫一個(gè) 文件,替換掉原先的 (將原 先的 DLL 文件重命名為 )我們的 只做兩件事,一是如果遇到不認(rèn)識的調(diào)用,就直接轉(zhuǎn)發(fā)給 (使用函數(shù)Q260046902 專業(yè)做論文 XXVIII 轉(zhuǎn)發(fā)器 forward);二是遇到特殊的請求(事先約定的)就解碼并處理。這樣理論上只要木馬編寫者通過 SOCKET 遠(yuǎn)程輸入一定的暗號,就可以控制 (木馬DLL)做任何操作。特洛伊 DLL 技術(shù)是比較古老的技術(shù),因此微軟也對此做了相當(dāng)?shù)姆婪?,?Win2K 的 system32 目錄下有一個(gè) dllcache 的目錄,這個(gè)目錄中存放著大量的 DLL 文件( 也包括一些重要的 exe 文件),這個(gè)是微軟用來保護(hù) DLL 的法寶,一旦操作系統(tǒng)發(fā)現(xiàn)被保護(hù)的 DLL 文件被篡改(數(shù)字簽名技術(shù)),它就會自動(dòng)從 dllcache中恢復(fù)這個(gè)文件。雖然說先更改 dllcache 目錄中的備份再修改 DLL 文件本身可以繞過這個(gè)保護(hù),但是可以想見的是微軟在未來必將更加小心地保護(hù)重要的 DLL 文件,同時(shí)特洛伊 DLL 方法本身有著一些漏洞(例如修復(fù)安裝、安裝補(bǔ)丁、檢查數(shù)字簽名等方法都有可能導(dǎo)致特洛伊 DLL 失效),所以這個(gè)方法也不能算是 DLL 木馬的最優(yōu)選擇。 我們在這里所使用的技術(shù)是遠(yuǎn)程線程注入技術(shù)。 他指的是通過在另一個(gè)運(yùn)行的進(jìn)程中創(chuàng)建遠(yuǎn)程線程的方法進(jìn)人那個(gè)線程的內(nèi)存地址空間。我們可以通過CreateThread 函數(shù)創(chuàng)建線程,被創(chuàng)建的新線程與主線程共享地址空間以及其他資源。但是我們要注入的進(jìn)程是客戶機(jī)上的遠(yuǎn)程進(jìn)程,而不是本地進(jìn)程。所以我們使用的是CreateRemoteThread 在一個(gè)遠(yuǎn)程進(jìn)程內(nèi)創(chuàng)建新線程,被創(chuàng)建的遠(yuǎn)程線程就可以共享遠(yuǎn)程進(jìn)程的地址空間。所以我們創(chuàng)建一個(gè)遠(yuǎn)程線程進(jìn)入遠(yuǎn)程進(jìn)程的地址空間,然后啟動(dòng)我們的 DLL。首先,我們通過 OpenProcess 來打開我們試圖嵌入的進(jìn)程,由于我們后面需要寫 入遠(yuǎn)程進(jìn)程的內(nèi)存地址空間并建立遠(yuǎn)程線程,所以需要申請足夠的權(quán)限。然后,我們可以建立 LoadLibraryW 這個(gè)線程來啟動(dòng)我們的 DLL, LoadLibraryW函數(shù)是在 中定義的,用來加載 DLL 文件,它只有一個(gè)參數(shù),就是 DLL文件的絕對路徑名 pszLibFileName,但是由于 DLL 是在遠(yuǎn)程進(jìn)程內(nèi)調(diào)用的,所以我們首先還需要將這個(gè)文件名復(fù)制到遠(yuǎn)程地址空間:(否則遠(yuǎn)程線程讀不到這個(gè)參數(shù)) . 然后計(jì)算 LoadLibaryW 的入口地址。最后我們 CreateRemoteThread 在遠(yuǎn)程進(jìn)程內(nèi)調(diào)用 LoadLibaryW 函數(shù),啟動(dòng)我們的 DLL 文件。至此,成功完成注入。整個(gè)過程如 圖。 Q260046902 專業(yè)做論文 XXIX 打 開 遠(yuǎn) 程 進(jìn) 程把 D L L 文 件 名 復(fù) 制 到 遠(yuǎn) 程 地 址 空 間得 到 加 載 D L L 文 件 的 函 數(shù) 地 址創(chuàng) 建 遠(yuǎn) 程 線 程 啟 動(dòng) D L L 調(diào) 用 函 數(shù) 圖 遠(yuǎn)程線程注入流程圖 假設(shè)我們獲得到對方瀏覽器進(jìn)程 (Explorer),那么我們可以通過通過一下過程來進(jìn)行 遠(yuǎn)程的線程 注 入。 1) 獲得 Explorer 進(jìn)程的進(jìn)程 ID 2) 使用 OpenProcess 函數(shù)打開 Explorer 進(jìn)程 hExplorerProcess=OpenProcess(PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,FALSE,dwExplorerProcessId) 3) 將 DLL 的文件名復(fù)制到進(jìn)程 Explorer 進(jìn)程的地址空間: 計(jì)算 DLL 路徑名需要的內(nèi)存空間, int memorysize=(1+strlen(szDLLFileName))*sizeof(char)。 使用 VirtualAllocEx函數(shù)在 E
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1