Ðồ án môn học Hệ điều hành

pdf 24 trang phuongnguyen 7910
Bạn đang xem 20 trang mẫu của tài liệu "Ðồ án môn học Hệ điều hành", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfo_an_mon_hoc_he_dieu_hanh.pdf

Nội dung text: Ðồ án môn học Hệ điều hành

  1. ð án môn hc Nhóm SV thc hin :  Nguyn ðc D  Trnh Ngc Quỳnh  Nguyn Vit Hùng Lp Tin1 – K50 Đề tài : Nghiên cu cu trúc ca file . EXE và file .COM , nghiên cu cơ ch ñính kèm vào file . EXE và .COM ca virus máy tính 20 March 2012 ð án môn hc h ñiu hành 1
  2. Ni dung : 1. Gii thiu sơ lưc v các loi file thc thi 2. ði sâu vào cu trúc các loi file :  PE file format  File .COM & .EXE 3. Virus tin hc  Virus tin hc là gì ?  Phân loi  Cơ ch ñính kèm vào các file .COM & .EXE ca virus máy tính 20 March 2012 ð án môn hc h ñiu hành 2
  3. Gii thiu sơ lưc v các file thc thi • Trong các h ñiu hành , ñ tin qun lý, ngưi ta phân chia ra hai loi File, các File loi 1 là các File có th thi hành ñưc (Executable), các File loi 2 là các File còn li. các File loi 2 ch yu là các file cha d liu. • Trong DOS các File thi hành có phn m rng là *.EXE, *.COM. Trong h ñiu hành Windows h 9.x các File thi hành có phn m rng *.EXE, *.COM *. DLL, *.ASP, *.VXD ? Nhng File này có cu trúc ñnh sãn và khá phc tp • Quá trình phát trin t h ñiu hành Windows 3.x ñn h ñiu hành Windows 9.x ñã xut hin thêm nhiu dng File thi hành mi, không ch có các File dng *.EXE, *.DLL các file thi hành mi trong h ñiu hành Windows 9.x là File (NE File) ñn h ñiu hành Windows NT™ version 3.1 có gii thiu mt dng file mi ñưc gi Portable Executable hay PE file format . 20 March 2012 ð án môn hc h ñiu hành 3
  4. CU TRÚC PE FILE FORMAT Portable Executable  MSDOS/RealMode Header Nó chim 64 bytes ñu tiên cua PE file . ðây là ñon ñưc mô t ñ quyt ñnh xem File ñang xét thc s là mt File thi hành hay không thông qua du hiu là hai byte ñu có giá tr là "MZ“ . T ñon này thông qua giá tr ca trưng e_lfanew quyt ñnh v trí ca ñon PE Header tip theo. Khai báo chi tit ca cu trúc này như sau : typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header USHORT e_magic; USHORT e_cblp; USHORT e_cp; USHORT e_crlc; USHORT e_cparhdr; USHORT e_minalloc; USHORT e_maxalloc; USHORT e_ss; USHORT e_sp; USHORT e_csum; USHORT e_ip; USHORT e_cs; USHORT e_lfarlc; USHORT e_ovno; USHORT e_res[4]; USHORT e_oemid; USHORT e_oeminfo; USHORT e_res2[10]; LONG e_lfanew; } IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; 20 March 2012 ð án môn hc h ñiu hành 4
  5. CU TRÚC PE FILE FORMAT Portable Executable • Trưng e_magic dùng ñ xác ñnh kiu file tương thích vi MSDOS , gia tr ca nó thưng ñưc ñt 0x54AD vi mã ASCII là MZ • Cac trưng khác quan trng vi MS DOS nhưng nó ñưc dùng cho h ñiu hành Windows NT , ngoài ra còn có mt trưng na quan trng trong cu trúc này ñó là trưòng e_lfanew chim 4 bytes nó lưu gi ña ca ca PE file hearder . • RealMode Stub Program thc t là mt chương trình chy trên môi trưng MS DOS khi có mt chuơng trình ñuc np nhm mc ñích thông báo File *.EXE này cn phi ñưc thc thi trong môi trưng Windows không th thc thi trong DOS. 20 March 2012 ð án môn hc h ñiu hành 5
  6. PE HEARDER +> Trưng quan trng :  AddressOfEntryPoint: Trưng này xác ñnh v trí ñim vào cho ng dng  Image Base: tham chiu ña ch cơ s trong không gian ña ch ca tin trình ñ ánh x image file thc thi vào. Giá tr mc ñnh cho trưng này là ña ch 0x00400000 . Nó phi là bi ca 64K 20 March 2012 ð án môn hc h ñiu hành 6
  7. PE HEARDER +> Trưng quan trng :  Section Alignment : mi section s ñưc np vào mt vùng không gian ña ch ca tin trình mt cách tun t bt ñu t ña ch Image Base. Section Alignment ch ñnh kích thưc nh nht ca b nh mà vùng này có th chim dng khi ñưc np.  OS Major/Minor : Phiên bn HðH ti thiu cn ñ chy chương trình. 20 March 2012 ð án môn hc h ñiu hành 7
  8. PE HEARDER +> Trưng quan trng :  ImageSize: Ch ra khong không gian ña ch dành ñ np nh thc thi. Con s này b nh hưng rt ln bi SectionAlignment.  HeaderSize: Trưng này ch ra kích thưc ca tt c các Header trong file bao gm: MSDOS Header, PE Header, Optional Header, PE Sections Header.  CheckSum: Kim tra li khi np chương trình lên b nh. 20 March 2012 ð án môn hc h ñiu hành 8
  9. The Section Headers and Sections RESOURCE TABLE RVA: Con tr ña ch tương ñi ti ñu vùng resource. TOTAL RESOURCE DATA SIZE: Tng kích thưc ca vùng resource. 20 March 2012 ð án môn hc h ñiu hành 9
  10. File .COM & .EXE 20 March 2012 ð án môn hc h ñiu hành 10
  11. Qu¶n lý v tæ chøc thi hnh file d −íi DOS  Ph©n lo¹i file: File thi hnh: Néi dung cña nã l mét tËp ma lÖnh m¸y (machine code) nh»m thi hnh mét nhiªm vô no ®ã , file thi hnh ®−îc sÏ cã phÇn më réng lÇn l−ît l .COM, .EXE v .BAT. Trong 3 lo¹i file ny, cã file .BAT l ®Æc biÖt, nã thùc chÊt l tËp hîp c¸c lÖnh cña tõng lÖnh mét. Do ®ã, thùc chÊt chØ cã 2 file thi hnh ®−îc cÇn kh¶o s¸t l .COM v .EXE. Khi 3 file cïng tªn cã phÇn më réng l .COM, .EXE v .BAT, thø tù −u tiªn thùc hiÖn ®−îc dnh cho .COM, sau ®ã l .EXE v sau cïng l .BAT. • Tæ chøc thi hnh : Do ®Æc tÝnh ®Þnh vÞ ®Þa chØ thnh segment v offset cña c¸c bé xö lý 8088, 8086, 80x86, mÆt kh¸c do ®Æc tÝnh ®Þnh vÞ t−¬ng ®èi cña c¸c lÖnh JMP, CALL nªn ch−¬ng tr×nh cã thÓ ®−îc t¶i lªn bÊt cø ph©n ®o¹n no cña vïng nhí 20 March 2012 ð án môn hc h ñiu hành 11
  12. Qu¶n lý v tæ chøc thi hnh file d −íi DOS • Tæ chøc thi hnh : Tr−íc khi mét file .COM hay .EXE ®−îc t¶i vo, DOS sÏ chän mét segment. §Þa chØ ny th−êng l ®Þa chØ thÊp nhÊt cßn dïng ®−îc (nÕu cã thÓ ®−îc), segment ny ®−îc gäi l PSP (Program Segment Prefix), l c¬ së ®Ó t¶i ch−¬ng tr×nh vo. §äc 2 byte ®Çu tiªn cña file vo ®Ó x¸c ®Þnh xem file thuéc lo¹i .COM, .EXE chø kh«ng c¨n cø phÇn më réng (§iÒu ny dÉn ®Õn mét file .COM ®æi tªn thnh .EXE còng vÉn thi hnh ®−îc). DÊu hiÖu ®Ó nhËn diÖn file .EXE l 2 byte ®Çu tiªn. NÕu file thuéc lo¹i .EXE, 2 byte ®Çu tiªn sÏ l “MZ “hay “ZM “. Tïy theo lo¹i file, tæ chøc thi hnh file sÏ ®−îc thùc hiÖn t−¬ng øng. 20 March 2012 ð án môn hc h ñiu hành 12
  13. Qu¶n lý v tæ chøc thi hnh file d −íi DOS • Tæ chøc thi hnh : MSDOS dùng hàm EXEC ñ np các chương trình EXE và COM vào b nh EXEC phi chun b mt vùng nh mà chương trình s np vào , và ñt vào ñu vùng nh này mt cu trúc file d liu gi là khi tin t chương trình PSP . Chương trình s ñưc np vào ngay sau PSP , sau ñó h ñiu hành s khito các thanh ghi Segment và Stack ñ chương trình bt ñu hot ñng . Khi chương trình kt thúc thì HðH gii phóng c khi nh cp cho chương trình và khi nh dùng làm PSP cho chương trình . Các chương trình dng COM có kích thưc gii hn trong 64 KB trong khi ñó kích thưc ca chương trình dng EXE có th ln ngang bng kích thưc ca RAM .HDH có th np mt chương trình EXE có kích thưc ln hơn vào RAM nu chương trình ñưc thit k vi cu trúc thích hp ( cu trúc ñng ) 20 March 2012 ð án môn hc h ñiu hành 13
  14. FILE .COM Sau khi nhËn diÖn l file d¹ng .COM, file ®−îc t¶i vo ngay sau PSP, kh«ng cÇn ®Þnh vÞ l¹i. Do ®ã, kÝch th−íc cña nã bÞ giíi h¹n trong mét ph©n ®o¹n 64 Kb. TÊt c¶ c¸c thanh ghi DE, ES, CS, SS ®Òu trá ®Õn PSP, stack còng ®−îc t¹o trong ph©n ®o¹n ny, c¸c b−íc tiÕp theo cña viÖc tæ chøc thi hnh cña DOS cho file .COM l : CS, DS, ES v SS cïng trá tíi PSP SP ®−îc ®Þnh vÞ ®Ó trá ®Õn cuèi segment PSP TÊt c¶ c¸c vïng nhí ®Òu ®−îc ph©n phèi cho ch−¬ng tr×nh. Do ®ã, nÕu ch−¬ng tr×nh l¹i muèn thi hnh mét ch−¬ng tr×nh kh¸c th× ph¶i gi¶i phãng bít sè vïng nhí kh«ng cÇn ®Õn b»ng chøc n¨ng 49 cña ng¾t 21h. 20 March 2012 ð án môn hc h ñiu hành 14
  15. FILE . EXE Kh¸c víi file .COM, file .EXE kh«ng cßn bÞ giíi h¹n trong 1 ph©n ®o¹n m më réng ra trong nhiÒu ph©n ®o¹n. ChÝnh v× lÝ do ny, khi ®−îc n¹p vo vïng nhí, nã ph¶i ®−îc ®Þnh vÞ l¹i (Relocate) b»ng c¸ch sö dông c¸c tham sè trong mét cÊu tróc ®Çu file ®−îc gäi l .EXE header. +> EXE header : ( hình bên ) 20 March 2012 ð án môn hc h ñiu hành 15
  16. FILE . EXE +> Thi hnh ch −¬ng trinh : V× file .EXE cã thÓ ®−îc t¶i vo ë nhiÒu ph©n ®o¹n kh¸c nhau, do ®ã, tÊt c¶ nh÷ng lÖnh Call far, con trá xa, v nh÷ng kiÓu tham chiÕu d¹ng: MOV AX, dataseg v v ph¶i ®−îc hiÖu chØnh ®Ó lm viÖc t−¬ng øng víi vïng nhí m chóng ®−îc t¶i vo. C¸c b−íc m DOS sÏ tiÕn hnh sau khi ®a ph©n biÖt file l EXE : T¹o PSP qua chøc n¨ng 26h cña DOS, ®äc 1Ch byte tõ file .EXE vo v x¸c ®Þnh modul ph¶i t¶i vo T×m ®Þa chØ v t¸i ®Þnh vÞ tham chiÕu ®Õn 20 March 2012 ð án môn hc h ñiu hành 16
  17. FILE . EXE +> Thi hnh ch −¬ng trinh : • Sau khi t¸i ®Þnh vÞ xong, DOS sÏ ph©n phèi vïng nhí cho ch−¬ng tr×nh t−¬ng øng víi gi¸ trÞ vïng nhí tèi ®a v tèi thiÓu trong .EXE header. Khëi t¹o gi¸ trÞ c¸c thanh ghi Trao quyÒn ®iÒu khiÓn l¹i cho file Thùc tÕ, .EXE header chØ ®−îc DOS sö dông ®Õn trong khi t¶i v thi hnh mét file, trong suèt qu¸ tr×nh thi hnh file, kh«ng bao giê DOS ph¶i tham chiÕu ®Õn cÊu tróc ny 20 March 2012 ð án môn hc h ñiu hành 17
  18. VIRUS TIN HC 20 March 2012 ð án môn hc h ñiu hành 18
  19. VIRUS TIN HC • Virus tin häc. ThuËt ng÷ virus tin häc dïng ®Ó chØ mét ch−¬ng tr×nh m¸y tÝnh cã thÓ tù sao chÐp chÝnh nã lªn n¬i kh¸c (®Üa hoÆc file) m ng−êi sö dông kh«ng hay biÕt. Ngoi ra, mét ®Æc ®iÓm chung th−êng thÊy trªn c¸c virus tin häc l tÝnh ph¸ ho¹i, nã g©y ra lçi thi hnh, thay ®æi vÞ trÝ, m ho¸ hoÆc huû th«n.g tin trªn ®Üa. • Ph©n lo¹i: Th«ng th−êng, dùa vo ®èi t−îng l©y lan l file hay ®Üa m virus ®−îc chia thnh hai nhãm chÝnh: Bvirus: Virus chØ tÊn c«ng lªn Master Boot hay Boot Sector. Fvirus: Virus chØ tÊn c«ng lªn c¸c file kh¶ thi. 20 March 2012 ð án môn hc h ñiu hành 19
  20. VIRUS TIN HC  Cơ ch ñính kèm vào file .COM & . EXE ca Virus máy tính : • F virus (File virus), virus chØ l©y lan trªn c¸c file thi hnh ®−îc (.EXE .COM cutiveable file) • Gièng nh− mét nguyªn t¾c bÊt di bÊt dÞch F virus còng ph¶i tu©n theo nh÷ng nguyªn t¾c sau: QuyÒn ®iÒu khiÓn ph¶i n»m trong tay virus tr−íc khi virus tr¶ nã l¹i cho file bÞ nhiÔm, TÊt c¶ c¸c d÷ liÖu cña file ph¶i ®−îc b¶o ton sau khi quyÒn ®iÒu khiÓn thuéc vÒ file. 20 March 2012 ð án môn hc h ñiu hành 20
  21. VIRUS TIN HC  Cho ®Õn nay, F virus chØ cã vi c¸ch ñinh kem vào file nh ư sau :  ChÌn ®Çu: Th«ng th−êng ph−¬ng ph¸p ny chØ ¸p dông víi c¸c file .COM nghÜa l ®Çu vo ch−¬ng tr×nh lu«n ë PSP:100h. Lîi dông ®Çu vo cè ®Þnh, virus sÏ chÌn vo ®o¹n ma ch−¬ng tr×nh virus (m ta sÏ gäi l Progvi) vo ®Çu ch−¬ng tr×nh ®èi t−îng, ®Èy ton bé ch−¬ng tr×nh ®èi t−îng xuèng phÝa d−íi. File chưa b nhim File ña b nhim 20 March 2012 ð án môn hc h ñiu hành 21
  22. VIRUS TIN HC  Append file: Ph−¬ng ph¸p ny ®−îc thÊy trªn hÇu hÕt c¸c lo¹i F virus v× ph¹m vi l©y lan cña nã réng h¬n ph−¬ng ph¸p trªn. Theo ph−¬ng ph¸p ny Progvi sÏ ®−îc g¾n ngay sau ch−¬ng tr×nh ®èi t−îng, Do progvi kh«ng n»m ®óng ®Çu vo ch−¬ng tr×nh nªn nã ph¶i : + §èi víi file d¹ng .COM hay .BIN: thay c¸c byte ë entry vo cña ch−¬ng tr×nh b»ng mét lÖnh JMP, chuyÓn quyÒn ®iÒu khiÓn tõ entry vo ®Õn ®on ma cua progvi 20 March 2012 ð án môn hc h ñiu hành 22
  23. VIRUS TIN HC  Append file: + §èi víi file d¹ng .EXE: chØ cÇn ®Þnh vÞ l¹i c¸c gi¸ trÞ SS, SP, CS, IP trong .EXE header Cã thÓ minh häa b»ng c¸ch vÏ sau : File chưa b nhim File ña b nhim s 20 March 2012 ð án môn hc h ñiu hành 23
  24. VIRUS TIN HC  Overwrite Theo ph−¬ng ph¸p ny, virus sÏ t×m mét vïng trèng trong file ®èi t−îng (cã thÓ l stack hoÆc buffer) ®Ó ghi ®Ì ch−¬ng tr×nh virus vo. Tr−êng hîp buffer ë cuèi file nhá, cã thÓ thõa ra mét ®o¹n ch−¬ng tr×nh virus lm kÝch th−íc file t¨ng lªn kh«ng ®¸ng kÓ. 20 March 2012 ð án môn hc h ñiu hành 24