計算機病毒技術(shù)及其防御 課件 第9章-計算機病毒凋亡_第1頁
計算機病毒技術(shù)及其防御 課件 第9章-計算機病毒凋亡_第2頁
計算機病毒技術(shù)及其防御 課件 第9章-計算機病毒凋亡_第3頁
計算機病毒技術(shù)及其防御 課件 第9章-計算機病毒凋亡_第4頁
計算機病毒技術(shù)及其防御 課件 第9章-計算機病毒凋亡_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

MalwarePrinciples&Prevention主講人:張瑜廣東技術(shù)師范大學(xué)

網(wǎng)絡(luò)空間安全學(xué)院計算機病毒技術(shù)及其防御

ComputerVirusTechnology&ItsDefense主講人:張瑜廣東技術(shù)師范大學(xué)

網(wǎng)絡(luò)空間安全學(xué)院主講人:張瑜第九章ChapterNine廣東技術(shù)師范大學(xué)網(wǎng)絡(luò)空間安全學(xué)院ApoptosisofComputerViruses計算機病毒凋亡前言PREFACE在計算機生態(tài)系統(tǒng)中,計算機病毒與安全軟件存在著天然的獵物與捕食者關(guān)系。計算機病毒在計算機生態(tài)系統(tǒng)中傳播、潛伏、發(fā)作時,都會處處受制于安全軟件。當(dāng)計算機病毒被檢測到之后,就會面臨攔截、獵殺、凋亡的結(jié)局。在走完其生命周期后,計算機病毒又會開始新一輪進化發(fā)展。本章將從病毒獵殺、病毒免疫、環(huán)境升級等方面探討計算機病毒凋亡問題。沉舟側(cè)畔千帆過,病樹前頭萬木春?!?劉禹錫1病毒獵殺目錄2病毒免疫3環(huán)境升級1CHAPTER病毒獵殺病毒獵殺流程病毒獵殺方法當(dāng)檢測發(fā)現(xiàn)計算機病毒時,首要任務(wù)是將其獵殺以絕后患。計算機病毒在成功感染目標(biāo)系統(tǒng)后,通常會有兩個據(jù)點以持久駐留并于系統(tǒng)重啟后繼續(xù)運行:病毒文件和病毒加載項。其中,病毒文件是病毒載體,只有運行病毒文件后才能產(chǎn)生后續(xù)影響;病毒加載項是病毒啟動機制,一般借助注冊表、進程等啟動機制完成病毒加載運行。此外,多數(shù)計算機病毒會設(shè)計為兩個病毒體以相互支撐病毒運行:病毒內(nèi)核驅(qū)動和病毒進程。其中,病毒內(nèi)核驅(qū)動通常提供最基本的病毒功能,被加載至系統(tǒng)內(nèi)核且具有系統(tǒng)特權(quán);病毒進程是病毒啟動后在應(yīng)用層的運行實例,配合內(nèi)核驅(qū)動以完成病毒的相關(guān)操作。病毒獵殺計算機病毒運行于Windows系統(tǒng)時,通常有兩種工作模式:安全模式和正常模式。當(dāng)系統(tǒng)運行于安全模型時,只加載系統(tǒng)運行所必需的組件,導(dǎo)致計算機病毒內(nèi)核驅(qū)動可被加載而其對應(yīng)的應(yīng)用進程則無法運行;當(dāng)系統(tǒng)運行于正常模式時,系統(tǒng)將加載所有的系統(tǒng)組件和啟動項,計算機病毒能正常運行,且病毒內(nèi)核驅(qū)動和病毒進程會相互監(jiān)視,一旦對方被刪除,立即重新創(chuàng)建一個。因此,在進行計算機病毒獵殺時,需要考慮系統(tǒng)的運行模式:如系統(tǒng)運行于安全模式,則只能進行病毒內(nèi)核驅(qū)動文件獵殺(刪除);如工作于正常模式,則可進行病毒內(nèi)核驅(qū)動、病毒進程以及加載項的獵殺。1.病毒獵殺流程Virus

killing

process123查看系統(tǒng)日志或反病毒軟件日志了解計算機病毒運行機制借助工具檢查進程、服務(wù)、啟動項、網(wǎng)絡(luò)連接、鉤子等方面45追蹤隱匿痕跡各個擊破斬草除根為什么刪除了計算機病毒,重啟還能復(fù)活?

眾所周知,多數(shù)計算機病毒在運行后會分成兩部分:內(nèi)核驅(qū)動和病毒進程,且兩者會相互監(jiān)視相互配合。如病毒進程被刪除,其內(nèi)核驅(qū)動會重新創(chuàng)建一個病毒進程;反之亦然,如內(nèi)核驅(qū)動被刪除,病毒進程也會重新復(fù)制一個SYS驅(qū)動文件。這也是有些計算機病毒貌似已被刪除,但重啟后又能復(fù)活的根本原因。因此,如欲獵殺此類病毒,則需各個擊破,將病毒的內(nèi)核驅(qū)動與進程全部刪除。1)在安全模式下獵殺病毒內(nèi)核驅(qū)動為什么刪除了計算機病毒,重啟還能復(fù)活?在安全模式下,由于Windows系統(tǒng)只加載必需的組件,導(dǎo)致多數(shù)計算機病毒無法正常運行。此時,先將病毒內(nèi)核驅(qū)動文件刪除,由于病毒進程沒有運行,無法重新復(fù)制病毒內(nèi)核驅(qū)動文件;然后再刪除病毒加載項和相關(guān)病毒文件,并重啟系統(tǒng)。在重啟系統(tǒng)并進入安全模式后,由于病毒內(nèi)核驅(qū)動和進程都無法加載,病毒自然就不能啟動。此時,進入病毒獵殺掃尾階段,將所有與病毒相關(guān)聯(lián)的文件在確認(rèn)后全部刪除。至此,安全模式下計算機病毒的獵殺基本完成。1)在安全模式下獵殺病毒內(nèi)核驅(qū)動2)在正常模式下獵殺病毒體相對于安全模式下獵殺病毒的簡單易行,在正常模式下獵殺病毒則難度增大!由于病毒內(nèi)核驅(qū)動和病毒進程會同時運行且相互監(jiān)控,通常會導(dǎo)致“按下葫蘆浮起瓢”,即刪除病毒內(nèi)核驅(qū)動后,病毒進程會發(fā)現(xiàn)并重新加載之,反之亦然。因此,對于計算機病毒獵殺,建議在安全模式下完成,以取得徹底獵殺效果。2)在正常模式下獵殺病毒體相對于安全模式下獵殺病毒的簡單易行,在正常模式下獵殺病毒則難度增大!如無法進入安全模式,在正常模式下如欲獵殺病毒,可考慮按如下步驟進行獵殺:停止病毒服務(wù),終止病毒進程如無法終止病毒所有進程,則先刪除注冊表等啟動項,重啟后再刪除病毒文件如仍無法刪除病毒,則先刪除所有病毒文件,重啟后再刪除啟動項如上述方法仍無法奏效,則禁止進程和線程創(chuàng)建,再進行病毒文件和啟動項刪除。2.病毒獵殺方法Virus

killing

method刪除DELETE限制LIMIT隔離ISOLATE3)如隔離也無法奏效,則考慮進行權(quán)限限制與封鎖。1)刪除是對計算機病毒進行“肉體消滅”,將其從磁盤系統(tǒng)中徹底根除。但有時無法簡單地一刪了之,有可能會牽一發(fā)而動全身。2)可考慮將與病毒相關(guān)的文件進行隔離,即將計算機病毒移至一個事先設(shè)置好的文件夾,并限制外部訪問之。對于計算機病毒刪除,可通過手工或編程實現(xiàn)。如欲手工刪除,先需找到相關(guān)病毒文件,再逐一刪除即可?;蛘咄ㄟ^系統(tǒng)提供的Del命令進行手工刪除。如欲編程實現(xiàn)刪除,則可考慮調(diào)用API函數(shù)DeleteFileA()和RemoveDirectoryA()實現(xiàn)文件和目錄刪除、RegDeleteKeyA()刪除注冊表指定子項、RegDeleteValueA()刪除指定項下方的鍵值、TerminateProcess()結(jié)束一個進程。

例如,下列代碼可實現(xiàn)E盤根目錄下的directory1文件夾及其下的所有文件與文件夾刪除。1)刪除病毒system("del/f/s/qE:\\directory1");下面的代碼演示了編程實現(xiàn)指定文件夾及其下文件與文件夾的刪除。1)刪除病毒system("del/f/s/qE:\\directory1");對于計算機病毒刪除,可通過手工或編程實現(xiàn)。如欲手工刪除,先需找到相關(guān)病毒文件,再逐一刪除即可。或者通過系統(tǒng)提供的Del命令進行手工刪除。如欲編程實現(xiàn)刪除,則可考慮調(diào)用API函數(shù)DeleteFileA()和RemoveDirectoryA()實現(xiàn)文件和目錄刪除、RegDeleteKeyA()刪除注冊表指定子項、RegDeleteValueA()刪除指定項下方的鍵值、TerminateProcess()結(jié)束一個進程。

例如,下列代碼可實現(xiàn)E盤根目錄下的directory1文件夾及其下的所有文件與文件夾刪除。1)刪除病毒system("del/f/s/qE:\\directory1");對于計算機病毒刪除,可通過手工或編程實現(xiàn)。如欲手工刪除,先需找到相關(guān)病毒文件,再逐一刪除即可?;蛘咄ㄟ^系統(tǒng)提供的Del命令進行手工刪除。如欲編程實現(xiàn)刪除,則可考慮調(diào)用API函數(shù)DeleteFileA()和RemoveDirectoryA()實現(xiàn)文件和目錄刪除、RegDeleteKeyA()刪除注冊表指定子項、RegDeleteValueA()刪除指定項下方的鍵值、TerminateProcess()結(jié)束一個進程。

例如,下列代碼可實現(xiàn)E盤根目錄下的directory1文件夾及其下的所有文件與文件夾刪除。1)刪除病毒2)隔離病毒下面的代碼演示了編程實現(xiàn)將隔離文件夾設(shè)置為隱藏屬性,并將相關(guān)文件移動至該文件夾中。在計算機病毒無法進行一刪了之時,可考慮將病毒相關(guān)文件進行隔離。所謂隔離,是指將相關(guān)文件移動至一個專用文件夾,且禁止該文件夾被其他無關(guān)程序或人員訪問。與刪除類似,隔離也可采取手工與編程兩種實現(xiàn)方式。如通過策略編輯器實現(xiàn)手工隔離,可按如下步驟完成:運行g(shù)pedit.msc打開本地組策略編輯器→依次打開Windows設(shè)置/安全設(shè)置/軟件限制策略→在其他規(guī)則中右鍵選擇新建路徑規(guī)則→選擇要隔離的文件夾,且將安全級別設(shè)置為不允許。對于有些通過軟件漏洞并借助網(wǎng)絡(luò)傳播的計算機病毒,必要的限制措施能有效阻止其向外蔓延傳播,從而避免造成更大更多的破壞。依據(jù)輕重緩急原則,可按如下流程選擇適當(dāng)限制措施:斷網(wǎng)→關(guān)閉相關(guān)服務(wù)(Web、郵件、BBS等)→關(guān)閉相關(guān)網(wǎng)絡(luò)端口。當(dāng)遭遇蠕蟲病毒感染時,由于其借助相關(guān)軟件漏洞并通過網(wǎng)絡(luò)外向傳播,為避免外向擴散,應(yīng)先關(guān)閉內(nèi)網(wǎng)與外網(wǎng)連接,必要時進行物理斷網(wǎng)。如發(fā)現(xiàn)病毒通過發(fā)送郵件向外傳播,則可關(guān)閉郵件服務(wù)器以阻止其進一步外發(fā)郵件傳播。對于部分蠕蟲病毒可能會利用漏洞并借助相關(guān)端口外傳,只要關(guān)閉相關(guān)網(wǎng)絡(luò)端口即可阻止其向外擴散。3)限制病毒病毒免疫免疫接種疫苗注射2CHAPTER傳統(tǒng)免疫學(xué)疫苗接種是將疫苗制劑接種到人體或動物體內(nèi),并借助免疫系統(tǒng)對外來抗原的識別以產(chǎn)生對抗該病原或相似病原的抗體,進而使疫苗接種者具有抵抗某一特定病原體或相似病原體的免疫力。Vaccinationintraditionalimmunology計算機系統(tǒng)同理,對于計算機系統(tǒng),可以采取類似方式進行疫苗接種以使系統(tǒng)具備防御某類計算機病毒的免疫力。計算機病毒免疫,是借鑒生物免疫系統(tǒng)機理以防御計算機病毒入侵保障系統(tǒng)安全。。Vaccinationincomputer病毒免疫virus

immunity由于計算機病毒種類繁多,如全部采用疫苗接種方式進行免疫防御,則會產(chǎn)生與基于特征碼病毒檢測類似效果,一方面會使病毒疫苗庫不斷擴增,另一方面將使接種疫苗失效。因此,病毒免疫法只用于免疫防御突發(fā)的、有重大影響力的特定類型計算機病毒。Viralimmunizationisonlyusedforspecificviruses病毒免疫virus

immunity1.感染標(biāo)志感染邏輯:為避免重復(fù)感染目標(biāo)系統(tǒng),部分計算機病毒在感染目標(biāo)后會存儲一個獨特的感染標(biāo)志。病毒準(zhǔn)備感染目標(biāo)時,首先會判斷目標(biāo)系統(tǒng)上是否有此標(biāo)志,如有則放棄感染,否則就感染之。應(yīng)對措施:在相應(yīng)位置事先放置一個感染標(biāo)志(相當(dāng)于免疫接種),使病毒以為該目標(biāo)已被感染而放棄重復(fù)感染之,從而達(dá)到規(guī)避計算機病毒感染目的。Infection

markerWannaCryNotPetyaDarkside案例1:2017年橫掃全球的WannaCry勒索病毒爆發(fā)后,一位英國研究者發(fā)現(xiàn)該病毒在感染前會判斷網(wǎng)址是否可訪問,如可訪問,則不再繼續(xù)傳播感染。該研究者馬上注冊了這個網(wǎng)址,非常有效地阻止了該病毒的更大范圍傳播感染。案例2:對于NotPetya勒索病毒的免疫,則只需在C:\Windows文件夾下建立名為perfc的“只讀”文件。因為NotPetya在感染后會先搜索該文件,如文件存在,則退出加密勒索。案例3:2021年5月,美國輸油管道公司ColonialPipeline被勒索病毒DarkSide

攻擊導(dǎo)致運營中斷,美國多州和華盛頓特區(qū)進入緊急狀態(tài)。分析發(fā)現(xiàn)如在系統(tǒng)中安裝俄語虛擬鍵盤,或?qū)⑻囟ǖ淖员眄椄臑椤癛U”等,則能使該勒索病毒誤判為俄語實體而免遭攻擊。此外,有些勒索病毒會忽略具有FILE_READ_ONLY_VOLUME屬性的盤符,如將盤符設(shè)置相應(yīng)屬性,則能免疫此類病毒。宏病毒利用感染標(biāo)志進行免疫接種代碼實現(xiàn)宏病毒利用感染標(biāo)志進行免疫接種代碼實現(xiàn)2.注射疫苗感染邏輯:有些病毒在感染目標(biāo)系統(tǒng)之前,會在特定位置搜索某些特殊文件或文件夾,如已存在此類文件或文件夾,則退出感染。應(yīng)對措施:如能將某些特殊的文件或文件夾事先創(chuàng)建于特定位置(相當(dāng)于注射疫苗),則可免疫此類病毒。vaccinate案例:U盤病毒U盤病毒利用Windows系統(tǒng)的自動運行功能(Autorun),并通過磁盤根目錄下的Autorun.inf文件實現(xiàn)其磁盤(包括移動介質(zhì))感染操作。如能事先將Autorun.inf文件創(chuàng)建于干凈的所有磁盤根目錄下,并將該文件設(shè)置為“隱藏”、“只讀”屬性,則相當(dāng)于對所有盤符注射疫苗,即可實現(xiàn)對U盤病毒免疫。通過疫苗注射實現(xiàn)U盤病毒免疫只需將代碼保存為.bat文件,并雙擊運行之,就可完成U盤病毒疫苗注射。代碼實現(xiàn)通過疫苗注射實現(xiàn)U盤病毒免疫只需將代碼保存為.bat文件,并雙擊運行之,就可完成U盤病毒疫苗注射。代碼實現(xiàn)通過疫苗注射實現(xiàn)U盤病毒免疫只需將代碼保存為.bat文件,并雙擊運行之,就可完成U盤病毒疫苗注射。代碼實現(xiàn)環(huán)境升級操作系統(tǒng)編程語言安全軟件3CHAPTER環(huán)境升級

“物競天擇,適者生存?!比魏斡嬎銠C病毒都有其生存繁衍的外部環(huán)境。只有適應(yīng)這個外部環(huán)境,計算機病毒才有可能繼續(xù)生存下去,反之則會被環(huán)境淘汰。因此,對計算機病毒依賴的外部環(huán)境進行必要的升級與更新,也能造成計算機病毒因無法適應(yīng)新的環(huán)境而淘汰凋亡。本節(jié)將從操作系統(tǒng)、編程語言、安全軟件等方面探討環(huán)境升級因素而導(dǎo)致計算機病毒凋亡。1.操作系統(tǒng)OperatingSystemDOSWindowsWindows升級WindowsLinux操作系統(tǒng)是計算機生態(tài)系統(tǒng)中最重要的平臺環(huán)境,是包括計算機病毒在內(nèi)的應(yīng)用程序賴于生息繁衍的重要環(huán)境。作為生存其中的計算機病毒,由于其依賴的操作系統(tǒng)相關(guān)功能的不同,隨著操作系統(tǒng)的升級與更新,就如同自然生態(tài)環(huán)境的改變,會導(dǎo)致在其中生存繁衍的物種(計算機病毒)滅絕。Linux升級DOS系統(tǒng)DosSystem作為個人計算機的首個操作系統(tǒng),DOS系統(tǒng)的誕生在促進計算機生態(tài)系統(tǒng)快速發(fā)展的同時,也為計算機病毒的發(fā)展提供了支撐環(huán)境。DOS病毒借助于DOS系統(tǒng)的相關(guān)功能調(diào)用,不管是在類型還是數(shù)量上,都實現(xiàn)了全面快速地發(fā)展。盡管DOS系統(tǒng)也在不斷升級,增加了系統(tǒng)的復(fù)雜性和更多支撐功能,但由于其內(nèi)核的基本功能保持穩(wěn)定,這使得DOS病毒能適應(yīng)系統(tǒng)升級得以持續(xù)發(fā)展。1)DOSWindowsWindows

95

操作系統(tǒng)Windows

95System然而,當(dāng)Microsoft于1995年推出Windows95操作系統(tǒng)時,作為計算機生態(tài)系統(tǒng)的基礎(chǔ)支撐平臺已開始由原來的DOS系統(tǒng)轉(zhuǎn)換為Windows系統(tǒng),這對生存其中的應(yīng)用系統(tǒng)(物種)而言,就意味著外部環(huán)境的極大改變。由于Windows系統(tǒng)已不提供對DOS系統(tǒng)的支持,此時,與所有其他的應(yīng)用程序一樣,計算機病毒同樣面臨著生存危機?!斑m者生存”的自然選擇法則開始進行殘酷的物種淘汰,不能適應(yīng)Windows系統(tǒng)的DOS病毒很快就被外部環(huán)境淘汰。例如,原來誕生于1989年的DOS系統(tǒng)勒索病毒(AIDS病毒)因無法生存于Windows系統(tǒng)而慘遭淘汰,直到2017年才出現(xiàn)Windows系統(tǒng)勒索病毒(Wannacry病毒)。1)DOSWindows123模擬MicrosoftWindows操作系統(tǒng)當(dāng)初僅僅是DOS模擬環(huán)境,由于其易用性和不斷的更新升級,已成為了當(dāng)前應(yīng)用最廣泛的操作系統(tǒng)。即使同為Microsoft的Windows系統(tǒng),隨著版本的更新?lián)Q代與內(nèi)核升級,同樣也會造成計算機生態(tài)系統(tǒng)支撐環(huán)境的改變。

隨著計算機硬件和軟件的不斷升級,Windows系統(tǒng)也在不斷升級,從架構(gòu)的16位、32位再到64位,系統(tǒng)版本從最初的Windows1.0到大家熟知的Windows95、Windows98、Windows2000、WindowsXP、WindowsVista、Windows7、Windows8、Windows8.1、Windows10、Windows11和WindowsServer服務(wù)器企業(yè)級操作系統(tǒng),其內(nèi)核版本號從WindowsNT3.1到WindowsNT4.0、WindowsNT5.0、WindowsNT6.0、WindowsNT6.4、WindowsNT10。Windows內(nèi)核版本的更新與升級,對于舊版系統(tǒng)的應(yīng)用程序來說,是一個重大的環(huán)境改變,可能會對應(yīng)用程序的正常運行造成影響。例如,Microsof將WindowsNT6.4升級為WindowsNT10時,曾發(fā)布公告說:如果開發(fā)人員代碼依賴于NT內(nèi)核,則需將Web應(yīng)用或應(yīng)用程序更新到最新內(nèi)核版本,以兼容最新Windows10,否則可能導(dǎo)致某些網(wǎng)站和應(yīng)用程序出現(xiàn)兼容性問題。同理,如果計算機病毒依賴于舊版本的Windows內(nèi)核,在Windows系統(tǒng)更新與升級時,將會遭遇同樣的兼容性問題而慘遭淘汰。升級內(nèi)核更新2)Windows升級宏內(nèi)核包含多個模塊,整個內(nèi)核更像一個完整的程序微內(nèi)核有一個最小版本的內(nèi)核,一些模塊和服務(wù)則由用戶態(tài)管理混合內(nèi)核混合內(nèi)核,是宏內(nèi)核和微內(nèi)核的結(jié)合體,內(nèi)核中抽象出了微內(nèi)核的概念,即內(nèi)核中會有一個小型的內(nèi)核,其他模塊就在這個基礎(chǔ)上搭建,整個內(nèi)核是個完整的程序3)WindowsLinux對于操作系統(tǒng)內(nèi)核而言,目前的內(nèi)核架構(gòu)一般有三種類型3)WindowsLinuxWindowLinux內(nèi)核架構(gòu)微內(nèi)核或混合內(nèi)核宏內(nèi)核內(nèi)核設(shè)計?內(nèi)核性能?可執(zhí)行文件PE文件ELF文件

在內(nèi)核架構(gòu)方面,Linux采用了宏內(nèi)核,Windows則采用了微內(nèi)核或混合內(nèi)核,因此Windows的內(nèi)核設(shè)計要優(yōu)于Linux。但要考慮兼容各種不同的外圍設(shè)備,Windows系統(tǒng)在優(yōu)化和升級方面較為保守,以至于其內(nèi)核性能似乎落后于Linux。如果將操作系統(tǒng)從Windows系統(tǒng)更換為Linux系統(tǒng),由于這兩個操作系統(tǒng)的可執(zhí)行文件格式不相同,Linux可執(zhí)行文件格式為ELF,Windows可執(zhí)行文件格式為PE。因此,原來依賴于Windows系統(tǒng)的計算機病毒,在其外部環(huán)境切換為Linux系統(tǒng)后,將因文件格式問題而導(dǎo)致其無法運行,從而導(dǎo)致其因外部環(huán)境的變換而凋亡。

1991年芬蘭赫爾辛基大學(xué)的學(xué)生LinusTorvalds在其Intel386個人計算機上開發(fā)了屬于自己的操作系統(tǒng),且利用Internet發(fā)布了源代碼,并將其命名為Linux。Linux系統(tǒng)的優(yōu)點是:與UNIX兼容,自由軟件,源碼公開,性能高,安全性強,便于定制和再開發(fā),互操作性高,支持全面的多任務(wù),目前主要應(yīng)用于服務(wù)器系統(tǒng)、嵌入式系統(tǒng)和云計算系統(tǒng)等領(lǐng)域。4)Linux升級內(nèi)核版本Linux系統(tǒng)主要有兩種版本:內(nèi)核(Kernel)版本,發(fā)行(Distribution)版本。內(nèi)核(Kernel)版本Linux內(nèi)核的官方版本由LinusTorvalds本人維護,經(jīng)歷了從1994年Linux1.0到1996年Linux2.0、2012年Linux3.2、2014年Linux4.0、2019年Linux5.0、2023年Linux6.2。發(fā)行(Distribution)版本發(fā)行(Distribution)版本則由不同的廠商維護,常見的發(fā)行版本有:RedHat、Debian、CentOS、Ubuntu、SuSELinux、RedFlag等等。兼容問題因此,在兼容性方面存在的問題主要體現(xiàn)為:盡管GNU/Linux與POSIX標(biāo)準(zhǔn)基本兼容,但在某些情況下,GNUutility的默認(rèn)行為與POSIX標(biāo)準(zhǔn)是不兼容的。不同的Linux系統(tǒng)采用了不同版本的POSIX標(biāo)準(zhǔn),而POSIX不同版本標(biāo)準(zhǔn)之間也存在不兼容之處。上述有關(guān)的Linux系統(tǒng)不兼容性,對于各類應(yīng)用程序在不同Linux系統(tǒng)之間的可移植性會造成影響,導(dǎo)致計算機病毒在Linux系統(tǒng)升級時也會因系統(tǒng)兼容性問題而凋亡淘汰。kernelversion&compatibilityissue4)Linux升級PythonJAVAC語言計算機病毒作為一種特殊的程序,是由計算機編程語言編寫的,其能否正常運行也受制于相應(yīng)的編程語言版本。如果在設(shè)計編寫計算機病毒時設(shè)定的編程語言環(huán)境未能滿足,則計算機病毒運行時肯定會出現(xiàn)各類問題而導(dǎo)致其無法發(fā)揮作用。因此,編程語言環(huán)境也是計算機病毒凋亡淘汰的因素之一。本節(jié)將介紹Python語言、C語言、Java語言等編程語言的版本變換而導(dǎo)致的計算機病毒凋亡。2.編程語言programming

language除可解釋執(zhí)行之外,Python還支持將源代碼偽編譯為字節(jié)碼來優(yōu)化程序,以提高加載速度;Python也支持使用py2exe、pyinstaller、cx_Freeze或其他類似工具將Python程序及其所有依賴庫打包成為各種平臺上的可執(zhí)行文件;Python支持命令式編程和函數(shù)式編程兩種方式,完全支持面向?qū)ο蟪绦蛟O(shè)計,語法簡潔清晰,功能強大且易學(xué)易用,已擁有大量的幾乎支持所有領(lǐng)域應(yīng)用開發(fā)的成熟擴展庫。①Python語言Python是一種跨平臺、開源、免費的解釋型高級動態(tài)通用編程語言。C語言的誕生與UNIX操作系統(tǒng)的開發(fā)密不可分,原來的UNIX操作系統(tǒng)是用匯編語言寫的,1973年UNIX操作系統(tǒng)的核心用C語言改寫,從此C語言成為編寫操作系統(tǒng)的主要語言。C語言是一種通用的、模塊化、程序化的編程語言,被廣泛應(yīng)用于操作系統(tǒng)和應(yīng)用軟件的開發(fā)。由于其高效性和可移植性,適應(yīng)于不同硬件和軟件平臺,深受各類程序開發(fā)員的青睞。②C語言C語言最初由DennisRitchie于1969年-1973年在AT&T貝爾實驗室里開發(fā)出來,主要用于重新實現(xiàn)Unix操作系統(tǒng)。經(jīng)典C標(biāo)準(zhǔn)1978年,丹尼斯·里奇(DennisRitchie)和布萊恩·科爾尼干(BrianKernighan)出版了一本書,名叫《TheCProgrammingLanguage》(中文譯名為《C程序設(shè)計語言》)。這本書被C語言開發(fā)者們稱為“K&R”,很多年來一直視為C語言的非正式標(biāo)準(zhǔn)版本。這個版本的C語言被稱為“K&RC”,即經(jīng)典C標(biāo)準(zhǔn)。C89/C90標(biāo)準(zhǔn)由于C語言已被各大公司所使用,考慮到C語言標(biāo)準(zhǔn)化的重要性,ANS(美國國家標(biāo)準(zhǔn)協(xié)會)制定了第一個C語言標(biāo)準(zhǔn),于1989年被正式采用(AmericanNationalStandardX3.159-1989),稱為C89,也稱為ANSIC。該標(biāo)準(zhǔn)于1990年被ISO(國際標(biāo)準(zhǔn)化組織)采納,成為國際標(biāo)準(zhǔn)(ISO/IEC9899:1990),被稱為C90。C99

標(biāo)準(zhǔn)

1999年,標(biāo)準(zhǔn)化委員會正式發(fā)布了ISO/IEC9899:1999,稱為C99標(biāo)準(zhǔn)。C99標(biāo)準(zhǔn)引入了許多特性,包括內(nèi)聯(lián)函數(shù)、可變長度的數(shù)組、靈活的數(shù)組成員(用于結(jié)構(gòu)體)、復(fù)合字變量、指定成員的初始化器、對IEEE754浮點數(shù)的改進、支持不定參數(shù)個數(shù)的宏定義,在數(shù)據(jù)類型上還增加了longlongint以及復(fù)數(shù)類型。C11標(biāo)準(zhǔn)2007年,C語言標(biāo)準(zhǔn)委員會又重新開始修訂C語言,并于2011年正式發(fā)布了ISO/IEC9899:2011,簡稱為C11標(biāo)準(zhǔn)。C11標(biāo)準(zhǔn)新引入的特征盡管沒C99相對C89/C90引入的那么多,但是這些也都十分有用,比如:字節(jié)對齊說明符、泛型機制、對多線程的支持、靜態(tài)斷言、原子操作以及對Unicode字符的支持。②C語言C語言自誕生至今,經(jīng)歷了多次標(biāo)準(zhǔn)化過程,主要分成如下幾個標(biāo)準(zhǔn)化版本。Java是一種面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言以其簡單性、面向?qū)ο?、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態(tài)性等特點而為程序員所鐘愛。③JAVA語言JavaSEJavaEEJavaMEJavaSE包含了支持JavaWeb

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論