(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 . ) 1