Dos az örök téma IV.| Pascal 5.| A BO Vírusról


DOS az örök téma IV.

Ebben a hónapban a file rendszerekről lesz szó. Ezekről lehet a legkevesebbet hallani és elég sok tévhit, jelenik meg velük kapcsoltban. Én ezeket a tévhiteket szeretném eloszlatni. Most joggal mondhatja mindenki, hogy mit keres ez a téma ebben a rovatban? Mivel a mai operációs rendszerek még tudják futtatni a DOS-os programokat és szerintem, nem árt megismerkedni logikai lemezkezelésükkel.

FAT16:

(DOS is így kezeli a merevlemezt.)

A clusterek száma változó, de egy adott partícióban állandó. A cluster méret 512 bájt. A szektorokat clusterek alkotják és egy adott partícióban állandó a szektorméret.

A rendszerterület három részre bontható:

- boot szektor

- FAT

- ROOT

A boot szektor 512 bájtos (1 cluster). Tartalmaz egy információs táblát, amiben megtalálhatók a következő információk:

- verziószám

- szektorméret

- sávonkénti szektorszám

- FAT mérete

- gyökérkatalógus mérete

- hibaüzenetek

Az adatterület nyilvántartása clusterekben történik. A DOS-nál maximum 256 szektor lehet.

A FAT-ból létezik egy másolat is, de a másolat nem használható közvetlenül DOS-ból, csak a helyreállító program tudja használni. A FAT bejegyzése négy féle lehet:

- file folytatása

- file vége

- hibás cluster

- szabad cluster

A file kezdetét az állománybejegyzés tartalmazza.

A ROOT felépítése:

Az állománybejegyzések 32 bájtosak, ez a méret rögzített. Az első két bájt speciális karaktereket tartalmaznak, például, hogy a terület törölt vagy nem használt.

8 bájt az állomány neve

3 bájt kiterjesztése

1 bájt attribútum

10 bájt fenntartott

2+2 bájt az utolsó módosítás dátumát tartalmazza

4 bájt az állomány hosszát tartalmazza bájtokban

VFAT16 és VFAT32:

Támogatja a hosszú file neveket. Egy év 256 karakter lehet + 3 a kiterjesztés, de tárolja a file rövid nevét is 8+3 formában. Az állománybejegyzések 32 bájtosak. Egy állományhoz egy bejegyzésláncolat tartozik. Az első az alapbejegyzés a többi csak kiegészítő bejegyzés. A FAT16-nál a 10 fenntartott bájtból a 16 bites kiegészítő bejegyzésnél 8-at a 32 bites bejegyzésnél 10-et használnak. Tartalmazza a létrehozás dátumát 2 bájton, létrehozás idejét 3 bájton, utolsó hozzáférés idejét 2 bájton.

A VFAT32-nél +2 bájt a kezdő cluster sorszámát tartalmazza 32 biten.

Maximálisan 16T bájtot lehet lefedni vele. A kiegészítő bejegyzés mérete a file nagyságától függ. A kiegészítő bejegyzés 13 bájtos és 16 bites UNI kódban van tárolva.

HPFS:

Az információkat és a rendszeradminisztrációkat szétszórva tartalmazza a gyorsabb elérhetőség miatt. Egy telepíthető file rendszert tartalmaz (IFS). Kiegészítést nem igényel, mert beépített védelem a fragmentáció ellen, beépített paraméterezhet lemezcache, hosszú file nevek használatát tartalmazza. Az attribútumok 0-64k között változhat, ez programozható. Hot fix hívás a hibás részek kiiktatására és másodpercre kész lemeznyilvántartás. Az állománynév maximum 254 karakter lehet. 1 cluster 1 szektort alkot. Maximálisan 516G lehet egy partíció, és maximum 4Tbájtot lehet lefedni.

Lemezszerkezet:

Első 18 szektor speciális:

- első 16 szektor BOOT

- 1 szektor állománykezelő

- 1 szektor biztonsági blokk

8MB-os sávokat tart nyilván. A katalógus 2 KB-os blokkokból áll D-csomóban elhelyezve.

Állománytárolás:

Minden állományhoz tartozik egy F-csomó, a kezdet előtt egy szektornyi. Azt mondja meg, hogy az állomány hány részből áll. Ez 12 db A-csomóra mutat. Az A-csomó vagy 40 állománybejegyzésre mutat vagy 60 A-csomóra.

NTFS:

A hosszú file neveket UNI kódban tárolja, de a 8+3 nevet is tárolja. A kis és nagybetűket meg tud különböztetni. Többfelhasználós adatbiztonsági modellt tartalmaz. A file műveletekről jelentésfile készül, és ezért vissza tudja állítani még a nagy veszteségeket is. Kötetkészlet létrehozását támogatja. Képes partíciókat összefűzni és a ritkán használt állományokat tömöríti.

Felépítése:

Minden állományhoz egy rekord tartozik. MFT-ben kerülnek bejegyzésre. Első 26 rekord kitüntetett szerepű.

- 2. rekord MFT tükörállományát tartja nyilván

- 1. és 2. megegyezik, ezért végtelen rekurzió jön létre

- 3. rekord a naplóállományra mutat

Rövid állomány vagy katalógusok esetén az állományt az MFT tartalmazza. Teljesen objektum orientált. Az MFT-t automatikusan bővíti, de helyet nem szabadít fel.

Ha valami kérdésetek, kérésetek van, akkor írjatok a következő címre: Magician@freemail.c3.hu

 

Magician

( vissza a tetejére )


Pascal kezdőknek V.

Szokásunkhoz híven most is kezdjük az előző szám végén feladott feladat megoldásával:

Uses Crt;
Var
szam : integer;
Begin
ClrScr;
WriteLn('Kérek egy számot');
ReadLn(szam);
case pont of
1..10: WriteLn('A szám az 1..10 tartományba esik.');
11..100: WriteLn(' A szám az 11..100 tartományba esik.');
101..1000: WriteLn(' A szám az 101..1000 tartományba esik.');
else WriteLn('A szám a tartományon kívül esik');
end;
Readkey;
End.

Ugye, hogy tényleg nagyon könnyű volt.

A mostani részben megismerkedünk a Pascal nyelv eljárásaival és függvényeivel, de előtte jöjjön egy kis rövid áttekintés, hogy mi is az a függvény és az eljárás.

Az eljárás egy olyan külön programrész, aminek külön egy feladatot adunk át. Ilyen lehet, ha valaki megír, például egy egérkezelést és többször használja a programban nem kell minden használathoz átmásolni ugyan azt a programrészt, elég csak a nevével rá hivatkozni. Az eljárások a programot érthetőbbé és jobban áttekinthetővé teszik. Paraméterátadás lehetséges.
A függvény nagyon hasonlít az eljáráshoz, csak az a különbség, hogy a függvény visszaadott értékkel is rendelkezik. Itt mindenképpen célszerű paramétert átadni.
Az eljárás és a függvény is ugyan úgy épül fel, mint egy külön program. Itt is lehet használni deklarációs részt. Egy eljáráson vagy függvényen belül is lehetnek további eljárások és függvények.
Mi is az a paraméterátadás ?
A paraméterátadáskor egy eljárásnak vagy függvénynek adunk értéket, amivel dolgozhat.
A paraméterátadás kétféle lehet:
- cím szerinti
- érték szerinti
A cím szerinti paraméterátadásnál, ha az eljárásban megváltoztatjuk a paraméter értékét az eljáráson vagy függvényen belül, akkor, ha befejeződött az eljárás vagy függvény futása, akkor a változó értéke a megváltozott érték lesz.
Az érték szerinti paraméterátadásnál, ha az átadott értéket megváltoztattuk és kilépünk az eljárásból vagy függvényből, akkor az átadott érték elvész.
Nézzük egy kicsit konkrétabban Pascal nyelven:
A Pascalban először megadjuk, hogy eljárásról (procedure) vagy függvényről (function) van szó. A meghatározás után meg kell adnunk, hogy változókat (esetleg konstansokat) adunk át és, hogy cím vagy érték szerint. A cím szerinti átadásnál a var szócskát használjuk a paraméterlistában. Minden paraméter után ; kell tenni. A paramétereket úgy kell megadni, mint már a deklarációs résznél megbeszéltük.
Eljárás:
procedure eljárás_neve( [érék szerinti átadás paraméter listája]; var [cím szerinti átadott paraméterek listája]);
var
.
begin
.
.
.
end;
Függvény:
function függvény_neve([érék szerinti átadás paraméter listája]; var [cím szerinti átadott paraméterek listája]): visszaadott_érték_típusa;
var
.
begin
.
.
.
end;
Ennyi elmélet után most jöjjön egy kis gyakorlat.
Első feladat: olvassuk be egy háromszög oldalait és eljárássál számítsuk ki a háromszög kerületét. Az eljárás neve legyen haromszog_kerulete. Az eredményt 3 tizedes jegy pontossággal határozzuk meg.
Kezdjünk is hozzá a feladat megoldásához:
uses crt;
var
a,b,c : real;
kerulet : real;
procedure haromszog_kerulete(a,b,c:real; var kerulet:real);
begin
kerulet:=a+b+c;
end;
begin
clrscr;
write('A háromszög a oldala: ');readln(a);
write('A háromszög b oldala: ');readln(b);
write('A háromszög c oldala: ');readln(c);
haromszog_kerulete(a,b,c,kerulet);
writeln('A háromszög kerülete: ',kerulet:5:3);
readkey;
end.
Lássunk egy kis magyarázatot:
A programban az a,b,c paraméterek értékét érték szerint adtuk át a kerület változót viszont cím szerint. Mivel a kerület cím szerint lett átadva, amikor az eljárásban megváltoztattuk a kerület változó értékét az eredeti programba is megváltozott az érték és csak ki kellet íratni.

Ami még magyarázatot érdemel az a kerület:5:3 itt azt adtam meg, hogy 5 egész jegyet és 3 tizedes jegyet írjunk ki.

Most egy kicsit bonyolítsuk a feladatot. A feladat ugyan az, mint az előbb csak a beolvasást oldjuk meg eljárással. Adjuk meg a szövegbe a változó nevét, ami a bekéréskor meg fog jelenni és a változót, amibe beolvasunk.

Lássuk most is a megoldást:

uses crt;

var

a,b,c : real;

kerulet : real;

procedure haromszog_kerulete(a,b,c:real; var kerulet:real);

begin

kerulet:=a+b+c;

end;

procedure beolvasas(szoveg:string; var valtozo:real);

begin

write('A háromszög ',szoveg,' oldala: ');readln(valtozo);

end;

begin

clrscr;

beolvasas('a',a);

beolvasas('b',b);

beolvasas('c',c);

haromszog_kerulete(a,b,c,kerulet);

writeln('A háromszög kerülete: ',kerulet:5:3);

readkey;

end.

Most írjuk át a programot úgy, hogy ne egy eljárással, hanem egy függvénnyel határozzuk meg a kerületet.

A függvény_nevet egy használjuk a függvényben, mint egy változót, de vigyázzunk, mert ez lesz a visszatérési érték.

uses crt;

var

a,b,c : real;

kerulet : real;

function haromszog_kerulete(a,b,c:real):real;

begin

haromszog_kerulete:=a+b+c;

end;

procedure beolvasas(szoveg:string; var valtozo:real);

begin

write('A háromszög ',szoveg,' oldala: ');readln(valtozo);

end;

begin

clrscr;

beolvasas('a',a);

beolvasas('b',b);

beolvasas('c',c);

kerulet:=haromszog_kerulete(a,b,c);

writeln('A háromszög kerülete: ',kerulet:5:3);

readkey;

end.

A végen írjuk át a beolvasást is eljárássá.

uses crt;

var

a,b,c : real;

kerulet : real;

function haromszog_kerulete(a,b,c:real):real;

begin

haromszog_kerulete:=a+b+c;

end;

function beolvasas(szoveg:string):real;

var

valtozo : real;

begin

write('A háromszög ',szoveg,' oldala: ');readln(valtozo);

beolvasas:=valtozo;

end;

begin

clrscr;

a:=beolvasas('a');

b:=beolvasas('b');

c:=beolvasas('c');

kerulet:=haromszog_kerulete(a,b,c);

writeln('A háromszög kerülete: ',kerulet:5:3);

readkey;

end.

Ez egy jó példa volt arra is, hogy hogyan lehet a függvényben megvalósítani a deklarációs részt.

A végén jöjjön a házi feladat: Írjuk egy programot eljárások és függvények használatával, ami beolvassa egy négyszög oldalait és kiszámítja a kerületét és területét.

A megoldáshoz sok sikert kívánok!!! Ha valakinek valami kérdése vagy kérése van a témával kapcsolatban, akkor nyugodtan írjon a következő címre: Magician@freemail.c3.hu

 

 

Magician

( vissza a tetejére )


A BO vírusról

Internetezel? Ismered a BO vírust? És a következményeit? Lehet, hogy egy békés kis irces vagy, és nem is sejted, hogy valaki a gépeden mászkál. Tudom, most azt hiszitek, hogy ijesztgetés, ki nem sz*rja le. DE. Velem is megtörtént ez a dolog. De először is a BO vírusról. A Bo, vagyis Back Orifice önmagában nem túl káros vírus. Vagyis a gépeden semmi kárt nem tesz. De ha van ilyen vírusod, akkor egy progi segítségével a gépedre jöhetnek nem túl kívánatos személyek. A BO-t úgy kaphatod el, hogy letöltesz egy indítható file-t a netről, elindítod, de az nem csinál semmit, csak kicsomagolja neked a bo vírust. Rengetegen mondjuk, hogy idegentől sose fogadj el semmit, ami indítható. Általában olyanokkal szokták küldeni, hogy nuke ellen védő progi, fogadd el. Még valami. A BO vírus egy 124 kbytes exe, és a windows\system könyvtárban érzi jól magát. Ha a system könyvtárban találsz egy ..exe nevű file-t vagy egy a.exe nevű file-t, azonnal lépj ki a windowsból, és töröld le. Windows alatt nem lehet letörölni, mert már beépült, és állandóan fut, ezért működés közben nem lehet letörölni. Na most már ismeritek a bo-t, elmondom velem mi történt. Pár hete egy barátom mondta, hogy tudom-e mi az, hogy bo. Mondtam, hogy nagyjából, de még nem volt hozzá anti progim. Akkor mondta, hogy az ő gépére öt perc alatt nyolcan próbáltak feljutni. Elfogadtam a progit, de mondtam, hogy én csak haverokkal ircezik, nincs bo-m. Ezt a progit csak el kell indítani, amikor fellépsz a netre, és ha betolakodó próbálkozik, egyből megjelenik egy ablak és kiírja. Egyébként lehet neki válasznak szöveget is küldeni, hogy na a q*** anyukáddal próbálkozz .=). Kb három nap múlva jön hozzám egy csaj dumálni, hogy debreceni, mint én, ez biztos igaz volt, benne volt a hostjában, datanetes hosttal volt. És hogy 16 éves, programozást tanul, és írt egy progit, próbáljam ki, a nuke ellen van. Mondtam neki, hogy tudom, hogy át akarsz b*szni, és nem akartam elfogadni, de aztán rendesnek tűnt és elfogadtam. Elindítottam, nem történt semmi, ekkor rájöttem, hogy mi a helyzet. Az anti-BO progi hamarosan jelzett, hogy próbálkozik valaki. Na mondom, nocsak nocsak milyen ártatlan csaj. =). Aztán kb háromszor próbálta egymás után, de nem ment neki. Szegényke, hogy sajnálom, időközben a host alapján tudtam, hogy az a csaj próbálkozik, akivel dumálok, mondtam neki, hogy úgyse fog menni, hagyja abba. És hogy egyáltalán mit akar a gépemen. Erre azt mondta, hogy az anyukájának nincs pénze fizetni a netet, és az accontomat akarta megszerezni a szemét. Aztán elhitette velem, hogy már fent van a gépemen. Jól megijedtem, de nem nagyon hittem el. Mondta, hogy na mi legyen, system lockup, restart vagy mi.... mondtam, hogy tudom, hogy nincs rajta a gépemen. Ez alatt már írtam be az ipjét a nuker progimba. Aztán mondta, hogy nincs fent a gépemen, és hogy nem olyan szemét. Mondtam, hogy sajna késő van, és már disconnect lett neki. Kb öt perc múlva visszajött, akkor még egyszer lerúgtam, és utána már nem tudott visszajönni. De mi van, ha pár napja nem töltöm le ezt az anti-bo progit?! Megszerzi az externetes előfizetésem kódját, hozzáfér az összes emailemhez. Letörölhet a gépemen bármit, 3 file letörlésével elcseszheti a windowsom. Hát szóval most rájöttem, hogy veszélyes a net. Csak az a mázlim, hogy eddig nem történt meg velem ilyesmi. De eddig nem is volt BO vírusom. Szóval a progi, amit nagyon ajánlok minden netesnek, itt van. Ingyenes. A használatát fentebb leírtam. Ha kérdésed van, írj nyugodtan. Na jó, még egy pár szó a progiról. Az optionsban nem kell semmit sem állítani, max beírhatsz egy válasz szöveget, és a program elindítás után a system taskba kerül. Ha valaki be akar törni, akkor megjelenik egy ablak, és loggolja. Ha nem akartok bajt, használjátok. Hogy egy barátom szavait idézzem: "sok a p@r@szt a neten".

NOBO.arj

Agent-Junior

cyberarmy.hu TM

geri@movinet.hu

( vissza a tetejére )