Igiho strßnka o virech
Novinky
Kniha o virech
1.Pomoc
Testy
Odkazy
Download
AV-Konference
Akce
Autor
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. S p°φchodem OS Windows 9x/2000/NT se ke slovu dostßvajφ i vyÜÜφ programovacφ jazyky (C++, Delphi, Visual Basic atd.).

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 9x) 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...).

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..... Nejblφ₧e k pojmenovßnφ CARO mß jednoznaΦn∞ antivirus F-Prot, na druhΘm konci pak stojφ PC-Cillin.

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 znemo₧nit start poΦφtaΦe. Nßprava je velice jednoduchß, PC v takovΘm p°φpad∞ vypφÜe n∞co ve smyslu "CMOS checksum error". P°esto je umo₧n∞n vstup do setupu biosu, kde staΦφ nap°. obnovit a ulo₧it defaultnφ hodnoty. Po dalÜφm restartu PC bude ji₧ vÜe v po°ßdku.

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φ kontroly integrity.

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.

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"

Na nßsledujφcφ sekvenci znak∙ (68 bajt∙) se dohodlo p°ed jistou dobou n∞kolik antivirov²ch firem. V dneÜnφ dob∞ dokß₧ou tuto sekvenci znak∙ vyhledat prakticky vÜechny rozumnΘ antivirovΘ programy. O co jde ? AntivirovΘ programy detekujφ tuto sekvenci znak∙ podobn∞, jako by Ülo o skuteΦn² virus (ve skuteΦnosti je to zcela neÜkodn², spustiteln² program). Mß to v²znam hlavn∞ v situaci, kdy si chce u₧ivatel ov∞°it, zda je jeho antivirus opravdu schopen detekovat v systΘmu viry. V n∞kter²ch p°φpadech se toti₧ m∙₧e stßt, ₧e i kdy₧ se antivirus tvß°φ jako zcela funkΦnφ, ve skuteΦnosti je zcela nefunkΦnφ - nenφ schopen detekovat viry (p°φΦinou m∙₧e b²t nap°. kolize s jin²m antivirem v pam∞ti apod.). Pokud tedy nßsledujφcφ sekvenci znak∙ vlo₧φte do souboru s p°φponou COM (nap°. EICAR.COM) a VßÜ antivirus na n∞m zaΦne "°vßt" podobn∞, jako by Ülo o skuteΦn² virus, je vÜe v po°ßdku. Pokud antivirus mlΦφ, m∙₧e jφt o v²Üe uveden² stav (kolize s jin²m programem v pam∞ti apod.) a vy nejste dokonale chrßn∞ny p°ed ·tokem vir∙ !!! Nßsleduje zmi≥ovanß sekvence znak∙ (pokud ji nechtete vklßdat do souboru, vyu₧ijte ji₧ hotov² EICAR.COM). JeÜt∞ jedna d∙le₧itß informace na zßv∞r: NEJDE O SKUTE╚N▌ VIRUS, SEKVENCE JE ZCELA NEèKODN┴ A LZE JI BEZ OBAV SPUSTIT (pokud se nachßzφ v souboru s p°φponou COM Φi EXE) !!!

 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. Vφce o tomto m∙₧ete najφt zde.

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.

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Üφ.

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 :( Pro detailnφ informace doporuΦuji navÜtφvit www.hoax.cz.

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φ.

Instrukce

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

Intended virus

Obvykle jsou takto oznaΦovßny viry, kterΘ by m∞ly d∞lat n∞co, co ve skuteΦnosti d∞lajφ Üpatn∞, nebo v∙bec. M∙₧ou za to samotnφ auto°i vir∙, kte°φ se Φasto sna₧φ vytvo°it n∞co, na co nemajφ.

In the Wild (ItW) - "viry v divoΦin∞"

NejrozÜφ°en∞jÜφ viry z pohledu poΦtu mφst, odkud je jich Üφ°enφ hlßÜeno. "In the Wild" viry lze najφt v tzv. Wildlistu. Wildlist je seznam nejrozÜφ°en∞jÜφch vir∙ (In The Wild), kter² je vydßvßn pravideln∞ ka₧d² m∞sφc (viz. www.wildlist.org). Wildlist je zpracovßvßn centrßln∞ a p°ispφvajφ do n∞j pozorovatelΘ z r∙zn²ch kout∙ sv∞ta (kolem 50 lidφ), obvykle jde o lidi z AV spoleΦnostφ.

OperaΦnφ systΘm (OS - operating system)

OperaΦnφ systΘm je software (program) umo₧≥ujφcφ u₧ivateli komunikovat s poΦφtaΦem/"₧elezem" (hardware).

Sekvence - Signatura - ╪et∞zec - String

Skupina bajt∙ vyskytujφcφch se v t∞lech vir∙, podle kter²ch je skener hledß.

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.

Zdrojov² text programu - "Zdrojßk"

V²chozφ tvar programu, kde 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)

Nßsledujφcφ Φßst se t²ka p°edevÜφm operaΦnφho systΘmu MS-DOS. Situace ve Windows 9x/NT/2000 je jinß.

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.

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 nad 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):

    povrch 0 (hlava 0) - hornφ strana 1.plotny,
    povrch 1 (hlava 1) - dolnφ strana 1.plotny,
    povrch 2 (hlava 2) - hornφ strana 2.plotny,

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φ

Proces, p°i kterΘ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.). Aby bylo mo₧nΘ formßtovat (p°φkaz FORMAT), musφ existovat Partition table, kterou je nutnΘ vytvo°it ji₧ p°edtφm pomoci programu FDISK. Viry m∙₧eme najφt v systΘmovΘ (boot viry) i v ·dajovΘ oblasti (souborovΘ viry, makroviry...).
Formßtovßnφm zlikvidujeme viry ulo₧enΘ v boot sektoru a viry souborovΘ (pop°. makroviry apod.). 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ß. Velikost klastr∙ m∙₧e b²t ovlivn∞na pou₧it²m souborov²m systΘmem (FAT, FAT32, NTFS apod.).

Struktura dat na disku


Partition Table (Tabulka rozd∞lenφ disku) - MBR (Master Boot Record)

OperaΦnφ systΘm Windows (pop°. DOS) nßm poskytuje mo₧nost rozd∞lit pevn² disk na n∞kolik Φßstφ (logick²ch disk∙). 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 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 (MBR). 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 Φßsti OS Windows/DOS pevnΘho disku.
Nachßzφ se zde krßtk² program, jeho₧ ·kolem je zaΦφt proces zavßd∞nφ operaΦnφho systΘmu.
Boot sektor se vytvß°φ p°i logickΘm formßtovßnφ.

FAT - File Allocation Table (souborov² systΘm)

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∞l (dnes ji₧ mrtev) nap°φklad velmi nebezpeΦn² virus Nomenclatura.
Na disku jsou ulo₧enΘ dv∞ kopie FAT hned za sebou. Je to proto, proto₧e ztrß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.

Mluvil jsem pouze o souborovΘm systΘmu FAT. Samoz°ejm∞ existujφ i dalÜφ, jako FAT32, NTFS, Ext2 apod.

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.

Op∞t jsem mluvil pouze o souborovΘm systΘmu FAT. U ostatnφch se mohou ·daje liÜit.

Zp∞t