Đồ án Tìm hiểu Virus và cách phòng chống
®å ¸n tèt nghiÖp
Lêi nãi ®Çu
Virus tin häc hiÖn nay ®ang lµ nçi b¨n kho¨n lo l¾ng cña
nh÷ng ng-êi lµm c«ng t¸c tin häc, lµ nçi lo sî cña nh÷ng ng-êi sö
dông khi m¸y tÝnh cña m×nh bÞ nhiÔm virus. Khi m¸y tÝnh cña
m×nh bÞ nhiÔm virus, hä chØ biÕt tr«ng chê vµo c¸c phÇn mÒm diÖt
virus hiÖn cã trªn thÞ tr-êng, trong tr-êng hîp c¸c phÇn mÒm nµy
kh«ng ph¸t hiÖn hoÆc kh«ng tiªu diÖt ®-îc, hä bÞ l©m ph¶i t×nh
huèng rÊt khã kh¨n, kh«ng biÕt ph¶i lµm nh- thÕ nµo.
V× lý do ®ã, cã mét c¸ch nh×n nhËn c¬ b¶n vÒ hÖ thèng, c¬
chÕ vµ c¸c nguyªn t¾c ho¹t ®éng cña virus tin häc lµ cÇn thiÕt.
Trªn c¬ së ®ã, cã mét c¸ch nh×n ®óng ®¾n vÒ virus tin häc trong
viÖc phßng chèng, kiÓm tra, ch÷a trÞ còng nh- c¸ch ph©n tÝch,
nghiªn cøu mét virus míi xuÊt hiÖn.
§å ¸n nµy gi¶i quyÕt c¸c vÊn ®Ò võa nªu ra ë trªn. Nã ®-îc
chia lµm 4 ch-¬ng:
Ch-¬ng I. §Æt vÊn ®Ò.
Ch-¬ng II. Tæng quan vÒ virus vµ hÖ thèng.
Ch-¬ng III. Kh¶o s¸t virus One Half.
Ch-¬ng IV. ThiÕt kÕ ch-¬ng tr×nh chèng virus.
PhÇn phô lôc cuèi ®å ¸n liÖt kª toµn bé ch-¬ng tr×nh nguån
cña ch-¬ng tr×nh kiÓm tra vµ kh«i phôc ®èi víi virus One Half.
Trong qu¸ tr×nh x©y dùng ®å ¸n nµy, t«i ®· nhËn ®-îc nhiÒu
sù gióp ®ì cña c¸c thÇy c« gi¸o, b¹n bÌ ®ång nghiÖp vµ gia ®×nh.
T«i xin c¶m ¬n sù gióp ®ì nhiÖt t×nh cña thÇy NguyÔn Thanh
Tïng, lµ thÇy gi¸o trùc tiÕp h-íng dÉn ®Ò tµi tèt nghiÖp cña t«i,
c¶m ¬n c¸c thÇy c« gi¸o trong Khoa Tin häc, c¸c thÇy c« gi¸o vµ
c¸c c¸n bé cña Trung t©m båi d-ìng c¸n bé Tr-êng §¹i häc B¸ch
3
®å ¸n tèt nghiÖp
khoa Hµ néi ®· t¹o ®iÒu kiÖn gióp ®ì t«i hoµn thµnh ®å ¸n nµy.
T«i còng xin c¶m ¬n c¸c b¹n bÌ ®ång nghiÖp, ng-êi th©n trong gia
®×nh ®· t¹o ®iÒu kiÖn, ®éng viªn t«i trong qu¸ tr×nh lµm ®å ¸n.
V× ®iÒu kiÖn vÒ thêi gian kh«ng nhiÒu, kinh nghiÖm cßn h¹n
chÕ, kh«ng tr¸nh khái c¸c thiÕu sãt. T«i mong nhËn ®-îc c¸c ý
kiÕn ®ãng gãp cña c¸c thÇy c« gi¸o vµ c¸c ®ång nghiÖp ®Ó c¸c
ch-¬ng tr×nh sau nµy ®-îc tèt h¬n.
Ch-¬ng I.
§Æt vÊn ®Ò
MÆc dï virus tin häc ®· xuÊt hiÖn tõ kh¸ l©u trªn thÕ giíi vµ
trong n-íc ta, song ®èi víi ng-êi sö dông vµ c¶ nh÷ng ng-êi lµm
c«ng t¸c tin häc, virus tin häc vÉn lµ vÊn ®Ò nan gi¶i, nhiÒu khi nã
g©y c¸c tæn thÊt vÒ mÊt m¸t d÷ liÖu trªn ®Üa, g©y c¸c sù cè trong
qu¸ tr×nh vËn hµnh m¸y. Sù nan gi¶i nµy cã nhiÒu lý do: Thø nhÊt,
c¸c kiÕn thøc vÒ møc hÖ thèng khã h¬n c¸c kiÕn thøc vÒ lËp tr×nh
trªn c¸c ng«n ng÷ bËc cao vµ c¸c ch-¬ng tr×nh øng dông, ®Æc biÖt
nh÷ng th«ng tin cÇn thiÕt vÒ hÖ thèng kh«ng ®-îc DOS chÝnh thøc
c«ng bè hoÆc lµ c¸c th«ng tin dµnh riªng (Reseved), ®iÒu nµy lµm
cho nh÷ng ng-êi ®Ò cËp ë møc hÖ thèng kh«ng nhiÒu. Thø hai,
hÇu nh- rÊt Ýt c¸c tµi liÖu vÒ virus tin häc ®-îc phæ biÕn, cã lÏ
ng-êi ta nghÜ r»ng nÕu cã c¸c tµi liÖu ®Ò cËp tíi virus mét c¸ch tû
mû, hÖ thèng th× sè ng-êi tß mß, nghÞch ngîm viÕt virus sÏ cßn
t¨ng lªn n÷a! Thø ba, sè l-îng c¸c virus xuÊt hiÖn kh¸ ®«ng ®¶o,
mçi virus cã mét ®Æc thï riªng, mét c¸ch ho¹t ®éng riªng vµ mét
c¸ch ph¸ ho¹i riªng. §Ó t×m hiÓu cÆn kÏ vÒ mét virus kh«ng thÓ
4
®å ¸n tèt nghiÖp
mét thêi gian ng¾n ®-îc, ®iÒu nµy lµm n¶n lßng nh÷ng ng-êi lËp
tr×nh muèn t×m hiÓu vÒ virus.
Tuy ®· xuÊt hiÖn kh¸ nhiÒu nh÷ng ch-¬ng tr×nh tiªu diÖt virus
vµ kh«i phôc l¹i ®Üa, kh«i phôc l¹i c¸c file bÞ nhiÔm song trong
nh÷ng tr-êng hîp cô thÓ, ®«i khi c¸c phÇn mÒm nµy còng kh«ng
gi¶i quyÕt ®-îc vÊn ®Ò. Cã nhiÒu lý do: Thø nhÊt, mçi ch-¬ng
tr×nh chØ tiªu diÖt mét sè lo¹i virus mµ nã biÕt. Thø hai, chóng ta
®Òu biÕt r»ng sau khi mét virus nµo ®ã xuÊt hiÖn, nã míi ®-îc
nghiªn cøu vµ m· nhËn biÕt cña nã míi ®-îc ®-a vµo danh môc,
khi ®ã ch-¬ng tr×nh míi cã kh¶ n¨ng tiªu diÖt ®-îc. §iÒu ®ã cã
nghÜa lµ cã thÓ cã c¸c lo¹i virus xuÊt hiÖn trong m¸y tÝnh cña
chóng ta mµ c¸c ch-¬ng tr×nh kiÓm tra virus vÉn cø th«ng b¸o
"OK". §Æc biÖt lµ c¸c virus do nh÷ng ng-êi lËp tr×nh trong n-íc
viÕt, hÇu hÕt kh«ng ®-îc cËp nhËt vµo trong c¸c ch-¬ng tr×nh
kiÓm tra vµ tiªu diÖt virus nh- SCAN, F-PROT, UNVIRUS,...
V× c¸c lý do nªu trªn, viÖc phßng chèng virus vÉn lµ biÖn
ph¸p tèt nhÊt ®Ó tr¸nh viÖc virus x©m nhËp vµo trong hÖ thèng
m¸y cña m×nh. Trong tr-êng hîp ph¸t hiÖn cã virus x©m nhËp,
ngoµi viÖc sö dông c¸c ch-¬ng tr×nh diÖt virus hiÖn ®ang cã mÆt
trªn thÞ tr-êng, viÖc hiÓu biÕt c¬ chÕ, c¸c ®Æc ®iÓm phæ biÕn cña
virus lµ nh÷ng kiÕn thøc mµ nh÷ng ng-êi lµm c«ng t¸c tin häc nªn
biÕt ®Ó cã c¸c xö lý phï hîp.
Néi dung cña ®å ¸n nµy ®-a ra mét sè ph©n tÝch c¬ b¶n ®èi
víi m¶ng kiÕn thøc hÖ thèng, c¸c nguyªn t¾c thiÕt kÕ, ho¹t ®éng
cña c¸c lo¹i virus nãi chung, ¸p dông trong ph©n tÝch virus One
Half. Trªn c¬ së ®ã, ®Ò cËp tíi ph-¬ng ph¸p phßng tr¸nh, ph¸t
hiÖn vµ ph©n tÝch víi mét virus nµo ®ã. C¸c kiÕn thøc nµy céng
víi c¸c phÇn mÒm diÖt virus hiÖn cã trªn thÞ tr-êng cã t¸c dông
trong viÖc h¹n chÕ sù l©y lan, ph¸ ho¹i cña virus nãi chung.
5
®å ¸n tèt nghiÖp
Ch-¬ng II.
Tæng quan
I. Giíi thiÖu tæng qu¸t vÒ virus tin häc.
1. 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. Ngoµi 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 hµnh, thay ®æi vÞ trÝ, m· ho¸ hoÆc huû th«ng tin trªn ®Üa.
2. ý t-ëng vµ lÞch sö.
Lý thuyÕt vÒ mét ch-¬ng tr×nh m¸y tÝnh cã thÓ tù nh©n lªn
nhiÒu lÇn ®-îc ®Ò cËp tíi tõ rÊt sím, tr-íc khi chiÕc m¸y tÝnh ®iÖn
tö ®Çu tiªn ra ®êi. Lý thuyÕt nµy ®-îc ®-a ra n¨m 1949 bëi Von
Neumann, trong mét bµi b¸o nhan ®Ò 'Lý thuyÕt vµ c¬ cÊu cña c¸c
phÇn tö tù hµnh phøc t¹p' (Theory and Organization of
Complicated Automata).
Sau khi m¸y tÝnh ®iÖn tö ra ®êi, xuÊt hiÖn mét trß ch¬i tªn lµ
'Core War', do mét sè th¶o ch-¬ng viªn cña h·ng AT&T's Bell
ph¸t triÓn. Trß ch¬i nµy lµ mét cuéc ®Êu trÝ gi÷a hai ®o¹n m· cña
hai th¶o ch-¬ng viªn, mçi ®o¹n m· ®Òu cè g¾ng tù nh©n lªn vµ
tiªu diÖt ®o¹n m· cña ®èi ph-¬ng. §Õn 5/1984, Core War ®-îc
m« t¶ trªn b¸o chÝ vµ b¸n nh- mét trß ch¬i m¸y tÝnh.
Nh÷ng virus tin häc ®Çu tiªn ®-îc t×m thÊy trªn m¸y PC vµo
kho¶ng 1986-1987. C¸c virus th-êng cã mét xuÊt ph¸t ®iÓm lµ c¸c
tr-êng §¹i häc, n¬i cã c¸c sinh viªn giái, thÝch tù kh¼ng ®Þnh
m×nh!
3. Ph©n lo¹i:
6
®å ¸n tèt nghiÖp
Th«ng th-êng, dùa vµo ®èi t-îng l©y lan lµ file hay ®Üa mµ
virus ®-îc chia thµnh hai nhãm chÝnh:
- B-virus: Virus chØ tÊn c«ng lªn Master Boot hay Boot Sector.
- F-virus: Virus chØ tÊn c«ng lªn c¸c file kh¶ thi.
MÆc dï vËy, c¸ch ph©n chia nµy còng kh«ng h¼n lµ chÝnh x¸c.
Ngo¹i lÖ vÉn cã c¸c virus võa tÊn c«ng lªn Master Boot (Boot
Sector) võa tÊn c«ng lªn file kh¶ thi.
§Ó cã mét c¸ch nh×n tæng quan vÒ virus, chóng ta xem chóng
dµnh quyÒn ®iÒu khiÓn nh- thÕ nµo.
a. B-virus.
Khi m¸y tÝnh b¾t ®Çu khëi ®éng (Power on), c¸c thanh ghi
ph©n ®o¹n ®Òu ®-îc ®Æt vÒ 0FFFFh, cßn mäi thanh ghi kh¸c ®Òu
®-îc ®Æt vÒ 0. Nh- vËy, quyÒn ®iÒu khiÓn ban ®Çu ®-îc trao cho
®o¹n m· t¹i 0FFFFh: 0h, ®o¹n m· nµy thùc ra chØ lµ lÖnh nh¶y
JMP FAR ®Õn mét ®o¹n ch-¬ng tr×nh trong ROM, ®o¹n ch-¬ng
tr×nh nµy thùc hiÖn qu¸ tr×nh POST (Power On Self Test - Tù kiÓm
tra khi khëi ®éng).
Qu¸ tr×nh POST sÏ lÇn l-ît kiÓm tra c¸c thanh ghi, kiÓm tra
bé nhí, khëi t¹o c¸c Chip ®iÒu khiÓn DMA, bé ®iÒu khiÓn ng¾t,
bé ®iÒu khiÓn ®Üa... Sau ®ã nã sÏ dß t×m c¸c Card thiÕt bÞ g¾n thªm
®Ó trao quyÒn ®iÒu khiÓn cho chóng tù khëi t¹o råi lÊy l¹i quyÒn
®iÒu khiÓn. Chó ý r»ng ®©y lµ ®o¹n ch-¬ng tr×nh trong ROM
(Read Only Memory) nªn kh«ng thÓ söa ®æi, còng nh- kh«ng thÓ
chÌn thªm mét ®o¹n m· nµo kh¸c.
Sau qu¸ tr×nh POST, ®o¹n ch-¬ng tr×nh trong ROM tiÕn hµnh
®äc Boot Sector trªn ®Üa A hoÆc Master Boot trªn ®Üa cøng vµo
RAM (Random Acess Memory) t¹i ®Þa chØ 0:7C00h vµ trao quyÒn
®iÒu khiÓn cho ®o¹n m· ®ã b»ng lÖnh JMP FAR 0:7C00h. §©y lµ
7
®å ¸n tèt nghiÖp
chç mµ B-virus lîi dông ®Ó tÊn c«ng vµo Boot Sector (Master
Boot), nghÜa lµ nã sÏ thay Boot Sector (Master Boot) chuÈn b»ng
®o¹n m· virus, v× thÕ quyÒn ®iÒu khiÓn ®-îc trao cho virus, nã sÏ
tiÕn hµnh c¸c ho¹t ®éng cña m×nh tr-íc, råi sau ®ã míi tiÕn hµnh
c¸c thao t¸c nh- th«ng th-êng: §äc Boot Sector (Master Boot)
chuÈn mµ nã cÊt giÊu ë ®©u ®ã vµo 0:7C00h råi trao quyÒn ®iÒu
khiÓn cho ®o¹n m· chuÈn nµy, vµ ng-êi sö dông cã c¶m gi¸c r»ng
m¸y tÝnh cña m×nh vÉn ho¹t ®éng b×nh th-êng.
b. F-virus.
Khi DOS tæ chøc thi hµnh File kh¶ thi (b»ng chøc n¨ng 4Bh
cña ng¾t 21h), nã sÏ tæ chøc l¹i vïng nhí, t¶i File cÇn thi hµnh vµ
trao quyÒn ®iÒu khiÓn cho File ®ã. F-virus lîi dông ®iÓm nµy b»ng
c¸ch g¾n ®o¹n m· cña m×nh vµo file ®óng t¹i vÞ trÝ mµ DOS trao
quyÒn ®iÒu khiÓn cho File sau khi ®· t¶i vµo vïng nhí. Sau khi
F-virus tiÕn hµnh xong c¸c ho¹t ®éng cña m×nh, nã míi s¾p xÕp,
bè trÝ tr¶ l¹i quyÒn ®iÒu khiÓn cho File ®Ó cho File l¹i tiÕn hµnh
ho¹t ®éng b×nh th-êng, vµ ng-êi sö dông th× kh«ng thÓ biÕt ®-îc.
Trong c¸c lo¹i B-virus vµ F-virus, cã mét sè lo¹i sau khi dµnh
®-îc quyÒn ®iÒu khiÓn, sÏ tiÕn hµnh cµi ®Æt mét ®o¹n m· cña
m×nh trong vïng nhí RAM nh- mét ch-¬ng tr×nh th-êng tró
(TSR), hoÆc trong vïng nhí n»m ngoµi tÇm kiÓm so¸t cña DOS,
nh»m môc ®Ých kiÓm so¸t c¸c ng¾t quan träng nh- ng¾t 21h, ng¾t
13h,... Mçi khi c¸c ng¾t nµy ®-îc gäi, virus sÏ dµnh quyÒn ®iÒu
khiÓn ®Ó tiÕn hµnh c¸c ho¹t ®éng cña m×nh tr-íc khi tr¶ l¹i c¸c
ng¾t chuÈn cña DOS.
§Ó cã c¸c c¬ së trong viÖc kh¶o s¸t virus, chóng ta cÇn cã c¸c
ph©n tÝch ®Ó hiÓu râ vÒ cÊu tróc ®Üa, c¸c ®o¹n m· trong Boot
Sector (Master Boot) còng nh- c¸ch thøc DOS tæ chøc, qu¶n lý
cïng nhí vµ tæ chøc thi hµnh mét File kh¶ thi nh- thÕ nµo.
8
®å ¸n tèt nghiÖp
II. §Üa - Tæ chøc th«ng tin trªn ®Üa.
1. CÊu tróc vËt lý.
C¸c lo¹i ®Üa (®Üa cøng vµ ®Üa mÒm) ®Òu l-u tr÷ th«ng tin dùa
trªn nguyªn t¾c tõ ho¸: §Çu tõ ®äc-ghi sÏ tõ ho¸ c¸c phÇn tö cùc
nhá trªn bÒ mÆt ®Üa. D÷ liÖu trªn ®Üa ®-îc ghi theo nguyªn t¾c rêi
r¹c (digital), nghÜa lµ sÏ mang gi¸ trÞ 1 hoÆc 0. §Ó cã thÓ tæ chøc
th«ng tin trªn ®Üa, ®Üa ph¶i ®-îc ®Þa chØ ho¸. Nguyªn t¾c ®Þa chØ
ho¸ dùa trªn c¸c kh¸i niÖm sau ®©y:
a. Side:
§ã lµ mÆt ®Üa, ®èi víi ®Üa mÒm cã hai mÆt ®Üa, ®èi víi ®Üa
cøng cã thÓ cã nhiÒu mÆt ®Üa. §Ó lµm viÖc víi mçi mÆt ®Üa cã
mét ®Çu tõ t-¬ng øng, v× thÕ ®«i khi ng-êi ta cßn gäi lµ Header.
Side ®-îc ®¸nh sè lÇn l-ît b¾t ®Çu tõ 0, ch¼ng h¹n ®èi víi ®Üa
mÒm, mÆt trªn lµ mÆt 0, mÆt d-íi lµ mÆt 1, ®èi víi ®Üa cøng còng
t-¬ng tù nh- vËy sÏ ®-îc ®¸nh sè lµ 0,1,2,3...
b. Track:
Lµ c¸c vßng trßn ®ång t©m trªn mÆt ®Üa, n¬i tËp trung c¸c
phÇn tö tõ ho¸ trªn bÒ mÆt ®Üa ®Ó l-u tr÷ th«ng tin. C¸c track ®¸nh
sè tõ bªn ngoµi vµo trong, b¾t ®Çu tõ 0.
c. Cylinder:
Mét bé c¸c track cïng thø tù trªn mäi mÆt ®Üa ®-îc tham
chiÕu ®Õn nh- mét phÇn tö duy nhÊt, ®ã lµ Cylinder. Sè hiÖu cña
Cylinder chÝnh lµ sè hiÖu cña c¸c track trong Cylinder ®ã.
d. Sector:
Bé ®iÒu khiÓn ®Üa th-êng ®-îc thiÕt kÕ ®Ó cã thÓ ®äc vµ ghi
mçi lÇn chØ tõng ph©n ®o¹n cña track, mçi ph©n ®o¹n nµy gäi lµ
mét sector, d-íi hÖ ®iÒu hµnh DOS, dung l-îng mét sector lµ 512
9
®å ¸n tèt nghiÖp
byte. C¸c sector trªn track ®-îc ®¸nh ®Þa chØ, th«ng th-êng hiÖn
nay ng-êi ta sö dông ph-¬ng ph¸p ®¸nh sè sector mÒm, nghÜa lµ
m· ho¸ ®Þa chØ cña sector vµ g¾n vµo phÇn ®Çu cña sector ®ã.
Ngoµi kh¸i niÖm Sector, DOS cßn ®-a ra kh¸i niÖm Cluster,
nh»m môc ®Ých qu¶n lý ®Üa ®-îc tèt h¬n. Cluster bao gåm tËp hîp
c¸c Sector, lµ ®¬n vÞ mµ DOS dïng ®Ó ph©n bæ khi l-u tr÷ c¸c file
trªn ®Üa. Tuú dung l-îng ®Üa mµ sè l-îng Sector trªn mét Cluster
cã thÓ lµ 1, 2 (®èi víi ®Üa mÒm) hoÆc 4, 8, 16 (®èi víi ®Üa cøng).
2. CÊu tróc logic:
§èi víi mäi lo¹i ®Üa, DOS ®Òu tæ chøc ®Üa thµnh hai phÇn:
PhÇn hÖ thèng vµ phÇn d÷ liÖu. PhÇn hÖ thèng bao gåm ba phÇn
con: Boot Sector, b¶ng FAT (File Alocation Table) vµ Root
Directory. §èi víi ®Üa cøng, DOS cho phÐp chia thµnh nhiÒu phÇn
kh¸c nhau, cho nªn cßn cã mét cÊu tróc ®Æc biÖt kh¸c lµ Partition
Table.
Sau ®©y chóng ta ®Ò cËp tíi tõng phÇn mét:
a. Boot Sector.
§èi víi ®Üa mÒm, Boot Sector chiÕm trªn Sector 1, Side 0,
Cylinder 0. §èi víi ®Üa cøng, vÞ trÝ trªn dµnh cho b¶ng Partition,
cßn Boot Sector chiÕm sector ®Çu tiªn trªn c¸c æ ®Üa logÝc.
Khi khëi ®éng m¸y, Boot Sector ®-îc ®äc vµo ®Þa chØ 0:
7C00h vµ ®-îc trao quyÒn ®iÒu khiÓn. §o¹n m· trong Boot Sector
cã c¸c nhiÖm vô nh- sau:
- Thay l¹i b¶ng tham sè ®Üa mÒm (ng¾t 1Eh).
- §Þnh vÞ vµ ®äc Sector ®Çu tiªn cña Root vµo ®Þa chØ 0:0500h
- Dß t×m, ®äc c¸c file hÖ thèng nÕu cã vµ trao quyÒn ®iÒu
khiÓn cho chóng.
10
®å ¸n tèt nghiÖp
Ngoµi ra, Boot Sector cßn chøa mét b¶ng tham sè quan träng
®Õn cÊu tróc ®Üa, b¶ng tham sè nµy b¾t ®Çu t¹i offset 0Bh cña Boot
Sector, cô thÓ cÊu tróc nµy nh- sau:
11
®å ¸n tèt nghiÖp
Offset Siz
e
Néi
dung
Gi¶i thÝch
+0h
3 JMP
xxxx
LÖnh nh¶y ®Õn ®Çu ®o¹n m· Boot.
Tªn cña hÖ thèng ®· format ®Üa.
+3h
8
Start of BPB----------------(Bios Parameter Block)
+0Bh 2 SectSiz Sè byte trong mét Sector.
+0Dh 1 ClustSiz Sè Sector trong mét Cluter.
+0Eh 2 ResSecs Sè l-îng Sector dµnh riªng (tr-íc
FAT).
+10h
+11h
1 FatCnt
Sè b¶ng FAT.
2 RootSiz Sè ®Çu vµo tèi ®a cho Root (32
byte cho mçi ®Çu vµo).
+13h
2 TotSecs Tæng sè sector trªn ®Üa (hoÆc
Partition) trong tr-êng hîp dung
l-îng < 32MB.
+15h
+16h
1 Media
Media descriptor ®Üa (gièng nh-
byte ®Çu b¶ng FAT).
2 FatSize Sè l-îng Sector cho mçi b¶ng
FAT.
End of BPB-----------------
+18h
2 TrkSecs Sè l-îng Sector trªn mét track.
+1Ah 2 HeadCnt Sè l-îng ®Çu ®äc ghi.
+1Ch 2 HidnSec Sè sector dÊu mÆt (®-îc dïng
trong cÊu tróc Partition).
+1Eh
§Çu ®o¹n m· trong Boot Sector.
12
®å ¸n tèt nghiÖp
Trªn ®©y lµ b¶ng tham sè ®Üa khi format ®Üa b»ng DOS c¸c
Version tr-íc ®©y. Tõ DOS Version 4.0 trë ®i, cã mét sù më réng
®Ó cã thÓ qu¶n lý ®-îc c¸c ®Üa cã dung l-îng lín h¬n 32MB, sù
më réng nµy b¾t ®Çu tõ offset +1Ch ®Ó gi÷ nguyªn c¸c cÊu tróc
tr-íc ®ã. PhÇn më réng thªm cã cÊu tróc nh- sau:
13
®å ¸n tèt nghiÖp
Offse Size Néi dung
t
Gi¶i thÝch
+1Ch 4 HidnSec Sè Sector dÊu mÆt (®· ®-îc ®iÒu
chØnh lªn 32 bit).
+20h
+24h
4 TotSec
1 PhsDsk
Tæng sè Sector trªn ®Üa khi gi¸ trÞ ë
offset +13h b»ng 0.
Sè ®Üa vËt lý (0: ®Üa mÒm, 80: ®Üa
cøng 1, 81: ®Üa cøng 2).
+25h
+26h
1 Resever
1
dµnh riªng.
Ký hiÖu nhËn diÖn cña DOS
Version x.xx
+27h
4 Serial
Lµ sè nhÞ ph©n 32 bit cho biÕt Serial
Number.
+2Bh B Volume Volume label
+36h
8
Lo¹i b¶ng FAT 12 hay 16 bit.
Th«ng tin nµy dµnh riªng cña DOS.
+3Eh
§Çu ®o¹n m· ch-¬ng tr×nh.
PhÇn m· trong Boot Sector sÏ ®-îc ph©n tÝch mét c¸ch chi tiÕt
trong phÇn sau nµy.
b. FAT (File Alocation Table).
B¶ng FAT lµ vïng th«ng tin ®Æc biÖt trong phÇn hÖ thèng,
dïng ®Ó l-u tr¹ng th¸i c¸c Cluster trªn ®Üa, qua ®ã DOS cã thÓ
qu¶n lý ®-îc sù ph©n bè File.
C¸ch tham chiÕu ®Õn mét ®Þa chØ trªn ®Üa th«ng qua sè hiÖu
Side, Cylinder, Sector lµ c¸ch lµm cña ng¾t 13h cña BIOS vµ còng
14
®å ¸n tèt nghiÖp
lµ c¸ch lµm cña bé ®iÒu khiÓn ®Üa. Ngoµi c¸ch tham chiÕu trªn,
DOS ®-a ra mét c¸ch tham chiÕu kh¸c chØ theo mét th«ng sè: ®ã
lµ sè hiÖu Sector. C¸c Sector ®-îc ®¸nh sè b¾t ®Çu tõ 0 mét c¸ch
tuÇn tù tõ Sector 1, Track 0, Side 0 cho ®Õn hÕt sè Sector trªn
Track nµy, råi chuyÓn sang Sector 1, Track 0, Side 1,... TÊt c¶ c¸c
Sector cña mét Cylinder sÏ ®-îc ®¸nh sè tuÇn tù tr-íc khi DOS
chuyÓn sang Track kÕ tiÕp. C¸ch ®¸nh sè nµy gäi lµ ®¸nh sè
Sector logic, vµ ®-îc DOS sö dông cho c¸c t¸c vô cña m×nh.
Kh¸i niÖm Cluster chØ dïng ®Ó ph©n bæ ®Üa ®Ó l-u tr÷ File,
cho nªn chØ b¾t ®Çu ®¸nh sè Cluster tõ nh÷ng Sector ®Çu tiªn cña
phÇn d÷ liÖu (phÇn ngay sau Root). Sè hiÖu ®Çu tiªn ®Ó ®¸nh sè
Cluster lµ 2, nh»m môc ®Ých thèng nhÊt trong c¸ch qu¶n lý th«ng
tin trong b¶ng FAT.
Néi dung cña FAT:
Mçi Cluster trªn ®Üa ®-îc DOS qu¶n lý b»ng mét entry, hai
entry ®Çu tiªn dïng ®Ó chøa th«ng tin nhËn d¹ng ®Üa, ®ã lµ lý do
Cluster ®-îc ®¸nh sè b¾t ®Çu tõ 2. Entry 2 chøa th«ng tin cña
Cluster 1, Entry 3 chøa th«ng tin cña Cluster 2,... Gi¸ trÞ cña
entry trong b¶ng FAT cã ý nghÜa nh- sau:
Gi¸ trÞ
ý nghÜa
0
Cluster cßn trèng, cã thÓ ph©n bæ ®-îc
(0)002-(F)FE Cluster ®ang chøa d÷ liÖu c¶ mét File nµo ®ã,
F
gi¸ trÞ cña nã lµ sè Cluster kÕ tiÕp trong
Chain.
(F)FF0-(F)FF Dµnh riªng, kh«ng dïng
6
(F)FF7
Cluster háng
15
®å ¸n tèt nghiÖp
(F)FF8-(F)FF Lµ Cluster cuèi cïng cña Chain.
F
§èi víi ®Üa mÒm vµ ®Üa cøng cã dung l-îng nhá, DOS sö
dông b¶ng FAT-12, nghÜa lµ sö dông 12 bit (1,5 byte) cho mét
entry. §èi víi c¸c ®Üa cøng cã dung l-îng lín, DOS sö dông b¶ng
FAT-16, nghÜa lµ sö dông 2 byte cho mét entry. C¸ch ®Þnh vÞ trªn
hai b¶ng FAT nµy nh- sau:
- §èi víi FAT-16: V× mçi entry chiÕm 2 byte, nªn vÞ trÝ cña
Cluster tiÕp theo b»ng gi¸ trÞ cña Cluster hiÖn thêi nh©n víi 2.
- §èi víi FAT-12: V× mçi entry chiÕm 1,5 byte, nªn vÞ trÝ cña
Cluster tiÕp theo b»ng gi¸ trÞ cña Cluster hiÖn thêi nh©n víi 1,5.
Gi¸ trÞ cô thÓ lµ 12 bit thÊp nÕu sè thø tù sè Cluster lµ ch½n, ng-îc
l¹i lµ 12 bit cao trong word t¹i vÞ trÝ cña Cluster tiÕp theo ®ã.
§o¹n ch-¬ng tr×nh sau ®©y minh häa c¸ch ®Þnh vÞ b¶ng FAT.
Vµo: SI : Sè Cluster ®-a vµo.
BiÕn FAT_type l-u lo¹i b¶ng FAT, nÕu bit 2 = 1 th× FAT
lµ 16 bit.
Ra: DX : Sè Cluster tiÕp theo.
16
®å ¸n tèt nghiÖp
Locate_Cluster proc
mov
test
je
ax,3
FAT_type,4
FAT_12
ax
inc
FAT_12:
mul
si
shr
ax,1
mov
mov
test
jne
mov
test
bx,ax
dx,FAT_buff[bx]
FAT_type,4
FAT_16
cl,4
si,1
je
Chan
shr
dx,cl ; LÎ th× lÊy 12 bit cao
Chan:
and
dh,0F ; Ch½n th× lÊy 12 bit thÊp
FAT_16:
ret
Locate_Cluster endp
Mét vÝ dô vÒ phÇn ®Çu cña b¶ng FAT:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0f
0 1 2 3 4 5 6 7 8 9 a b c d e
0 F F F F 0 0 0 0 0 0 0 0 F F 0 0
0 8 F F F 3 0 4 0 5 0 6 0 F F 8 0
1 0 0 0 0 0 0 F F F F B 0 F F F F
0 9 0 A 0 B 0 F F F F 9 2 F F F F
17
®å ¸n tèt nghiÖp
Mçi entry trong b¶ng FAT nµy chiÕm 2 byte (FAT 16bit), 2
entry ®Çu tiªn cña b¶ng FAT nµy lµ gi¸ trÞ nhËn d¹ng ®Üa
(FFF8-FFFF), gi¸ trÞ cña Cluster 2 trá tíi Cluster 3, gi¸ trÞ cña
Cluster 3 l¹i trá tíi Cluster 4, ... cho ®Õn khi Cluster 6 cã gi¸ trÞ
FFFF, nghÜa lµ kÕt thóc File.
c. Root Directory.
Root Directory cßn ®-îc gäi lµ th- môc gèc, n»m ngay sau
FAT. Nã cã nhiÖm vô l-u gi÷ c¸c th«ng tin th- môc cña c¸c File
trªn ®Üa. Mçi File ®-îc ®Æc tr-ng bëi entry (®Çu vµo) trong Root
Director, mçi entry chiÕm 32 byte l-u gi÷ c¸c th«ng tin sau ®©y:
Offset KÝch th-íc
Néi dung
Tªn file ®-îc canh tr¸i
PhÇn më réng ®-îc canh tr¸i
Thuéc tÝnh file
+0h
+8h
8
3
+0Bh
+0Ch
+16h
1
0Ah
2
Dµnh riªng
Thêi gian t¹o lËp hay cËp nhËt lÇn
cuèi.
+18h
+1Ah
+1Ch
2
2
4
Ngµy th¸ng t¹o lËp hay cËp nhËt
lÇn cuèi.
Sè Cluster b¾t ®Çu cña file (trong
FAT).
KÝch th-íc file
Byte thuéc tÝnh cã ý nghÜa nh- sau:
7 6 5 4 3 2 1 0
=1: File chØ ®äc (Read Only)
=1: File Èn (Hidden)
18
®å ¸n tèt nghiÖp
=1: File hÖ thèng (System)
=1: Volume Label
=1: Sub Directory
=1: File ch-a ®-îc backup (thuéc tÝnh archive)
Ký tù ®Çu tiªn phÇn tªn file cã ý nghÜa nh- sau:
0
Entry cßn trèng, ch-a dïng
. (dÊu
chÊm)
DÊu hiÖu dµnh riªng cho DOS, dïng trong
cÊu tróc th- môc con
0E5h
Ký tù sigma nµy th«ng b¸o cho DOS biÕt
entry cña file nµy ®· bÞ xo¸.
Mét ký tù Entry nµy ®ang l-u gi÷ th«ng tin vÒ mét file
kh¸c nµo ®ã.
19
®å ¸n tèt nghiÖp
d. Partition Table.
Partition table cßn ®-îc gäi lµ Master Boot, l-u tr÷ t¹i Side 0,
Cylinder 0, Sector 1 trªn ®Üa cøng. T¹i ®©y, ngoµi b¶ng Partition
(b¶ng ph©n ch-¬ng), cßn cã mét ®o¹n m· ®-îc trao quyÒn ®iÒu
khiÓn sau qu¸ tr×nh POST t-¬ng tù nh- ®èi víi Boot Sector trªn
®Üa mÒm. §o¹n m· nµy nh»m x¸c ®Þnh Partition nµo lµ ho¹t ®éng
®Ó ®äc Boot Sector cña Partition ®ã vµo 0:7C00 vµ trao quyÒn ®iÒu
khiÓn cho ®o¹n m· cña Boot Sector ®ã.
Partition Table b¾t ®Çu t¹i offset 1BEh, mçi Partition ®-îc
®Æc tr-ng b»ng mét entry 16 byte:
Offse Siz
Néi dung
t
e
+0
+1
+2
1 Cê hiÖu boot. 0= kh«ng active, 80h=active
1 Sè hiÖu cña Header b¾t ®Çu
2 Sec-Cyl: Sè hiÖu Sector-Cylinder b¾t ®Çu cña
Partition
+4
1 M· hÖ thèng: 0=unknown, 1=DOS FAT-12,4=DOS
FAT-16,...
+5
+6
1 Sè hiÖu cña Header kÕt thóc
2 Sec-Cyl: Sè hiÖu Sector-Cylinder kÕt thóc cña
Partition
+8
4 low-high: Sè Sector b¾t ®Çu t-¬ng ®èi
+0Ch 4 low-high: Tæng sè Sector trªn Partition
+10h
§Çu vµo cña mét Partition kh¸c, kÕt thóc b¶ng
Partition ph¶i lµ ch÷ ký cña hÖ ®iÒu hµnh: 0AA55h
20
®å ¸n tèt nghiÖp
3. C¸c t¸c vô truy xuÊt ®Üa.
a. Møc BIOS.
C¸c t¸c vô truy xuÊt ®Üa ë møc BIOS sö dông c¸ch tham chiÕu
®Þa chØ trªn ®Üa theo Cylinder, Side vµ Sector. C¸c chøc n¨ng nµy
®-îc thùc hiÖn th«ng qua ng¾t 13h, víi tõng chøc n¨ng con trong
thanh ghi AH. C¸c phôc vô c¨n b¶n nhÊt ®-îc m« t¶ nh- sau:
21
®å ¸n tèt nghiÖp
a1. Phôc vô 0: Reset ®Üa:
Vµo:
AH = 0
DL = Sè hiÖu ®Üa vËt lý (0-®Üa A, 1-®Üa B, ..., 80h-®Üa
cøng 1, 81h-®Üacøng 2,...)
Ra:
Thanh ghi AH chøa tr¹ng th¸i ®Üa (xem phôc vô 1)
Chøc n¨ng nµy dïng ®Ó reset l¹i ®Üa sau mét t¸c vô gÆp lçi.
Phôc vô nµy kh«ng t¸c ®éng lªn ®Üa, thay vµo ®ã nã buéc c¸c tr×nh
hç trî ®Üa cña ROM-BIOS ph¶i b¾t ®Çu l¹i tõ ®Çu trong lÇn truy
cËp ®Üa kÕ tiÕp b»ng c¸ch canh l¹i ®Çu ®äc/ghi cña æ ®Üa (®Þnh vÞ
®Çu ®äc t¹i track 0).
a2. Phôc vô 1: LÊy tr¹ng th¸i ®Üa.
Phôc vô 1 tr¶ vÒ tr¹ng th¸i ®Üa trong 8 bit cña thanh ghi AH.
Tr¹ng th¸i ®-îc duy tr× sau mçi thao t¸c ®Üa (®äc, ghi, kiÓm tra,
format). Nhê vËy c¸c tr×nh xö lý lçi cã thÓ lµm viÖc hoµn toµn ®éc
lËp víi c¸c tr×nh thao t¸c ®Üa. §iÒu nµy rÊt cã Ých nÕu chóng ta sö
dông DOS hay ng«n ng÷ lËp tr×nh ®Ó ®iÒu khiÓn ®Üa.
Vµo:
AH = 1
DL = Sè hiÖu ®Üa vËt lý (0-®Üa A, 1-®Üa B, ..., 80h-®Üa
cøng 1, 81h-®Üa cøng 2,...)
Ra:
AH chøa tr¹ng th¸i ®Üa.
Gi¸ trÞ
(hex)
ý nghÜa
00
Thµnh c«ng
22
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Tìm hiểu Virus và cách phòng chống", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- do_an_tim_hieu_virus_va_cach_phong_chong.doc