(Iz knigi: Bezrukow N.N., Kompx$ternaq wirusologiq,
Kiew, US|, 1991; napisano do sozdaniq Win95, po\tomu
wopros kodirowki dlinnyh im@n ne rassmotren).
Prilovenie 4
NEKOTORYE SWEDENIQ
O FAJLOWOJ SISTEME MS DOS
Su]estwu$t dwa osnownyh tipa diskow, ispolxzuemyh w
MS DOS: gibkie diski (diskety) i vestkie diski (win`estery).
W dalxnej[em my budem rassmatriwatx preimu]estwenno diske*
ty, poskolxku otli`iq w organizacii informacii mevdu diske'
tami i win`esterami nezna`itelxny i kasa$tsq w osnownom koli-
`estwennyh harakteristik. Wpro`em, koli`estwennye harakteri-
stiki otli`a$tsq i dlq raznyh tipow disket (5- i 3-d$jmowyh,
odno- i dwuhstoronnih i pr.). Po\tomu dlq upro]eniq izlove-
niq dalee wezde budet predpolagatxsq disketa 360K (2 storony po
40 trekow, 9 sektorow na trek).
Informaciq zapisywaetsq na fiksirowannoe `islo koncent-
ri`eskih okruvnostej, nazywaemyh trekami ili Dorovkami, iw
kotorye movet bytx wystawlena magnitnaq golowka. Ih koli`e-
stwo zawisit ot tipa diskowoda i diskety. Oby`naq 360K pqti-
d$jmowaq disketa (DS/DD) rass`itana na zapisx 40 trekow na
kavdoj storone. Treki numeru$tsq, na`inaq s nulq, pri`em trek
O raspoloven blive k wne[nemu kra$ diska (imeet naibolx[ij
radius), a trek 39 - k wnutrennemu otwersti$ diskety.
Ime$tsq diskety i drugoj emkosti. Tak, diskety DS/QD
(720K) rass`itany dlq zapisi 80 trekow (0-79). Opyt pokazal,
`to bolx[instwo disket DS/DD movno uspe[no razme`atx na 80
dorovek w ispolxzowatx kak DS/QD bez sniveniq nadevnosti za-
pisi Informacii, Krome togo, diskowod movet westi zapisx na
40 i bolee star[ie dorovki (do 43) ili na 80-83. W `astnosti 41
dorovka `asto ispolxzuetsq dlq "za]ity ot kopirowaniq* -
`astx informacii razme]aetsq na nej i propadaet pri oby`nom
kopirowanii. Wpro`em, ime$tsq specialxnye programmy
(SoruPRS, CopyWrite), pozwolq$]ie obhoditx prostej[u$ reali-
zaci$ takoj za]ity za s`et kopirowaniq "wsego Podrqd". Wuto-
wye wirusy Takve inogda ispolxzu$t 40 dorovku dlq hraneniq
swoego hjosta.
Kavdyj trek razdelen na sektory, kotorye qwlq$tsq edini-
cami s`itywaniq i zapisi informacii na disk. L$baq operaciq
`teniq ili zapisi w kone`nom s`ete swoditsq k `teni$ ili zapi-
si opredelennogo `isla sektorow. Na odnom treke dlq oby`noj
diskety raspolaga$tsq dewqtx sektorow. Kavdyj sektor oby`no
sodervit 612 bajtow. Operacionnaq sistema wydelqet fajlam
edinicy diskowogo prostranstwa, nazywaemye klasterami. Dlq
oby`nyh dwuhstoronnih disket 360 K (DS/DD) klaster sostoit qz
dwuh sektorow i imeet razmer 1024 bajta (1K). Dave esli razmer
fajla menx[e 1K, operacionnaq sistema wydelqet fajlu celyj
klaster. Takim obrazom, klaster qwlqetsq minimalxnoj edini-
cej raspredeleniq diskowogo prostranstwa, `to priwodit k potere
zna`itelxnogo koli`estwa sektorow w "hwostah" fajlow. Sleduet
otmetitx, `to `em menx[e razmer klastera, tem bolee optimalxno
ispolxzuetsq diskowoe prostranstwo. Naprimer, pri perehode na
oby`nom 20M win`estere ot standartnogo klastera razmerom 2K
k umenx[ennomu razmerom 1K uweli`iwaetsq poleznaq emkostx
382
win`estera po`ti na 20% pri prakti`eski neizmennoj skorosti
wwoda-wywoda.
Koli`estwo sektorow, kotoroe movno zapisatx na disketu, za-
wisit ot ka`estwa diskowoda. Oby`nye diskowody pozwolq$t za-
pisywatx do 10 sektorow na trek (format 10 sektorow:40 tre-
kow - 400K i 10 sektorow:80 trekow - 800K), a diskowody po-
wy[ennogo ka`estwa - 17 sektorow na trek (dlq disket HD emko-
stx$ 1,2M ispolxzuetsq razmetka 80 dorovek po 15 sektorow).
Sleduet otmetitx, `to esli razmetitx disketu DS/DD (DS/QD) w
formate HD, to posle zapisi informacii oby`no ee nelxzq pro-
`itatx.
Hotq disketa imeet formu diska, operacionnaq sistema ras-
smatriwaet ee kak posledowatelxnostx sektorow ot nulewogo do
maksimalxnogo. Poslednij zawisit ot emkosti diskety. Pri
\tom perwye 12 sektorow (0-11) sodervat uprawlq$]ie bloki
MS DOS dlq l$bogo tipa diska. Sleduet otmetitx, `to razmery
uprawlq$]ih blokow na diskete (FAT i kataloga) priwedeny dlq
diskety 360K i mogut otli`atxsq ot standartnyh: ih razmer hra-
nitsq w but-sektore i ne qwlqetsq fiksirowannym. Dalxnej[ee
sodervimoe diska zawisit ot togo, qwlqetsq li on sistemnym ili
net. Dlq oby`nogo diska sektora, na`inaq s 12, sodervat dannye.
Dlq sistemnogo diska sektora s 12-go zanqty fajlami
IBMBIO.COM i IBMDOS.COM (IO.SYS i MSDOS.SYS). |ti fajly
qwlq$tsq skrytymi i ne widny komandoj DIR. ~toby rassmot-
retx ih, movno wospolxzowatxsq utilitami (Norton Commander,
PCTools i t.d.). Sistemu s fajlami IBMBIO.COM i
IBMDOS.COM prawilxnee nazywatx ne MS DOS, a PC DOS, po-
skolxku ona qwlqetsq wersiej MS DOS, rasprostranqemoj firmoj
IBM. Hotq wersii funkcionalxno \kwiwalentny, razmery bolx-
[instwa fajlow w nih otli`a$tsq. Na sistemnoj diskete fajl
IBMBIO.COM (IO.SYS) dolven raspolagatxsq perwym. Srazu za
nim dolven sledowatx fajl IBMDOS.COM (MSDOS.SYS).
Pomimo IBMBIO.COM i IBMDOS.COM, na sistemnom diske
sodervitsq fajl COMMAND.SOM (komandnyj processor), razmer
kotorogo dlq MS DOS wersii 3.3 sostawlqet 25276 bajtow, a dlq
PC DOS wersii 3.3 - 25307 bajtow. |ta programma obespe`iwaet
obrabotku wwodimyh komand i qwlqetsq naibolee `asto ispolxzue-
moj komponentoj MS DOS. Po\tomu ona qwlqetsq izl$blennoj
mi[enx$ dlq ataki fajlowymi wirusami. Disketa, soderva]aq
ukazannye tri fajla, qwlqetsq minimalxnoj konfiguraciej ope-
racionnoj sistemy MS DOS, i ee udobno ispolxzowatx w ka`estwe
drozofily dlq butowyh wirusow. Priwodimye dalee primery
orientirowany w osnownom na ukazannu$ konfiguraci$ (ris.1):
====== A: =====
Name Size Date Time
Ibmbio com 22100 3-17-87 12:00p
Ibmdos com 30159 3-17-87 12:00p
command com 25307 3-17-87 12:00p
Ris.1. Fragment paneli Norton Commander
s katalogom diskety s minimalxnoj DOS.
383
0 BOOT
1 FAT
2 FAT
3 Kopiq FAT
4 Kopiq FAT
5 ROOT
...
11 ROOT
12 IO.SYS
a
PC Tools Deluxe R4.30 Vol Label=None
-----Disk Mapping Service-----
Path=A:\*.*
Entire disk mapped 78% free space
Double sided
Track 1 1 2 2 3 3 3
0 5 0 5 0 5 0 5 9
Bhhhhhhrrr..............................
Fhhhhhhrrr..............................
Side 0 Fhhhhhhrr...............................
Dhhhhhhrr...............................
---- -Dhhhhhrrr...............................
Dhhhhhrrr...............................
Side 1 hhhhhhrrr...............................
hhhhhhrrr...............................
hhhhhhrrr...............................
Explanation of Codes
W Boot record h hidden
F File Alloc Table r Read Only
D Directory x Bad Cluster
"F" to map files. ESC to return.
6
Ris.2. Raspolovenie sektorow na diskete
384
Struktura uprawlq$]ej informacii wa diskete. Perwye 12
sektorow (0-11) sodervat tri uprawlq$]ih tablicy: zagruz`ik
(BOOT), tablicu raspredeleniq fajlow (FAT) i kornewoj katalog
(root directory). Shema raspoloveniq \tih sektorow priwedena na
ris.2. Karta, wydawaemaq takimi utilitami, kak PC Tools
(ris.26) i Norton Utilities 4.5, pozwolqet legko opredelitx nali-
`ie, a w slu`ae Norton Utilities i prosmotretx sodervimoe sboj-
nyh klasterow. Esli sodervimoe sektorow klastera, otme`ennogo
kak sbojnyj, `itaetsq normalxno, to skoree wsego \tot klaster
qwlqetsq psewdosbojnym i, wozmovno, sozdan butowym wirusom
dlq hraneniq swoego hwosta.
But-sektor. Perwyj sektor diskety ili razdela win`estera
nazywaetsq but-sektorom i sodervit swedeniq o formate diske-
ty, a takve korotku$ programmu - zagruz`ik. Struktura but-
sektora pokazana na ris.3.
Programma-zagruz`ik nahodit na diske i zagruvaet w ope-
ratiwnu$ pamqtx sistemnyj fajl IO.SYS (ili IBMBIO.SYS).
Esli fajl ne najden, to wydaetsq soob]enie "Non-System disk or-
disk error. Replace and strike any key when ready" ("Nesistemnyj
disk ili o[ibka pri s`itywanii. Zamenite i navmite l$bu$
klawi[u") i process zagruzki prekra]aetsq. |ta situaciq oby`-
no woznikaet, kogda na kompx$tere s win`esterom pyta$tsq pere-
zagruzitxsq pri ustanowlennoj i za]elknutoj diskete w disko-
wode A. Esli disketa zaravena butowym wirusom, to rri wypolne-
nii \toj rekomendacii win`ester takve budet zaraven. Po\tomu
w otwet na dannoe soob]enie sleduet wsegda navimatx klawi]u
Reset. Dave esli disketa byla wakcinirowana s pomo]x$ buto-
woj wakciny VitaminB, perezagruzka ne qwlqetsq garantiej pred-
otwra]eniq zaraveniq (nekotorye butowye wirusy uspewa$t k
\tomu momentu zarazitx win`ester). W to ve wremq, esli wakcina
wydala kakie-to preduprevda$]ie soob]eniq, to neobhodimo
obqzatelxno proweritx sodervimoe but-sektora diskety, s koto-
roj proizo[la popytka zagruzki. Esli programma zagruzki na
diskete powrevdena, to sistema zawisaet. Pri \tom miga$]ij
kursor raspoloven w lewom werhnem uglu \krana.
Wtoroj komponentoj but-sektora qwlqetsq tablica paramet-
row. Ona sodervit wavnu$ informaci$ o strukture diskety ili
logi`eskogo diska (polovenie i razmer FAT, koli`estwo sektorow
w klastere i dr.). |ta struktura ustanawliwaetsq pri razmetke i
qwlqetsq stati`eskoj, t.e. w dalxnej[em ne menqetsq. Esli tabli-
ca parametrow ispor`ena, to informaci$ s diska pro`itatx
nelxzq i pri zagruzke sistema zawisaet. Kak widno iz ris.3, swe-
deniq o programme, s pomo]x$ kotoroj wypolnqlosx formatiro-
wanie, raspoloveny s 4 bajta.
Na ris.4 pokazan but-sektor dwuhstoronnej diskety dwojnoj
plotnosti (2D-2S), soderva]ej 40 trekow i razme`ennoj pro-
grammoj Format w MS DOS 3.3. But-sektor win`estera otli`aetsq
tolxko tablicej parametrow. Programma-zagruz`ik ostaetsq neiz-
mennoj. Drugie wersii operacionnoj sistemy ime$t neskolxko
otli`a$]ijsq ot priwedennogo zagruz`ik, odnako ego struktura
neizmenna: w konce sektora wsegda imeetsq tekst diagnosti`esko-
go soob]eniq i imena sistemnyh fajlow (na ris.4 - IO.SYS i
385
0 1 2 3 4 5 6 7 8 9 A W S D E F
-----------------------------------------------------------------
| | | | | | | | | | | | | | | | |
00|JMP xx xx|'I' 'B' 'M' '3' '.' '3'|SectSiz|CS |ResSecs|
10|Fat|RootSiz|TotSecs|Med|FatSize|TrkSecs|HeadCnt|HidnSec| |
20| kod zagruz`ika (w konce zagruz`ika wsegda raspoloveny diagno-|
30| stm`eskie soob]eniq i imena sistemnyh fajlow) |
...
1F0| | 55 AA|
-----------------------------------------------------------------
Ris.3. Struktura but-sektora:
Ispolxzuemye obozna`eniq:
JMP - NEAR-perehod na na`alo zagruz`ika;
8 bajtow, soderva]ih proizwolxnu$
informaci$, oby`no zanosimu$ programmoj formatirowaniq diska;
SectSiz - koli`estwo bajtow w odnom
sektore;
CS (ClustSiz) - koli`estwo sektorow w odnom klastere;
ResSecs -> koli`estwo rezerwnyh sekto-
row (pered FAT);
Fat (FatCnt) " koli`estwo FAT;
RootSiz - maks.`islo 32-bajtowyh \lementow kornewogo
kataloga;
TotSecs - ob]ee `islo sektorow na nositele (razdele diska);
Med (Media) - deskriptor nosi-
telq (to te, `to 1-j bajt FAT);
PatSize - koli`estwo sektorow w odnoj FAT;
TrkSecs - koli`estwo sektorow w odnom treke;
HeadCnt - `islo golowok `teniq/zapisi (powerhnostej);
HidnSec - koli`estwo sprqtannyh sektorow;
dalee - razmer formatirowannoj porcii kornewogo sektora.
386
MSDOS.SYS; dlq PC DOS ispolxzu$tsq imena GWMW#.SOM w
DBMDOS.COM). W konce but-sektor wsegda sodervit dwa identifi-
kacionnyh bajta : 55h AAh.
Sleduet obratitx wnimanie, `to perwye tri bajta standart-
nogo but-sektora MS DOS 3.3 sodervat EW3490. Nesowpadenie
\tih bajtow pri prosmotre but-sektora dolvno srazu nastoravi-
watx, t.k. movet swidetelxstwowatx o zaravenii wirusam.
(ne wy`itywaem - pro]e polu`itx istinn. damp)
000: EB34904D53444F53 332E330002020100 .4.MSDOS3.3.....
010: 027000D002FD0200 0900020000000000 .r..............
020: 0000000000000000 0000000000000012 ................
030: 000000000100FA33 C08EDOBC007C1607 ....... .... I..
040: WW780036S5371E56 1653BF2B7CB90BOO .X.6.7.V.S.+I...
050: FCAC26803D007403 268A05AA8AC4E2F1 ..&.=.t.&.......
060: 061F894702C7072B 7CFBCD137267A010 ...G...+|...rg..
070: 7C98F726167C0306 1C7C03060E7CA33F |..&J...|.. .T.?
080: 7CA3377CB82000F7.26117C8B1EOB7C03 |.7T. ..&.1...I.
090: C348F7F30106377C BB0005A13F7CE89F .N....7|....?|..
OAO: OOW80102E8W30072 198BFBB90BOOBED6 .......g........
OWO: 7DF3A6750D8D7F20 BEE17DB90BOOF3A6 }..u... ..}.....
OSO: 7418BE777DE86AOO 32E4CD165E1F8F04 t..w}.j.2..."...
ODO: 8F4402CD19BEC07D EBEBA11C0533D2F7 .0....L.... .3..
OEO: 360B7CFECOA23C7C A1377GA33D7CBBOO b.|.,.<1.71.=|..
OFO: 07A1377SE84900A1 187S2A063W7S4038 ..7|L...|*.;|@8
100: 063S7S7303AOZS7S 50E84E005872S628 .<|s.. Po\tomu
pri interpretacii dwuhbajtowyh polej dlq polu`eniq prawilx-
13*
387
FAT area FAT format
Sector 1 in 1st copy of FAT Cluster 2; hex
3 4 5 6 7 8 9 10 11 12 13 14
15 16 17 18 19 20 21 22 23 EOF 25 26
27 28 29 30 31 32 33 34 35 36 37 38
39 40 41 42 43 44 45 46 47 48 49 50
51 52 53 EOF 55 56 57 58 59 60 61 62
63 64 65 66 67 68 69 70 71 72 73 74
75 76 77 78 EOF 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0
Press Enter to continue
1 Help 2 Hex 3 Text 4 Dir 5 FAT 6 Partn 7 8 Choose 9 Undo 10 QuitNU
Ris.5. Poluinterpretirowannyj damp FAT minimalxnoj DOS,
polu`ennyj s pomo]x$ Norton Utilities
388
wogo zna`eniq sleduet perestawitx bajty mestami. Naprimer,, po-
le SectSiz sodervit "00 02", t.e. ego zna`enie rawno 0200h - 512
bajt.
Tablica raspredeleniq fajlow (FAT). FAT predstawlqet so-
boj kartu diskowogo prostranstwa, raspredelqemogo pod fajly, i
sodervit po tri [estnadcatiri`nye cifry dlq kavdogo ime$-
]egosq na diske klastera. Katalog (sm. nive) sodervit nomer
perwogo klastera, zanqtogo fajlom; w swo$ o`eredx, w kavdom
\lemente sodervitsq ukazatelx na sledu$]ij klaster fajla. Es-
li klaster qwlqetsq poslednim klasterom fajla, to on .sodervit
FFF.
S pomo]x$ FAT MS DOS otsleviwaet posledowatelxnostx
klasterow, prinadlevaw[ih fajlu, nezawisimo ot fakti`eskogo
raspoloveniq ih na diske. Dlq nezanqtyh klasterow ukazatelx
imeet wid 000. Esli klaster powrevden i MS DOS ne movet s`i-
tatx ili zapisatx w nego informaci$, to takoj klaster sodervit
FF7 (priznak sbojnogo klastera), i MS DOS ne ispolxzuet otme-
`ennye takim obrazom klastery pri raspredelenii.
Tablica raspredeleniq' fajlow po suti qwlqetsq odnoswqznym
spiskom, kotoryj DOS ispolxzuet dlq otsleviwaniq fizi`eskogo
raspoloveniq Dannyh na diske i dlq poiska swobodnoj pamqti
dlq nowyh fajlow. Slowo .po sme]eni$ lAh w \lemente oglawle-
niq sodervit nomer perwogo klastera w cepo`ke raspredeleniq
fajla. Sootwetstwu$]ij \lement FAT libo ukazywaet konec ce-
po`ki, libo ssylaetsq na sledu$]ij \lement.
FAT movet sostoqtx iz 12-bitowyh ili 16-bitowyh \lemen-
tow. 12-bitowye \lementy ispolxzu$tsq dlq disket, 16-bitowye
\lementy FAT byli wwedeny, na`inaq s DOS 3.0, kogda woznikla
Neobhodimostx uprawleniq 20M win`esterom. Na disketah 360K
pod FAT otwedeny `etyre sektora - teku]ee sostoqnie FAT w
sektorah 1,2 i ego kopiq w sektorah 3,4. Diskety 720K sodervat
osnownu$ FAT w sektorah 1,2,3 i ee kopi$ w sektorah 4,5,6.
Poskolxku 12-bitowye \lementy trudno analizirowatx na
oby`nom dampe, dlq analiza FAT celesoobrazno ispolxzowatx
Ndrton iJtilities, wyda$]u$ razobrannyj na 12-bitowye \lementy
(poquinterpretirowannyj) damp (ris.5).
Na risunke ot`etliwo widny tri cepo`ki klasterow dlq treh
ime$]ihsq w minimalxnoj DOS fajlow. Esli disk byl predwa-
ritelxno svat, t.e. fajly raspoloveny drug za drugom i zanima-
$t posledowatelxnye sektora (`to imeet mesto dlq diskety s mi-
nimalxnoj DOS), cepo`ki klasterow w FAT wyrovda$tsq w wozra-
sta$]u$ posledowatelxnostx nomerow i pri minimalxnom nawy-
ke razru[ennu$ FAT movno wosstanowitx wru`nu$. Po\tomu re-
gulqrnaq defragmentaciq fajlow na diske s pomo]x$ utility
SpeeDisk ili analogi`noj qwlqetsq priemom, zna`itelxno powy-
[a$]im nadevnostx hraneniq informacii. |tu operaci$ reko-
menduetsq prowoditx kavdyj raz w konce rabo`ego dnq.
Powrevdenie FAT qwlqetsq tqveloj awariej, i pri otsutst-
wii rezerwnyh kopij oby`no wedet k zna`itelxnoj potere infor-
macii. W nekotoryh slu`aqh powrevdennoj okazywaetsq tolxko
perwaq iz dwuh kopij FAT. W \tom slu`ae movno perepisatx uce-
lew[u$ kopi$ s pomo]x$ DiskEdit.
389
0 1 2 3 4 5 6 7 8 9 A B C D E F
-----------------------------------------------------------------
| | | | | | | | | | | | | | | | |
00| name | ext |atr| rezerw |
-----------------------------------------------------------------
| | | | | | | | | | | | | | | | |
10| rezerw | time | date |ClstrNo| razmer fajla |
-----------------------------------------------------------------
| | | | | | | | | | | | | | | | |
Ris.6. Struktura |lementa kataloga
Granicy Polej otme`eny dwojnoj Liniej. Ispolxzu$tsq sledu$]ie
obozna`enij (w kwadratnyh skobkah ukazany Sme]enij w 16-ri`noj
sisteme s`isleniq i dlina):
name - imq fajla [+0;8];
ext - ras[irenie imeni [+8;3];
atr - atribut fajla [+OBh;1];
rezerw [+OCh;OAh];
time - wremq sozdaniq [+18h,2);
date - data sozdaniq [+18h;2],
CIstrNo - nomer na`alxnogo klastera dannyh
(swqzx s FAT) [+1Ah;2]
razmer fajla - razmer fajla w bajtah [+1Ch;4].
390
Pomimo staraniq `astq ili wsej, FAT, wozmovny melkie
o[ibke tipa sra]iwaniq cepo`ek klasterow (kogda odin i tot ve
[mjver prinadlevit dwum fajlam srazu) ili zacikliwaniq dere-
wa katalogow. Ukazannye o[ibki movno ustranitx s pomo]x$
utilit DiskEdit i NDD. Wosstanowlenie obleg`aetsq pri nali`ii
rezerwnoj kopii FAT, polu`ennoj utilitoj IMAGE, kotoru$ re-
komenduetsq wkl$`atx w AUTOEXEC.BAT.
Kornewoj katalog. MS DOS hranit informaci$ o fajlah w
katalogah, kotorye obrazu$t drewowidnu$ strukturu. Kornewoj
katalog hranit swedeniq o wseh soderva]ihsq w nem fajlah i
podkatalogah. On zanimaet semx sektorow, na`inaq s sektora 5.
Kavdyj \lement kornewogo kataloga zanimaet 32 bajta. O`ewid-
no, w odnom sektore movet razmestitxsq 16 \lementow. |to ozna-
`aet, `to w semi sektorah kornewogo kataloga mogut bytx opisany
do 112 fajlow i podkatalogow. Struktura kataloga pokazana na
ris.6. Kak widno iz risunka, imq fajla sostoit ne bolee `em iz
wosxmi simwolow, dopolnennyh sprawa probelami. Za imenem sle-
duet fakulxtatiwnoe trehsimwolxnae^ras[irsnie. Crq dline me-
nee treh simwolow ono takve dopolnqetsq probelami.
Bajt atributow pozwolqet MS DOS identificirowatx statue
fajla, po kotoromu podrazumewaetsq nekotoraq (s to`ki zreniq
za]ity ot wirusow - ill$zornaq) stepenx za]ity ot nesankcio-
nirowannyh dejstwij polxzowatelq. Ne wse bity bajta atributow
ispolxzu$tsq. Perwyj (naimenee zna`a]ij) bit pokazywaet, `to
\to skrytyj fajl (ne wydaetsq komandoj DIR). Wtoroj bit ozna-
`aet, `to \to sistemnyj fajl, w otli`ie ot polxzowatelxskih
fajlow.
Nomer perwogo klastera pozwolqet opredelitx mesto w FAT,
zanimaemoe fajlom. Esli fajl qwlqetsq katalogom (podkatalo-
gom), to on imeet ustanowlennyj bit 4 bajta atributow.
Damp glawnogo kataloga dlq minimalxnoj konfiguracii
priweden na ris.7.
000: 494F202020202020 5359532700000000 10 SYS'....
010: 0000000000000100 21100200875WOOOO ........G.... S..
020: 4D53444F53202020 5359532700000000 MSDOS SYS'....
030: 0000000000000100 21101900W0750000 .........>.. ..u..
040: 434F4D4D414E4420 434F4D2000000000 COMMAND COW ....
050: 0000000000000100 F80E3700BC620000 ..........7..b..
060: 0000000000000000 0000000000000000 ................
*** posledu$]ie stroki identi`ny predx]u]im ***
Ris.7. Damp glawnogo kataloga dlq minimalxnoj 90S.
Pole atributow fajla. Pole atributow fajla pozwolqet pri-
swaiwatx fajlu opredelennyj "status" otnositelxno teh ili
inyh operacij. Ne wse bity bajta atributow ispolxzu$tsq. Bity
numeru$tsq s nulq. Naimenee zna`a]ij (nulewoj) bit sootwetst-
wuet atributu READ ONLY, zatem idut bity, sootwetstwu$]ie
atributam HIDDEN i SYSTEM. Atribut READ ONLY ("tolxko
`tenie") zapre]aet wypolnenie operacij udaleniq i modifika-
cii dannogo fajla. Esli ustanowlen perwyj bit (atribut
391
HIDDEN), to dannyj fajl qwlqetsq tak nazywaemym skrytym
fajlom (ne wydaetsq komandoj DIR). Wtoroj bit ozna`aet, `to
\to sistemnyj fajl, w otli`ie ot polxzowatelxskih fajlow. Is-
polxzuemye bity bajta atributow pokazany na ris.8.
7 6 5 4 3 2 1 0
a d v s h r
| | | | | | bit *** maska ***
| | | | | \--0:1=tolxko `tenie (READ ONLY) (Olh)
| | | | \----1:1=sprqtannyj (HIDDEN) (02h)
| | | \------2:1=sistemnyj (SYSTEM) (04h)
| | \--------3:1=metka toma (08h)
| \----------4:1=\lement podoglawleniq (10h)
\------------5:1=kopiq fajla NE arhiwirowalasx(20h)
Ris.8. Format polq atributow fajla.
Kak widno iz ris.8, metka toma predstawlqet soboj prosto
fajl so specialxnym atributom. Odna iz funkcij DOS (21h.43h)
pozwolqet wirusu "mol`a" izmenqtx l$boj bit bajta atributow,
wkl$`aq "tolxko `tenie", `to qwlqetsq qwnym defektom realiza-
cii \toj funkcii, su]estwenno obleg`a$]im viznx sozdatelqm
wirusow. Wpro`em, pri otsutstwii strani`noj organizacii pamq-
ti i revima superwizora (kak w staroj, dobroj sisteme 360/370),
radikalxnyh mer po isprawleni$ \toj o[ibki, po suti, i pred-
lovitx nelxzq.
Polq daty i wremeni
F E D C B A 9 8 7 6 5 4 3 2 1 0
| `as | minuta | sek/2 |
\-------/ \---------/ \-------/
| | |
| | \------- 2-sekundnye edinicy(0-31)
| \------------------ minuta (0-63)
\----------------------------- `as (0-31)
F E D C B A 9 8 7 6 5 4 3 2 1 0
| god | mesqc | denx |
\-----------/ \-----/ \-------/
| | |
| | \------- denx (0-31)
| \---------------- mesqc (0-15)
\---------------------------- god - 1980 (0-127)
Ris.9. Format polej daty i wremeni.
Sleduet obratitx wnimanie na to, `to nesowpadenie sistem
predstawleniq `asow, sekund i minut s dwoi`noj sistemoj priwo-
dit k nali`i$ nekotorogo "zapasa" w formate polq daty, `to po-
zwolqet ustanawliwatx "absurdnoe" wremq tipa 31 ` 63 min 62 s
(ris.9). Poskolxku ni odna iz standartnyh komand MS DOS ne
wydaet koli`estwo sekund wo wremeni obrazowaniq fajla, to zna-
392
nomer na`alxnogo klastera
|lement katalog
nomer na`alxnogo klastera
|
-------------------------------------v------------
| | | | | | | | | | | | |...| | | | | | | | | | |
|E X A M P L E C O M a|...|tim|dat|08 | dlina |
|
|
v
00 01 02 03 04 05 06 07 08 09 OA 0B OC 0D OE OF
00 ID FF 03->04->05->FF 00 00 09->0A->0B->15 00 00 00 00
|
/-----------------------/
v
10 00 00 00 00 00 16->17->19 F7 1A->1B->FF 00 00 00 00
| ^
\-------/
Ris.10. Primer \lementa kataloga i cepo`ki \lementow FAT.
393
`enie "62 sekundy" polq sekund movet ispolxzowatxsq (i ispolx-
zuetsq) wirusami dlq otmetki zaravennyh fajlow.
Analogi`no movet ispolxzowatxsq pole daty. God sozdaniq
fajla hranitsq w IBM PC w wide ostatka posle wy`itaniq 1980
(daty sozdaniq dannogo kompx$tera). Nekotorye wirusy Ispolx-
zu$t \tot fakt dlq pometki zaravennyh fajlow: pri zaravenii
oni dobawlq$t 100 k godu sozdaniq fajla. |to prira]enie ne
widno "newooruvennym glazom", poskolxku kak komanda DIR, tak
i bolx[instwo obolo`ek wydaet tolxko dwe poslednie cifry go-
da. Odin iz wirusow ustanawliwaet dlq zaravennyh fajlow 13 me-
sqc.
Primer-\lementa kataloga pokazan na ris.10. Kak widno iz
risunka, fajl EXAMPLE. SOM zanimaet 10 klasterow. Perwyj
klaster - \to qlaster OS, poslednij klaster - IB. Cepo`ka
klasterow -* 8,!?>OA,OB,1S,I. Compress iz paketa PC Shell ili l$boj drugoj analo-
gi`noj utilitoj.
Tablica razdelow diska -Partition Table (tolxko dlq win-
`estera). MS DOS razli`aet, dwa tipa diskow: fizi`eskie i logi-
`eskie. Fizi`eskij disk - \to ustanowlennoe ustrojstwo (win-
`ester). Oby`no na kompx$tere ustanowlen odin win`ester, hotq
ih movet bytx dwa ili bolx[e. |tot fizi`eskij disk movet
bytx razdelen na neskolxko logi`eskih diskow (razdelow). Swede-
niq o polovenii logi`eskih diskow na fizi`eskom sodervatsq w
specialxnoj tablice, oby`no nazywaemoj Partition Table (tablica
razdelow), kotoraq qwlqetsq sostawnoj `astx tak nazywaemogo
glawnogo but-sektora win`estera - Master Boot Record- (MBR).
Nazwanie ^Glawnyj but-sektor" (bukwalxnyj perewod termina
Master Boot Record - glawnaq zagruzo`naq zapisx) swqzano s tem,
`to MBR perwym zagruvaetsq w operatiwnu$ pamqtx, esli zagruz-
ka operacionnoj sistemy wypolnqetsq s win`estera.
MBR wsegda zanimaet perwyj sektor win`estera (cilindr O,
storona O, sektor 1). Kak widno iz ris.11 i 12, on sostoit iz wy-
polnqemogo koda i tablicy razdelow. Poslednqq raspolovena w
konce sektora i sostoit iz `etyreh 16-bajtowyh \lementow. In-
formaciq w tablicu razdelow zanositsq utilitoj Fdisk ili ana-
logi`noj ej nesistemnoj utilitoj. Prosmatriwatx tablicu raz-
delow udobnee wsego s pomo]x$ DiskEditor iz 5 wersii utilit
Nortona ili NU iz wersii 4.5. Nali`ie tablicy razdelow pozwo-
lqet ne tolxko^imetx neskolxko logi`eskih diskow, no i neskolx-
ko operacionnyh sistem na odnom diske (naprimer, MS DOS i
XENIX ili neskolxko raznyh wersij MS DOS).
Wo wremq zagruzki ROM-BIOS zagruvaet MBR i peredaet up-
rawlenie na ee kod. |tot kod s`itywaet tablicu razdelow, `toby
opredelitx razdel, pome`ennyj kak zagruvaemyj (Bootable). Za-
tem w pamqtx s`itywaetsq but-sektor iz \togo razdela i emu pere-
daetsq uprawlenie. Ots$da sleduet, `to, zaravaq win`ester, wirus
movet zamenqtx ne tolxko but-sektor, no i MBR. I dejstwitelx-
no, su]estwuet neskolxko wirusow, ispolxzu$]ih \tot sposob.
Powrevdenie MBR wedet k tomu, `to logi`eskie diski stano-
wqtsq nedostupnymi. W rezulxtate sistema zawisaet pri zagruzke.
Oby`no MBR movno wosstanowitx s pomo]x$ Norton Disk Doctor,
odnako nadevnee imetx rezerwnu$ kopi$ perwyh sektorow kavdo-
go logi`eskogo diska na specialxnoj diskete. W slu`ae powrevde-
niq MBR pri zagruzke \kran displeq ostaetsq pustym s kurso-
rom, miga$]im w lewom werhnem uglu \krana. Wosstanowlenie
tablicy w slu`ae tqvelyh powrevdenij i otsutstwiq \talona
movno prowesti wru`nu$, polxzuqsx [ablonom, priwedennym na
ris.11 <12. Osobenno udobno ispolxzowatx dlq \toj celi utilitu
Disk Editor iz 5 wersii utilit Nortona.
396
0 1 2 3 4 5 6 7 8 9 A W S D E F
-----------------------------------------------------------------
| | | | | | | | | | | | | | | | |
10| |Bot|HdS|
20|Sec|Cyl|Sys|HdE|Sec|Cyl|mlad[. |star[. |mlad[. |star[. | |
Ris.12. Struktura \lementa razdela
(polq pokazany w teh poloveniqh, w kotoryh oni raspoloveny w dampe).
Bot - flag zagruzki ( 0 - ne zagruvaemyj, 80h - zagruvaemyj) [+0,1];
HctS - na`alo razdela: nomer golowki [+1,1];
- na`alo razdela: sektor/cilindr but-sektora[+2,2];
Sys - kod sistemy: 0 - neizw., 1 - DOS 12-bit FAT, 4 - 16-bit[+4,1];
HdE - konec razdela: nomer golowki [+5,1];
- konec razdela: sektor/cilindr poslednego sektora[+6,2];
- otnositelxnyj nomer na`alxnogo sektora[+8,4];
- razmer (`islo sektorow)[+OCh,4];
dalee (so sme]eniem 10h) sleduet na`alo sledu$]ego \lementa razdela (ili OAA55h
dlq poslednego \lementa). W tablice razdelow ispolxzuetsq absol$tnaq adresaciq.
Zna`eniq cilindra i sektora zanima$t 10 i 6 bit sootwetstwenno:
F E D C B A 9 8 7 6 5 4 3 2 1 0
|c c c c c c c c C C|s s s s s S|
\--/
|
\---- bity, obozna`ennye bolx[imi bukwami S,
qwlq$tsq star[imi,
t.e. pri de[ifrowke nomera cilindra oni
pripisywa$tsq slewa, a ne sprawa.
397
Zna`enie ^otnositelxnogo sektora" po sme]eni$ 8 w kavdom
razdele \kwiwalentno. cilindru, dorovke i sektoru na`alxnogo
adresa razdela. Otnositelxnyj sektor 0 sowpadaet s cilindrom O,
dorovkoj 0, sektorom G. Otnositelxnyj nomer sektora uweli`i-
waetsq sna`ala po kavdomu sektoru na golowke, zatem po kavdoj
dorovke i, nakonec, po kavdomu cilindru.
Primenima formula:
otn_sek = (#cil * sek_na_dor * dor_na_cil)
+ (#Gol * sek_na_dor) + (#Sek-1)
Razdely win`estera oby`no na`ina$tsq e `etnogo cilindra,
za iskl$`eniem perwogo razdela, kotoryj inogda razme]aetsq s
cilindra 9, dorovki Q, sektora 2 (poskolxku sektor' I - \to
glawnyj but-sektor), a `a]e weet> na^wwawetsq so sledu$]ej do*
rovki, ostawlqq ostalxnye sektora nulewoj dorovki pustymi.
Poslednee owstoqtelxstwo ispolxzuetsq rqdom butowyh wirusow
dlq hraqewiq tam swoego hwosta, po\tomu sodervimoe ukazannyh
sektorow rekomenduetsq periodi`eski prosmatriwatx.
Sleduet otmetitx, `to pomimo butowyh wirusow > ukazannyh
sektorah mogut hranitx informaci$ drugie programmy, napri-
mer Advanced Disk Manager. W \tom slu`ae zaravenie win`estera
butowym wirusom, istolxzu$]qm te ve sektora- wedet k potere so-
otwetstwu$]ej informacii. Po\tomu wsegda, neobhodimo imetx
rezerwnu$ kopi$ ih sodervimogo na specialxnoj diskete. Na
\toj ve diskete sleduet hranitx kopaj MBR, butsektorow wseh
logi`eskih diskow, kopi$ CMOS i drugu$ poleznu$ dlq wossta-
nowleniq sistemnyh blokow informaci$.
398
K nachalu razdela / To beginning of section
Na glawnuju stranicu / To main page
Sinonimy kl`uchewyh slow: bezr_fs
Counter: .
Po pros`be komandy poddervki ot www.hotlog.ru:
http://www.hotlog.ru/cgi-bin/hotlog/buttons.cgi
(Wystawit` kak: / To expose as:
http://aravidze.narod.ru/bezr_fs.htm ,
http://geocities.datacellar.net/sekirin1/bezr_fs.zip .
)