陳書明,陳振武,余少勇
(龍巖學(xué)院數(shù)學(xué)與信息工程學(xué)院,福建 龍巖 364012)
由于計(jì)算機(jī)系統(tǒng)不斷迅猛發(fā)展,IT 類專業(yè)的硬件類課程所用實(shí)驗(yàn)室及設(shè)備存在遠(yuǎn)遠(yuǎn)落后現(xiàn)實(shí)的硬件發(fā)展水平,無法滿足課程的實(shí)驗(yàn)教學(xué)需求,難以提高學(xué)生對硬件類課程的學(xué)習(xí)興趣,更是難以實(shí)現(xiàn)理論與實(shí)踐相結(jié)合,從而影響這些課程的教學(xué)效果。
近年來,國內(nèi)外很多學(xué)者進(jìn)行硬件類虛擬仿真平臺的研究,其中白明、張健明等人采用Eclipse圖形編輯框架技術(shù)對硬件芯片結(jié)構(gòu)、功能進(jìn)行硬件實(shí)驗(yàn)?zāi)M仿真;陳振武等人采用Eclipse 開發(fā)組成原理部分實(shí)驗(yàn)進(jìn)行模擬測試,提高了教學(xué)效果;蘇坤等人采用Unity3d和3dmax的進(jìn)行實(shí)驗(yàn)室電路仿真研究,是仿真實(shí)驗(yàn)更為生動逼真,提供學(xué)生的學(xué)習(xí)興趣;屈泳等人采用虛擬現(xiàn)實(shí)技術(shù)、多媒體技術(shù)進(jìn)行計(jì)算機(jī)硬件虛擬仿真實(shí)驗(yàn)平臺的設(shè)計(jì);張晨曦等利用C#語言開發(fā)出10 個組成原理實(shí)驗(yàn)?zāi)M器。這些為硬件類虛擬仿真平臺的深入研究提供了有力的依據(jù)。
本文結(jié)合計(jì)算機(jī)硬件類課程對實(shí)驗(yàn)室環(huán)境的需求,課程設(shè)計(jì)實(shí)驗(yàn)環(huán)節(jié)的特性,利用Web 技術(shù)、虛擬仿真軟件搭建一個硬件類虛擬仿真實(shí)驗(yàn)教學(xué)平臺,學(xué)生能夠通過虛擬仿真平臺方便地理解實(shí)驗(yàn)的邏輯思想、設(shè)計(jì)方法、硬件編程理念和各種電子元件的工作原理并進(jìn)行實(shí)驗(yàn)操作;教師可以通過平臺進(jìn)行實(shí)驗(yàn)教學(xué)及學(xué)生實(shí)驗(yàn)評價(jià)等操作。
該虛擬仿真平臺主體包括基礎(chǔ)仿真實(shí)驗(yàn)和高級仿真實(shí)驗(yàn)兩大部分,虛擬仿真平臺的體系結(jié)構(gòu)如圖1所示。
圖1 虛擬仿真平臺的體系結(jié)構(gòu)圖
在虛擬仿真平臺中,用戶可以根據(jù)現(xiàn)階段所學(xué)課程進(jìn)行選擇初級仿真實(shí)驗(yàn)或高級仿真實(shí)驗(yàn),并且每一個實(shí)驗(yàn)下面都有很多子實(shí)驗(yàn),學(xué)生可以選擇不同實(shí)驗(yàn)進(jìn)行實(shí)驗(yàn)操作、實(shí)驗(yàn)驗(yàn)證、實(shí)驗(yàn)重做等操作。教師可以根據(jù)學(xué)生的虛擬仿真實(shí)驗(yàn)操作情況進(jìn)行檢查和評分?;A(chǔ)仿真實(shí)驗(yàn)以“計(jì)算機(jī)組成原理”課程為例,高級仿真實(shí)驗(yàn)以“網(wǎng)絡(luò)安全技術(shù)”課程為例,功能結(jié)構(gòu)圖如圖2所示。
圖2 基礎(chǔ)/高級虛擬仿真平臺的功能結(jié)構(gòu)圖
利用虛擬仿真實(shí)驗(yàn)平臺,基礎(chǔ)仿真實(shí)驗(yàn)針對“計(jì)算機(jī)組成原理”開設(shè)了十實(shí)驗(yàn)項(xiàng)目,高級仿真實(shí)驗(yàn)針對“網(wǎng)絡(luò)安全技術(shù)”課程開設(shè)了十個實(shí)驗(yàn)項(xiàng)目,學(xué)生可以通過B/S 模式進(jìn)入實(shí)驗(yàn)平臺進(jìn)行虛擬仿真實(shí)驗(yàn);教師通過實(shí)驗(yàn)平臺開展基礎(chǔ)仿真實(shí)驗(yàn)及高級仿真實(shí)驗(yàn),以基礎(chǔ)仿真實(shí)驗(yàn)的匯編程序設(shè)計(jì)為例,高級仿真實(shí)驗(yàn)以計(jì)算機(jī)網(wǎng)絡(luò)安全實(shí)驗(yàn)為例進(jìn)行闡述。
該實(shí)驗(yàn)的實(shí)驗(yàn)?zāi)康氖橇私庥?jì)算機(jī)指令的正確格式、指令編碼、尋址方式和每一條指令的功能。
在虛擬仿真實(shí)驗(yàn)教學(xué)平臺上輸入下列指令,并查看其執(zhí)行情況:
在虛擬仿真平臺上,選擇代碼編寫區(qū),如圖3 所示,輸入以上代碼,如圖4 所示 然后點(diǎn)擊菜單欄的編譯按鈕,把匯編碼變成機(jī)器碼。接著點(diǎn)擊菜單欄的執(zhí)行按鈕,選擇按單指令單周期的執(zhí)行方式,然后觀察實(shí)驗(yàn)結(jié)果如圖5所示。
圖3 軟件平臺代碼編寫區(qū)圖
圖4 代碼輸入后的狀態(tài)圖
圖5 代碼執(zhí)行區(qū)圖
網(wǎng)絡(luò)安全仿真實(shí)驗(yàn)采用仿真虛擬軟件技術(shù)構(gòu)建虛擬網(wǎng)絡(luò)及虛擬主機(jī)方式,讓師生可以通過這個仿真軟件進(jìn)行各種網(wǎng)絡(luò)安全實(shí)驗(yàn),而不會破壞物理主機(jī)及網(wǎng)絡(luò)安全,一旦虛擬系統(tǒng)發(fā)生癱瘓,也能在數(shù)秒內(nèi)得到恢復(fù)。如圖6所示。
圖6 VMware虛擬軟件虛擬出Win7/8主機(jī)圖
本次網(wǎng)絡(luò)安全仿真實(shí)驗(yàn)以Autorun 病毒感染、分析及查殺實(shí)驗(yàn)為例。
Autorun病毒是一種優(yōu)盤病毒,即“自動運(yùn)行”病毒,其偽裝成Windows 操作系統(tǒng)自動執(zhí)行的文件命令,原本文件命令主要用于對移動硬件的自動運(yùn)行,因其快捷性及方便性等特點(diǎn)被很多病毒所利用。
Autorun 病毒通過隱藏操作、復(fù)制操作、傳播操作三個方法來達(dá)到對計(jì)算機(jī)、操作系統(tǒng)、網(wǎng)絡(luò)的危害攻擊的目的。在這三個過程中,系統(tǒng)設(shè)置的autorun.inf文件運(yùn)行起著關(guān)鍵作用。病毒會構(gòu)造autorun.inf 文件格式,實(shí)現(xiàn)雙擊U盤時病毒程序自動運(yùn)行。
2.2.1 Autorun病毒行為特征
Autorun病毒是通過U盤傳播,只要雙擊受感染的U盤,就會激活病毒,感染到系統(tǒng),加入進(jìn)程、服務(wù)或驅(qū)動,然后再復(fù)制病毒源文件(通常是兩個文件:autorun.inf 和***.exe)到各磁盤根目錄下,再修改注冊表中[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvancedFolderHiddenSHOWALLcheckedvalue]鍵值,將原來的dword值修改為字符串值,來達(dá)到隱藏自己的目的。同時病毒進(jìn)程會不斷掃描磁盤分區(qū)根目錄下是否有病毒源文件,如果在未關(guān)閉病毒進(jìn)程的情況下將根目錄中的病毒文件刪除,病毒進(jìn)程則會重建這些文件。
2.2.2 Autorun病毒防治
一般情況下,大部分的U 盤病毒都是通過Windows 操作系統(tǒng)的自動播放功能及Autorun 病毒打開U 盤方式來自動運(yùn)行病毒程序,以達(dá)到病毒傳播的目的,因此要有效地避免感染U 盤病毒最有效的方法就是禁用自動播放和對Autorun 病毒文件進(jìn)行處理,以達(dá)到Autorun病毒最佳防范的目的。
2.2.3 Autorun病毒感染及查殺實(shí)驗(yàn)
本實(shí)驗(yàn)單人為一組,采用VMware 虛擬系統(tǒng)技術(shù)進(jìn)行操作系統(tǒng)感染U盤Autorun、病毒分析及病毒查殺實(shí)驗(yàn),首先使用“快照X”恢復(fù)Windows系統(tǒng)環(huán)境。
本實(shí)驗(yàn)需要實(shí)驗(yàn)者自備U 盤,進(jìn)行實(shí)驗(yàn)前對U 盤文件進(jìn)行異地備份,格式化U盤。
⑴Autorun病毒感染分析
MS Virus 是一個典型的Autorun 病毒樣本,出于教學(xué)考慮,在Ms Virus設(shè)計(jì)之初,對其部分功能進(jìn)行了限制,但這不影響大家對Autorun 病毒的認(rèn)知與學(xué)習(xí)?!癕S Virus 模擬Autorun 病毒源程序”,打開MS 的VC++工程文件,如圖7所示。
圖7 Ms Virus模擬autorun病毒代碼圖
從MS 源文件可讀出MS Virus 的運(yùn)行機(jī)制,如圖8。還可設(shè)置顯示/隱藏文件,如圖9所示。
圖8 MS Virus的運(yùn)行機(jī)制圖
圖9 設(shè)置顯示隱藏文件圖
點(diǎn)擊工具欄“MS Virus”按鈕,執(zhí)行病毒程序,等待十秒鐘,觀察病毒發(fā)作現(xiàn)象,將欲先準(zhǔn)備好的“干凈”U 盤插入到實(shí)驗(yàn)主機(jī)USB 接口,并映射到Exp.Windows虛擬機(jī)中。
監(jiān)控器工具停止監(jiān)控,查看文件監(jiān)控視圖,確認(rèn)是否有類似圖10中所示信息出現(xiàn)。
圖10 中信息說明病毒程序MS.exe 執(zhí)行時在C:WINDOWSsystem32 目錄中創(chuàng)建了snss.exe 文件,并接下來對snss.exe 進(jìn)行了數(shù)次的文件屬性修改。查看進(jìn)程監(jiān)控視圖,確認(rèn)是否有類似圖10中所示信息出現(xiàn)。圖11 表明通過設(shè)置注冊表項(xiàng)實(shí)現(xiàn)了snss 開機(jī)自啟動。
圖10 任務(wù)管理器查看病毒感染圖
圖11 注冊表查看病毒感染情況圖
綜合U盤中毒文件狀態(tài)、文件監(jiān)控信息、進(jìn)程監(jiān)控信息、啟動組信息,可得出如下結(jié)論:在單擊“MS Virus”按鈕啟動MS 病毒后,MS 首先自我復(fù)制到C:WINDOWSsystem32 文件下,并偽裝成名為snss.exe的文件(與系統(tǒng)smss.exe 文件混淆),MS 對副本snss.exe 進(jìn)行了文件隱藏屬性設(shè)置、注冊表開機(jī)自啟設(shè)置,隨后執(zhí)行了snss.exe,并在最后實(shí)現(xiàn)MS自我銷毀。
⑵Autorun病毒防治
Autorun 病毒可以通過三種方式進(jìn)行防治,分別為:手動殺毒方式、殺毒軟件方式及病毒方式來查殺病毒,詳細(xì)信息如下。
通過刪除病毒程序手動查殺病毒,刪除C:WINDOWSsystem32snss.exe。通過修改注冊表信息來刪除鍵值ctfmonn HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion un,如圖12所示。
圖12 注冊表刪除鍵值圖
通過刪除U盤autorun.inf、ms.exe兩個文件。
目前各殺毒軟件生產(chǎn)廠商都推出了各自的USB專殺工具,如USBKiller,用戶可以從網(wǎng)上下載USBKiller軟件,進(jìn)行U盤病毒查殺。如圖13所示。
圖13 USBKiller查殺圖
在準(zhǔn)備好的優(yōu)盤上創(chuàng)建一個名為autorun.inf 的文件夾,并設(shè)置為不可被刪除屬性,因?yàn)閃indows 操作系統(tǒng)規(guī)定在同一個文件夾目錄下,相同文件名的文件或文件夾不能同時存在,因此Autorun 病毒無法自我創(chuàng)建autorun.inf 文件,新建Immune.txt 文本文件,編輯代碼如下:
其中,F(xiàn)是U盤映射到虛擬機(jī)中的盤符。
通過這些硬件類虛擬仿真平臺的研究可以有效地開展組成原理實(shí)驗(yàn)教學(xué)及網(wǎng)絡(luò)安全實(shí)驗(yàn)教學(xué)活動,也為深入研究硬件虛擬仿真平臺提供有力的依據(jù),在一定的程度上擺脫陳舊硬件的束縛,避免硬件設(shè)備的破壞,可以調(diào)動學(xué)生學(xué)習(xí)硬件類實(shí)驗(yàn)課程的積極性,很好地提高硬件類實(shí)驗(yàn)的教學(xué)質(zhì)量和教學(xué)效果。
應(yīng)用Unity3D 技術(shù),為每個硬件設(shè)備設(shè)計(jì)一個模型,在模型中增加控制腳本來實(shí)現(xiàn)實(shí)驗(yàn)交互操作功能,在不久的未來,真正的虛擬仿真實(shí)驗(yàn)還需用到VR 設(shè)備,讓學(xué)生完全脫離鼠標(biāo)和鍵盤的束縛,使整個虛擬仿真設(shè)備呈現(xiàn)在眼前,可以更好的親身體驗(yàn)實(shí)驗(yàn)中的樂趣。