Slovnφk pojm∙

Adresß°ovΘ viry - Cluster viruses

Assembler
Programovacφ jazyk nejni₧Üφ ·rovn∞. Program je zapisovßn p°φmo pomocφ instrukcφ procesoru (jejich zkratek) a m∙₧e tak maximßln∞ vyu₧φt vlastnostφ poΦφtaΦe. P°evß₧nß v∞tÜina poΦφtaΦov²ch vir∙ je vytvo°ena prßv∞ v tomto jazyce. Termφn assembler takΘ oznaΦuje p°ekladaΦ zmφn∞nΘho jazyka do k≤du proveditelnΘho procesorem.

Autoexec.bat - soubor
Textov² soubor obsahujφcφ seznam p°φkaz∙, kterΘ operaΦnφ systΘm provede automaticky p°i svΘm startu. Lze jej mimo jinΘ vyu₧φt k automatickΘmu spouÜt∞nφ antivirovΘ kontroly, stejn∞ jako k automatickΘmu zavirovßnφ poΦφtaΦe hned po startu (v p°φpad∞ napadenφ programu, kter² je z tohoto souboru spuÜt∞n).

BIOS - "Basic Input Output System"
Pod operaΦnφm systΘmem (MS-DOS, Windows 95, Windows NT) se nachßzφ jeÜt∞ jedna vrstva program∙ tvo°φcφch tzv. BIOS. Tyto programy jsou tak d∙le₧itΘ, ₧e jsou ulo₧eny v pam∞ti ROM. BIOS transformuje po₧adavky od program∙ na sekvence pro °φzenφ hardwaru (disky, tiskßrny, monitory...).

Boot viry - Boot viruses

CARO (Computer Anti-Virus Researchers Organisation)
Organizace CARO vznikla v roce 1991 a zalo₧ili ji pßnovΘ Fridrik Skulason (Virus Bulletin, Alan Solomon (S&S International) a Vesselin Bontchev (Univerzita v Hanburgu). Rozhodly se toti₧, ₧e pojmenovßnφ nov²ch vir∙ bude mφt jistß pravidla. Zßkladnφ pojmenovßnφ by m∞lo vypadat takto:
Family_Name.Group_Name.Major_Variant.Minor_Variant[:Modifier]
Musejφ b²t pou₧φvany pouze alfanumerickΘ znaky [A-Za-z0-9_$%&!'`#-], mezery se majφ vytvß°et podtr₧φtkem (_). Nap°.: Dark_Avenger. JednotlivΘ Φßsti pojmenovßnφ viru musφ b²t dlouhΘ maximßln∞ 20 znak∙. Nesmφ b²t pou₧φvßny nßzvy firem, jmΘna atd..... Nakonec si vÜak viry pojmenovßvß ka₧d² jak chce (patrnΘ rozdφly jsou nap°φklad u programu AVP).

Cavity viruses - MezerovΘ viry

Cluster viruses - Adresß°ovΘ viry

CMOS
Pam∞t CMOS obsahuje velmi d∙le₧itΘ informace o periferiφch a Φßstech poΦφtaΦe. Jejφ obsah je zßlohovßn bateriφ. Virus m∙₧e ·daje v tΘto pam∞ti poÜkodit, a tak zablokovat start poΦφtaΦe. Obsah pam∞ti CMOS lze vÜak bez ztrßty dat obnovit.

Companion viruses - DoprovodnΘ viry

Config.sys - soubor
Textov² soubor obsahujφcφ konfiguraΦnφ pokyny pro operaΦnφ systΘm. Zde se takΘ nachßzejφ p°φkazy pro zavßd∞nφ pot°ebn²ch ovladaΦ∙. Config.sys mß podobn² ·Φel jako Autoexec.bat, kter² se vÜak zavßdφ po startu poΦφtaΦe pozd∞ji.

CRC - kontrolnφ souΦet
╚φselnß hodnota vypoΦφtanß podle danΘho algoritmu na zßklad∞ obsahu souboru (p°φpadn∞ libovoln²ch dat). P°φpadnß zm∞na v²chozφch dat se projevφ jin²m v²sledkem kontrolnφho souΦtu. Ve svΘ p∙vodnφ podob∞ se jednß o prost² souΦet vÜech bajt∙ souboru; tΘm∞° vÜechny programy vÜak pou₧φvajφ nejr∙zn∞jÜφ modifikace tohoto algoritmu s cφlem zv²Üit spolehlivost a snφ₧it napodobitelnost tohoto souΦtu. Kontrolnφ souΦty b²vajφ pou₧φvßny pro p°esnou identifikaci viru a jsou tΘ₧ d∙le₧itou souΦßstφ kontrol≤r∙ integrity.

CRC checker - Integrity checker - Kontrol≤r integrity

╚ervi - Worms

Debugger
Ladφcφ prost°edek (program) urΦen² k vyhledßvßnφ chyb p°i v²voji programu. Umo₧≥uje mimo jinΘ sledovat vykonßvßnφ programu po jednotliv²ch instrukcφch, co₧ jej Φinφ neoceniteln²m pomocnφkem p°i anal²ze poΦφtaΦov²ch vir∙. Mnoho vir∙ (p°esn∞ji jejich autor∙) je si tΘto slabiny v∞domo, proto pou₧φvajφ programovΘ konstrukce, kterΘ majφ takovΘ sledovßnφ (trasovßnφ) programu zkomplikovat.

Dekryptor
┌sek k≤du viru, kter² zajiÜ¥uje p°evedenφ zak≤dovanΘ Φßsti viru do p∙vodnφ, spustitelnΘ podoby. NejΦast∞ji se vyskytuje na zaΦßtku viru. M∙₧e, ale nemusφ mφt konstantnφ podobu v r∙zn²ch generacφch tΘho₧ viru.

DoprovodnΘ viry - Companion viruses

Dropper
Dropper je program, kter² byl navr₧en s cφlem instalovat virus do systΘmu. PodstatnΘ je, ₧e virus je v tomto programu obsa₧en tak, ₧e nem∙₧e b²t detekovßn virov²mi skenery. Jin²mi slovy, dropper nenφ program infikovan² virem a velmi Φasto jsou jako droppery pou₧φvßny trojskΘ kon∞. Dropper m∙₧e svou funkci splnit tφm, ₧e virus instaluje do pam∞ti a nebo p°φmo infikuje n∞jakou proveditelnou jednotku p°i instalaci viru.

EICAR (European Institute for Computer Anti-virus Research) a jejich "Standard Anti-Virus Test File"
Tento testovacφ soubor vede k nejednoduÜφ cest∞, jak zjistit, ₧e vßÜ oblφben² antivirus funguje opravdu tak, jak chcete. K Φemu to tedy je ? Pokud umφstφte nφ₧e uveden² k≤d do spustitelnΘho COM souboru a pak na n∞j pustφte vßÜ oblφben² antivirus, m∞l by vßm nahlßsit, ₧e jmenovan² soubor obsahuje k≤d "Standard Anti-Virus Test File". Pokud vßm n∞co takovΘho antivirus nahlßsφ (podobn∞ jako kdyby byl nalezen virus), m∙₧ete si b²t jisti, ₧e vßÜ antivirus je sprßvn∞ nastaven, a dokß₧e hledat viry. ProblΘm je vÜak v tom, zda vßÜ antivirus k≤d "Standard Anti-Virus Test File" znß. Testovacφ soubor vznikne, kdy₧ tento k≤d vlo₧φte do nov∞ zalo₧enΘho COM souboru. Pokud sprßvn∞ pracujete, dΘlka souboru by m∞la b²t 68 byt∙.
K≤d je:
 X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*


Emulace k≤du
Postup, p°i kterΘm nejsou jednotlivΘ instrukce programu provßd∞ny p°φmo procesorem, ale jsou zpracovnßvßny specißlnφm programem. Takto lze krom∞ jinΘho velmi bezpeΦn∞ sledovat provßd∞nφ k≤du a jeho vliv na poΦφtaΦ (s mo₧nostφ zabrßnit nebo zm∞nit provedenφ nevhodnΘ instrukce); toto nebezpeΦφ je ovÜem vykoupeno pom∞rn∞ znaΦn²m zpomalenφm takto emulovanΘho k≤du oproti p°irozenΘmu zpracovßnφ procesorem.

FaleÜn² poplach
Situace, kdy antivirov² program oznaΦφ zdrav² soubor Φi jinou oblast za napadenou virem. K tomu m∙₧e dojφt dφky nßhodnΘ podobnosti k≤du neÜkodnΘho programu s Φßstφ skuteΦnΘho viru; faleÜnΘ poplachy se vyskytujφ nap°φklad u program∙, kterΘ se nechovajφ (obdobn∞ jako viry) k systΘmu zcela korektn∞. Rozhodnutφ o tom, zda je soubor skuteΦn∞ napaden, nebo se jednß o faleÜn² poplach je nejlΘpe p°enechat odbornφk∙m. P°φliÜ vysokΘ procento faleÜn²ch poplach∙ m∙₧e jinak ·Φinn² antivir znehodnotit.

FAT (File Allocation Table)
Viz. kapitola "Disk a vÜe o n∞m" (dole ve slovnφku).

File viruses - SouborovΘ viry

Fronta instrukcφ procesoru (prefetch queue)
V dob∞ vykonßvßnφ jednΘ instrukce procesorem je n∞kolik nßsledujφcφch instrukcφ ji₧ naΦteno v procesoru, kde Φekajφ ve "front∞" na svΘ dokonΦenφ. Zm∞na t∞chto instrukcφ v operaΦnφ pam∞ti ji₧ nemß na jejich provßd∞nφ vliv, co₧ m∙₧e zp∙sobit na pohled nepochopitelnΘ chovßnφ programu. DΘlka tΘto fronty instrukcφ (tj. poΦet a velikost instrukcφ, kterΘ jsou v tΘto front∞ ulo₧eny) se u r∙zn²ch typ∙ procesor∙ liÜφ.

GenerickΘ viry - Generic viruses

Germ virus
Jako germ virus se oznaΦuje virus ve svΘ nultΘ generaci. Germ virus vznikß nap°φklad po jeho kompilaci ze zdrojovΘho k≤du (ASM) do spustitelnΘho tvaru (COM,EXE) (po vylΘΦenφ mß soubor dΘlku 0). Germem je t°eba i t°φbajtov² COM soubor napaden² virem testujφcφm dΘlku svΘ ob∞ti a kter² se normßln∞ takto krßtk²m soubor∙m vyh²bß. Obdobn∞ m∙₧e b²t germem i COM virus p°elo₧en² ze zdrojßku do EXE tvaru. Zde je to vÜak technicky dost obtφ₧nΘ odliÜit, zda se jednß o Dropper Φi Germ.

Hoax
Hoax je emailovß zprßva, kterß v∞tÜinou upozor≥uje na velmi nebezpeΦnΘ, ve skuteΦnosti neexistujφcφ viry. NezkuÜen² u₧ivatel poÜle tuto zprßvu dalÜφm lidem, aby je upozornil p°ed nebezpeΦφm (kterΘ ve skuteΦnosti neexistuje...). Je opravdu hroznΘ, ₧e se hoax n∞kdy Üφ°φ rychleji ne₧ skuteΦn² virus...

Identifikace viru
Identifikacφ viru se v∞tÜinou rozumφ spolehlivΘ rozpoznßnφ viru vΦetn∞ jeho p°esnΘho urΦenφ. Takovßto p°esnß identifikace mß v²znam pro u₧ivatele, kter² m∙₧e lΘpe zjistit na Φem je, tak pro vlastnφ antivir, kter² m∙₧e pom∞rn∞ bezpeΦn∞ provßd∞t dalÜφ akce, jako je nap°φklad lΘΦenφ.

Infiltrace

Instrukce
Instrukce jsou elementßrnφ p°φkazy pro prßci procesoru.

Integrity checker - Kontrol≤r integrity - CRC checker

Intended virus
Pokud ud∞lß autor ve svΘm novΘm viru programovou chybu (typick²m p°φkladem je Int 21 a Int 21h), rychle vypustφ novou opravenou verzi. Tato verze se pak nazφvß Intended. Pokud ud∞lß autor ve svΘm novΘm viru programovou chybu (typick²m p°φkladem je Int 21 a Int 21h), rychle vypustφ novou opravenou verzi. Tato verze se pak nazφvß Intended. Slovo intended rßd vyu₧φvß antivirus AVP.

In the Wild (ItW) - "viry v divoΦin∞"
Seznam In the Wild vytvß°φ asi 46 specialist∙ z celΘho sv∞ta. Do tohoto seznamu jsou zapisovßny viry, kterΘ se v jednotliv²ch oblastech sv∞ta nejvφce vyskytujφ (jsou hlßÜeny jednotliv²mi pozorovateli). Podle tohoto seznamu lze zjistit, jakΘ viry nßs mohou nejvφce ohrozit. In-the-Wild list lze najφt na adrese: http://www.wildlist.org/Wildlist/wildlist.html.

Kontrol≤r integrity - CRC checker - Integrity checker

Makro viry - Macro viruses

MezerovΘ viry - Cavity viruses

Metamorfnφ viry

MBR - Tabulka rozd∞lenφ disku - Partition Table - PaT
Viz. kapitola "Disk a vÜe o n∞m" (dole ve slovnφku).

Multipartitnφ viry - Multipartite viruses

Nerezidentnφ viry

"NeviditelnΘ" viry - Stealth viruses

OperaΦnφ systΘm (OS - operating system)
OperaΦnφ systΘm umo₧≥uje u₧ivateli komunikovat s poΦφtaΦem (kopφrovat, spouÜt∞t programyà). V operaΦnφm systΘmu MS-DOS jsou nejd∙le₧it∞jÜφ t°i soubory:

Overwriting viruses - P°episujφcφ viry

ParazitickΘ viry - Parasitic viruses

PaT - MBR - Tabulka rozd∞lenφ disku - Partition Table
Viz. kapitola "Disk a vÜe o n∞m" (dole ve slovnφku).

Partition Table - PaT - MBR - Tabulka rozd∞lenφ disku
Viz. kapitola "Disk a vÜe o n∞m" (dole ve slovnφku).

Polymorfnφ viry - Polymorphic viruses

P°episujφcφ viry - Overwriting viruses

Rezidentnφ viry

Retro viry

Scanner - Skener

Sekvence - Signatura - ╪et∞zec - String
Skupina bajt∙ vyskytujφcφch se v t∞lech vir∙, podle kter²ch je skener hledß.

Skener - Scanner

SouborovΘ viry - File viruses

Stealth viruses - "NeviditelnΘ" viry

Tabulka rozd∞lenφ disku - Partition Table - PaT - MBR
Viz. kapitola "Disk a vÜe o n∞m" (dole ve slovnφku).

Trasovßnφ
Stav, kdy je k≤d provßd∞n po jednotliv²ch strojov²ch instrukcφch, p°iΦem₧ po ka₧dΘ instrukci je mo₧no analyzovat jejφ vliv na stav poΦφtaΦe. Trasovßnφ programu lze provßd∞t ruΦn∞ (nap°. pomocφ debugeru), nebo automaticky (tak to d∞lajφ n∞kterΘ antiviry).

Trigger
Anglick² termφn pro spouÜt∞cφ podmφnku, jejφ₧ spln∞nφ mß za nßsledek provedenφ n∞jakΘ specißlnφ, Φasto ÜkodlivΘ, Φinnosti viru (do tΘ doby se vir sna₧il b²t co nejmΘn∞ nßpadn²). Typick²m p°φkladem takovΘ podmφnky je dosa₧enφ n∞jakΘho data.

TrojskΘ kon∞ - Trojan Horses

Tunelujφcφ viry

Viry - Viruses

Worms - ╚ervi

Zdrojov² text programu - "Zdrojßk"
V²chozφ tvar programu, kdy jsou jednotlivΘ po₧adovanΘ Φinnosti popsßny v textovΘ form∞ pomocφ smluven²ch konvencφ danΘho programovacφho jazyka. Zdrojov² text nem∙₧e b²t p°φmo spuÜt∞n. Nejprve musφ b²t p°ekladaΦem p°eveden do binßrnφ podoby.

P°eruÜenφ (Interrupt)

P°eruÜenφ
P°eruÜenφ je nßstroj, pomocφ kterΘho se dostane virus k prost°edk∙m BIOSu a DOSu. Bez t∞chto prost°edk∙ by se virus neum∞l mno₧it ani Ükodit.
P°eruÜenφm (Interrupt) nazveme hardwarov² signßl, kter² vede k p°eruÜenφ b∞hu programu vykonßvanΘho procesorem a p°esm∞rovßnφ b∞hu procesoru na program obsluhujφcφ p°eruÜenφ. Po ukonΦenφ tohoto programu nßsleduje obnovenφ p∙vodnφho stavu a pokraΦovßnφ p°eruÜenΘho programu.
P°eruÜenφ m∙₧eme rozd∞lit na p°eruÜenφ vyvolanΘ hardwarem (nemaskovatelnΘ signßlem NMI, maskovatelnΘ signßlem INTR) a softwarem (instrukce INT, chyba b∞hu programu). Softwarovß p°eruÜenφ jsou na ·rovni BIOSu, DOSu a u₧ivatelsk²ch program∙.
Viry pracujφ s p°eruÜenφmi vyvolan²mi instrukcφ INT (je jich 256, t.j. 0-255). P°i tomto p°eruÜenφ nßsleduje skok na mφsto, kde je obslu₧n² program. Adresa pro obslu₧n² program se nachßzφ v pam∞ti RAM, kde je tzv. tabulka p°eruÜovacφch vektor∙ (adres obslu₧n²ch program∙).
Tabulka zaΦφnß od adresy 0000:0000 a mß velikost 4*256 byt∙. Na 1 vektor (adresu) pot°ebujeme 4 byty (2 na segment a 2 na offset).

P°esm∞rovßnφ p°eruÜenφ (hook interrupt)
Jak vφme, p°eruÜenφ jsou ulo₧enΘ v tabulce, kterß je v pam∞ti RAM. Pokud zm∞nφme n∞kter² vektor (adresu) p°eruÜenφ v tabulce stane se toto: Po vykonßnφ p°φsluÜnΘho p°eruÜenφ bude nßsledovat odskok do jinΘ oblasti pam∞ti. Takto se m∙₧eme postarat o to, aby se na mφsto p∙vodnφho obslu₧nΘho programu vykonal nßÜ program a po skonΦenφ naÜeho programu nßsleduje skok na p∙vodnφ obslu₧n² program (hook interrupt).
Tohoto hojn∞ vyu₧φvajφ viry (ale i jinΘ rezidentnφ programy). Virus je ulo₧en² v pam∞ti a n∞kterΘ z p°eruÜenφ mß p°esm∞rovanΘ tak, ₧e ukazuje do t∞la viru. Jestli₧e n∞jakß Φinnost vyvolß p°eruÜenφ (nap°. prohlφ₧enφ, Φtenφ, zavßd∞nφ programu), dochßzφ k aktivaci viru a ten m∙₧e infikovat program (prohlφ₧en², Φten², zavßd∞n²) nebo zp∙sobit Ükodu.

N∞kterΘ d∙le₧itΘ p°eruÜenφ z pohledu vir∙:

INT 1 - Krokovacφ re₧im (Single-Step)
Jestli₧e je nastaven² p°φznak TF=1, po vykonßnφ ka₧dΘ instrukce programu se vyvolß ladφcφ program. Takto lze krokovat Φinnost viru. Dob°e napsanΘ viry majφ p°esm∞rovanΘ i toto p°eruÜenφ a tφm znemo₧nujou krokovßnφ svΘho k≤du.

INT 3 - Ladφcφ bod (Breakpoint Trap)
Pou₧φvß se spolu s p°eruÜenφm INT 1. Slou₧φ k zastavenφ b∞hu vykonßvanΘho programu a skoku na ladφcφ program. I toto p°eruÜenφ majφ n∞kterΘ viry p°esm∞rovanΘ, aby znesnadnili svoji anal²zu.

INT 25h
Slou₧φ k naΦφtßnφ sektor∙ z disku. Vy₧aduje vstupnΘ ·daje:

RegisterV²znam
AL╚φslo diskovΘho za°φzenφ (0=A, 1=B ...).
CXPoΦet sektor∙, kterΘ se majφ Φφst.
DXLogickΘ Φislo prvnΘho naΦφtanΘho sektoru.
DSSegmentovß adresa pam∞ti pro naΦφtanΘ ·daje.
BXOffsetovß adresa pam∞ti pro naΦφtanΘ ·daje.

Po ukonΦenφ p°eruÜenφ jsou v registrech v²stupnφ ·daje:

RegisterV²znam
CF=0╚tenφ bez chyb.
CF=1P°i p°enose doÜlo k chyb∞.
ALChybov² k≤d DOSu.
AHChybov² k≤d BIOSu.

P°i nßvrat∞ z INT 25h jsou zm∞n∞nΘ obsahy vÜech registr∙ krom∞ segmentov²ch registr∙ CS, DS, ES a SS.

INT 26h
Slou₧φ k zßpisu obsahu sektor∙ na urΦenΘ mφsto na disku. Mo₧nΘ chyby p°i tΘto Φinnosti:

DOS:
K≤dV²znam
00Pokus o zßpis na disketu chrßn∞nou proti zßpisu.
01NeplatnΘ Φφslo za°φzenφ.
02Jednotka nenφ p°ipravenß.
04Chyba parity (CRC error).
06Chyba p°i nastavovßnφ hlavy na stopu.
07Pro DOS neΦiteln² formßt.

BIOS:
K≤dV²znam
08Sektor nebyl nalezen.
0AhChyba p°i zßpisu.
0BhChyba p°i Φtenφ.
0ChJin² druh chyby.

Hodn∞ vir∙ se pokouÜφ infikovat programy na disket∞. Jestli₧e je disketa chrßn∞na proti zßpisu, je indikovßna chyba 00. Jestli₧e nenφ oÜet°enß, objevφ se hlßÜenφ: "Write protect error...". Takto lze Φasto objevit mΘn∞ kvalitnφ neznßm² virus. Dob°e napsan² virus mß tuto chybu oÜet°enou a hlßÜenφ se neobjevφ.

INT 27h
Toto p°eruÜenφ slou₧φ na uschovßnφ programu, kter² p°eruÜenφ vyvolal v pam∞ti (TSR programy). Vstup: V DX je relativnφ adresa prvΘho bytu volnΘ pam∞ti v programovΘm segment∞, t.j. v DX je adresa poslednφho bytu k≤du, kter² z∙stane rezidentnφ.
Takto se uchovßvajφ .COM programy. Kdy₧ jde o .EXE program, rezidentnφ Φßst k≤du musφ b²t na zaΦßtku programu a mß maximßln∞ 64 KB.

INT 21h
INT 21h pat°φ mezi nejv²znam∞jÜφ p°eruÜenφ, jeliko₧ poskytuje u₧ivatelovi slu₧by DOSu. Toto p°eruÜenφ p°esm∞ruje v∞tÜina rezidentnφch vir∙. Podle hodnoty vstupnφch ·daj∙ poskytuje u₧ivatelovi r∙znΘ funkce. Ka₧dß funkce mß po₧adovanΘ vstupy a dßvß jist² druh v²stup∙. V∞tÜinou v registru AH je Φφslo po₧adovanΘ funkce.
N∞kterΘ d∙le₧itΘ funkce sledovanΘ viry:


P°i aplikaci t∞chto funkcφ na program, je pro virus ideßlnφ situace pro napadnutφ danΘho programu, i kdy₧ se pracuje s diskem.
Funkci 3Fh kontrolujou tzv. neviditelnΘ viry (stealth viruses). Ty sledujou, co se ze souboru Φte. Jestli₧e se dojde na mφsto, kde je virus, naΦφtajφ se jinΘ ·daje a virus je neviditeln².
Funkci 4Eh slou₧φ na hledßnφ prvΘho specifikovanΘho souboru (FindFirst). Tuto funkci vyu₧φvajφ viry, kterΘ aktivn∞ vyhledßvajφ programy pro napadnutφ (*.COM, *.EXE apod.).
Funkce 4Fh slou₧φ na hledßnφ dalÜφho souboru (FindNext). Pomocφ tΘto funkce pokraΦuje prohledßvßnφ adresß°e v cykle, v∞tÜinou do doby, a₧ se najde nenapaden² soubor.
Funkce 57h je pro zm∞nu datumu a Φasu poslednφho zßpisu do souboru. Tuto funkci vyu₧φvajφ Üikovn∞jÜφ viry, aby po sob∞ zametli stopy. Postarajφ se o to, aby navzdory nyn∞jÜφmu zßpisu do souboru (p°i vklßdßnφ viru) z∙stal datum a Φas nezm∞n∞n².
P°i prßci ze soubory existujφ i jinΘ funkce, kterΘ pracujφ s tzv. °φdφcφmi bloky - File Control Block (FCB). Je to poz∙statek ze star²ch verzφch DOSu pro pot°eby kompatibility. Viry vyu₧φvajφ samoz°ejm∞ i tyto metody. K tomu slou₧φ funkce:


NeviditelnΘ viry se musφ postarat o to, aby se zobrazila p∙vodnφ dΘlka nenapadnutΘho programu a proto kontrolujφ i tyto funkce.

DalÜφ d∙le₧itΘ funkce:


Disk a vÜe o n∞m

Na pevnΘm disku nebo na disket∞ je ulo₧eno mnoho rozdφln²ch druh∙ ·daj∙. Tyto ·daje jsou ulo₧eny jist²m zp∙sobem, kter² je urΦen² fyzickou strukturou diskety (disku) a vlastnostmi operaΦnφho systΘmu. Mezi t∞mito ·daji m∙₧ou b²t ulo₧eny i viry.

Povrchy, stopy, cylindry
Pevn² disk tvo°φ n∞kolik ploten na sebou, v disket∞ se nachßzφ tato plotna pouze jedna. Na ka₧dΘ stran∞ t∞chto ploten se nachßzφ hlava, kterß Φte a zapisuje ·daje z danΘho povrchu plotny. Plotny se otßΦejφ a hlaviΦka se pohybuje ve sm∞ru st°ed-okraj plotny. Mφsto, kde se m∙₧ou zapisovat ·daje tvo°φ soust°ednΘ kru₧nice na plotn∞ (podobn∞ jako na gramofonovΘ desce).
Soust°ednΘ kru₧nice na povrchu plotny naz²vßme stopy (tracks). Stopy pod sebou na jednotliv²ch plotnßch vytvß°ejφ cylinder, vßlec. Stopy i cylindry jsou ΦφslovanΘ. Stopa 0 je vn∞jÜφ kru₧nice, poslednφ stopa je vnit°nφ kru₧nice.

Cylinder 0 je tvo°en² vÜemi stopami 0 na jednotliv²ch plotnßch (ve vÜech vrstvßch):

Stopy majφ p°φliÜ velkou kapacitu na to, aby se pracovalo p°φmo s nimi. Proto je ka₧dß stopa rozd∞lenß na menÜφ Φßsti - sektory.

Formßtovßnφ
Sektory na stop∞ musφ b²t ΦφslovanΘ. ╚φslovßnφ zaΦφnß od Φφsla 1. Po koupi pevnΘho disku (pokud ji₧ nenφ naformßtovßn) nemßme ₧ßdnΘ oΦφslovanΘ sektory. Proto se musφ disk p°ipravit na pou₧itφ p°i tzv. fyzickΘm nebo nφzko·rov≥ovΘm formßtovßnφ. P°i tomto formßtovßnφ se prochßzφ stopa za stopou. Ka₧d² sektor se otestuje fyzick²m zßpisem ·daj∙ (o data na disku ulo₧enß p°φjdeme). ZaΦßtek ka₧dΘho sektoru se oznaΦφ adresou a synchronizaΦnφm znakem na rozpoznßnφ adresy, vytvo°φ se toleranΦnφ mezery mezi sektory (gaps). Jestli₧e jsou nalezeny vadnΘ sektory, oznaΦφ se, aby nebyli pou₧φvanΘ (viz. tabulka FAT).
Jestli₧e je poÜkozena oblast adresy sektoru, dostßvßme hlßÜenφ: "Sector not found" a ·daje ze sektoru se nedajφ p°eΦφst. N∞kterΘ viry pou₧φvajφ nφzko·rov≥ovΘ formßtovßnφ celΘho disku nebo jen n∞kter²ch stop (nejlepÜφ je stopa 0, kde jsou ulo₧eny nejd∙le₧itejÜφ informace).
Nφzko·rov≥ovΘ formßtovßnφ nestaΦφ pro p°φpravu pevnΘho disku (op∞t zßle₧φ, zda ji₧ nenφ naformßtovßn od v²robce). Musφ se provΘst i tzv. logickΘ formßtovßnφ disku. P°i n∞m se vytvo°φ d∙le₧itΘ oblasti na disku. Disk se rozd∞lφ na systΘmovou oblast (mφsto pro boot sektor, FAT, a hlavnφ adresß°) a ·dajovou oblast (zde jsou naÜe programy atd.). Partition table ji₧ existuje (vytvo°i se programem FDISK, bez kterΘho nenφ logickΘ formßtovßnφ mo₧nΘ). Viry m∙₧eme najφt v systΘmovΘ (boot viry) i v ·dajovΘ oblasti (souborovΘ viry, makroviry...).
P°φkazem Format provedeme jen logickΘ formßtovßnφ pevnΘho disku. U diskety je to jinΘ: do verze 5.0 vykonßval Dos (p°esn∞ji p°φkaz Format) fyzickΘ i logickΘ formßtovßnφ diskety. U verze 5.0 a v²ÜÜe vykonßvß Format formßtovßnφ logickΘ a fyzickΘ formßtovßnφ lze docφlit parametrem /U.
V Dosu nenφ p°φkaz pro nφzko·rov≥ovΘ formßtovßnφ (naÜt∞stφ). Logick²m formßtovßnφm zlikvidujeme viry ulo₧enΘ v boot sektoru a viry souborovΘ. Nezbavφme se vÜak vir∙, ulo₧en²ch v Partition table (MBR). T∞ch se zbavφme dosovsk²m p°φkazem FDISK /MBR, kter² p°epφÜe zavad∞Φ v Partition tabulce obecn∞ platn²m k≤dem.

LogickΘ sektory
Jestli₧e pracujeme z diskem na nφzkΘ ·rovnφ (tzv. na ·rovni BIOSu), pou₧φvßme adresovßnφ mφsta na disku pomocφ Φφsla vßlce (cylinder), povrchu (hlava - head) a sektoru (sector). Jde o trojrozm∞rnΘ adresovßnφ. Pro Dos je tato adresace nepohodlnß a proto pou₧φvß jinou adresaci, jednorozm∞rnou - tzv. logickΘ sektorovßnφ. LogickΘ sektory zaΦφnajφ od 0 !.

Clustery (Cluster - Klastr)
Pokud chceme p°eΦφst z disku jeden byte stane se toto: Z disku se nep°eΦte pouze po₧adovan² byte, ale p°eΦte se cel² sektor, kde je tento byte ulo₧en². Sektor je nejmenÜφ skupina ·daj∙, s kterou disk pracuje. Pro pevn² disk je sektor p°φliÜ malΘ mno₧stvφ ·daj∙. Proto se zdru₧uje vφce sektor∙ a vytvß°ejφ se tzv. clustery (Φesky "klastry").
Pokud se na disku p°id∞luje mφsto souboru, p°id∞luje se po klastrech. Pevn² disk mß v∞tÜinou klastr velik² 4, 8, 16 KB. Pokud mßme klastr 8 KB, a chceme na disk ulo₧it soubor dlouh² 1 KB, z∙stane 7 KB nevyu₧ito (tzv. slack). Teoreticky m∙₧e b²t v tΘto meze°e ulo₧en virus.
Clustery jsou taky ΦφslovanΘ, ale Φφslovßnφ zaΦφnß od 2 (stopy od 0, sektory od 1). SystΘmovß oblast (boot sektor, FAT, hlavnφ adresß°) nenφ pod Φφslovßnφ klastr∙ zahrnutß.


Struktura dat na disku


Partition Table (Tabulka rozd∞lenφ disku) - jinak °eΦeno: PaT, MBR (Master Boot Record)
MS-DOS nßm poskytuje mo₧nost rozd∞lit pevn² disk na n∞kolik Φßstφ (partiφ - logickΘ disky). Tyto Φßsti se pak jevφ jako disky D: E: ... Rozd∞lenφ pevnΘho disku se provßdφ pomocφ programu Fdisk. Jen jedna Φßst disku m∙₧e b²t oznaΦena jako aktivnφ. Z tΘto Φßsti (partie) se nahrßvß operaΦnφ systΘm p°i startu poΦφtaΦe.
┌daje o rozd∞lenφ pevnΘho disku jsou ulo₧enΘ v prvnφm sektoru na pevnΘm disku, tvo°φ tzv. Partition Table (Partition tabulka, jinak MBR Φi PaT). PoÜkozenφm partition tabulky se m∙₧e stßt pro u₧ivatele disk nep°φstupn². Je jasnΘ, ₧e Φasto se v takovΘm p°φpad∞ jednß o poÜkozenφ virem.
Krom∞ partition tabulky se v partition sektoru nachßzφ i krßtk², tzv. zavßd∞cφ program. Tento program se spouÜtφ v₧dy po startu poΦφtaΦe (p°i tzv. bootovßnφ). Tento program skoΦφ na zavßd∞cφ program v boot sektoru aktivnφ partie. Mnoho vir∙ vyu₧φvß tuto oblast.

Boot sektor
Boot sektor se nachßzφ na zaΦßtku diskety. V p°φpad∞ pevnΘho disku je boot sektor na zaΦßtku dosovskΘ Φßsti pevnΘho disku.
V boot sektoru jsou ulo₧enΘ d∙le₧itΘ informace (velikost sektoru, poΦet sektor∙ na stopu, poΦet sektor∙ na disku, atd.).
Krom∞ t∞chto ·daj∙ se v boot sektoru nachßzφ i krßtk² program zavßd∞cφ program. Jeho ·kolem je zaΦφt proces zavßd∞nφ operaΦnφho systΘmu. Na mφst∞ zavßd∞cφho programu se m∙₧e nachßzet boot virus. Boot sektor se vytvß°φ p°i logickΘm formßtovßnφ.

FAT - File Allocation Table
Jak vφme, ka₧d² soubor na disku mß k dispozici n∞kolik klastr∙. Pokud vÜak chceme na disk ulo₧it nov² soubor, zaΦnou b²t problΘmy: kde je volnΘ mφsto ? Asi by nebylo dobrΘ prohlΘdnout systematicky cel² pevn² disk a hledat p°i tom volnΘ mφsto. Proto je na zaΦßtku disku ulo₧ena tabulka, ve kterΘ jsou informace o vÜech klastech na disku. Mluvφme o FAT (File Allocation Table - tabulka obsazenφ disku). Pro ka₧d² klastr je vyhrazena jedna polo₧ka ve FAT. V polo₧ce FAT je informace, zda je klastr voln², obsazen² nebo chybn². Ve FAT ale nenφ informace, kterΘmu souboru pat°φ dan² klastr (tato informace je ulo₧ena v ka₧dΘm adresß°i spoleΦn∞ s dalÜφmi informacemi o souborech).
KterΘ klastry pat°φ danΘmu souboru lze zjistit podle FAT nßsledovn∞: Funguje to tak, ₧e v polo₧ce FAT pro dan² klastr je uvedeno Φφslo dalÜφho klastru pat°φcφho k danΘmu souboru. V posledn∞ jmenovanΘm klastru je Φφslo dalÜφho klastru ... a₧ dojdeme na konec, kde je k≤d (end of file - konec souboru) pro konec souboru. Z toho vyplφvß, ₧e ve FAT jsou jakΘsi °et∞zce Φφsel klastr∙, pat°φcφ pro ka₧d² soubor.

V jednotliv²ch polo₧kßch tabulky FAT b²vajφ zapsanΘ tyto ·daje (hexadecimßln∞):
    0000 Voln² klastr p°i p°id∞lovßnφ.
    0002 - FFEF Obsazen² klastr, uvedenΘ Φφslo je Φφslo dalÜφho klastru.
    FFF0 - FFF6 Klastr je rezervovan², nenφ mo₧nΘ ho obsadit.
    FFF7 Chybn² klastr, nenφ mo₧nΘ ho obsadit.
    FFF8 - FFFF Znak pro poslednφ klastr souboru.

Je z°ejmΘ, ₧e FAT tabulku mß v oblib∞ hodn∞ vir∙. Jestli₧e je toti₧ boot virus delÜφ a nevejte se do jednoho sektoru, musφ umφstit Φßst svΘho t∞la n∞kam jinam na disk. Proto nenφ nic divnΘho, ₧e tuto oblast oznaΦφ ve FAT jako chybnou (FFF7). Adresß°ov² virus (DIR-2) zase zm∞nφ ukazatel poΦßteΦnφho sektoru souboru tak, aby ukazoval na prvnφ klastr viru.
N∞kterΘ viry poÜkozujou FAT (nap°. p°ehodφ dv∞ polo₧ky - swap, nebo zde zapφÜou nesmysly apod.). NebezpeΦnΘ je, jestli₧e se poÜkodφ polo₧ky pro ·dajov² soubor (na programu to poznßme lehce, nebe₧φ...). Takto se nßm do textu m∙₧e vlo₧it nap°. kus jinΘho programu. PoÜkozen² soubor se m∙₧e dostat i na zßlo₧nφ kopie (kterΘ jist∞ ka₧d² z vßs d∞lß), bez toho aby jsme si toho vÜimli. Tohle provßdφ nap°φklad velmi nebezpeΦn² virus Nomenclatura .
Na disku jsou ulo₧enΘ dv∞ kopie FAT hned za sebou. Je to proto, proto₧e strßta ·daj∙ z tΘto tabulky by byla velmi nep°φjemnß. Jestli₧e je n∞jakß oblast FAT tabulky neΦitelnß, provßdφ se pokus o Φtenφ z druhΘ kopie tabulky.

Hlavnφ adresß° (Root Directory)
Snad ka₧d² u₧ivatel PC znß pojem adresß°. Hlavnφ adresß° mß vÜak jinΘ postavenφ. Mφsto pro n∞j je p°edem vyΦlen∞no a proto obsahuje jen omezen² poΦet polo₧ek.
V hlavnφm adresß°i mohou b²t soubory, podadresß°e nebo "volume label" - nßzev disku. V adresß°i je mnoho ·daj∙ o jednotliv²ch souborech (nap°. i poΦßteΦnφ klastr soubor∙). Ka₧dß polo₧ka v adresß°i mß 32 byt∙. Rozd∞lenφ byt∙:
    8 - jmΘno,
    3 - rozÜφ°enφ (p°φpona),
    1 - atributy,
    10 - rezervovanΘ pro systΘm (vyu₧φvß virus Dir-2),
    2 - datum,
    2 - Φas,
    2 - prvnφ zßznam ve FAT tabulce (poΦßteΦnφ klastr),
    4 - velikost souboru.

Prvnφ znak jmΘna souboru m∙₧e m²t i sv∙j zvlßÜtnφ v²znam:
"0" na prvnφm mφst∞ znamenß, ₧e jsme na konci aktivnφch adresß°ov²ch zßznam∙.
"." je symbol pro ·daj o adresß°i (pro aktußlnφ podadresß° a nad°azen² adresß°).
Znak sigma (e5h) indikuje, ₧e soubor byl smazßn. Pokud se pokouÜφme obnovit vymazan² soubor (nap°. p°φkaz Undelete), na mφsto tohoto znaku se nßm objevφ otaznφk, kter² nahradφme znakem.
Vymazßnφ souboru pod Dosem toti₧ nenφ fyzickΘ vymazßnφ souboru. Po vykonßnφ p°φkazu pro smazßnφ souboru (nap°. i v NC, DN, M602 apod.) se p°epφÜe pouze prvnφ znak jmΘna souboru znakem e5h, vynulujφ se prvnφ byty v p°φsluÜn²ch polo₧kßch FAT. Pokud nejsou tyto klastry pou₧φvanΘ jin²mi soubory, je mo₧nΘ smazan² soubor obnovit.

Tato strßnka je stßle ve v²voji