Analiza de Volume

S-ar putea să vă placă și

Descărcați ca docx, pdf sau txt
Descărcați ca docx, pdf sau txt
Sunteți pe pagina 1din 28

1. Analiza de volume (DOS, Apple, BSD, GPT, RAID etc.

), analiza sistemelor de fişiere (FAT32,


NTFS, EXT2/3, UFS1/2);
Analiza volumului presupune analizarea structurilor de date care sunt implicate cu partiționarea și asamblarea
octeților în dispozitivele de stocare, astfel încât să obținem volume.
Mijloacele de stocare digitale sunt organizate pentru a permite recuperarea eficientă a datelor. Cea mai
obișnuită experiență cu un sistem de volum apare atunci când instalați Microsoft Windows și creați partiții de
pe hard disk. Procesul de instalare ghidează utilizatorul prin procesul de crearea de partiții primare și logice,
iar în final calculatorul are o listă de "unități" sau "volume" în care să stocați date. Un proces similar apare
atunci când se instalează un sistem de operare UNIX și devine din ce în ce mai frecventă în medii de stocare
mari ca software-ul de gestionare a volumului să aibă mai multe discuri ca și cum ar cuprinde un disc mare.

În timpul unei investigații digitale, este comună achiziționarea unei imagini întregi a discului și importarea
imaginii în instrumente de analiză. Multe instrumente digitale de investigare rupe automat imaginea discului
în partiții, dar uneori au probleme.
De exemplu, când partițiile de pe disc au fost șterse sau modificate suspectul sau instrumentul pur și simplu
nu poate localiza o partiție. Procedurile din aceste capitole pot fi, de asemenea, utile atunci când se analizează
sectoarele care nu sunt alocate unei partiții.

Un volum este o colecție de sectoare adresabile pe care le poate utiliza un sistem de operare (OS) sau o aplicație
pentru stocarea datelor. Sectoarele dintr-un volum nu trebuie să fie consecutive pe un dispozitiv fizic de
stocare; în schimb, ei trebuie doar să dea impresia că sunt. Un hard disk este un exemplu de volum care se află
în sectoare consecutive. Un volum poate fi, de asemenea, rezultatul asamblării și fuzionării de volume mai mici.
Unul dintre conceptele dintr-un sistem de volum este de a crea partiții. O partiție este o colecție de sectoare
consecutive într-un volum. Prin definiție, o partiție este de asemenea un volum, motiv pentru care termenii
sunt frecvent confundați. Mă voi referi la volumul în care o partiție este localizată ca volum părinte al partiției.
Partițiile sunt utilizate în multe scenarii, inclusiv:
 unele sisteme de fișiere au o dimensiune maximă mai mică decât hard discurile.
 Multe laptopuri folosesc o partiție specială pentru a stoca conținutul memoriei atunci când sistemul
este pus în starea de repaus.
 sistemele UNIX utilizează partiții diferite pentru directoare diferite pentru a minimiza impactul
corupției sistemului de fișiere.
 sisteme bazate pe IA32 care au mai multe sisteme de operare, cum ar fi Microsoft Windows și Linux,
pot necesita partiții separate pentru fiecare sistem de operare.

Consider a Microsoft Windows system with one hard disk. The hard disk volume is partitioned into three
smaller volumes, and each has a file system. Windows assigns the names C, D, and E to each volume. We can
see this in Figure 4.1.

Fiecare sistem de operare și platformă hardware utilizează în mod obișnuit o metodă de partiționare diferită.

Sistemele comune de partiții au una sau mai multe tabele, iar fiecare intrare de tabel descrie o partiție. Datele
din intrare vor avea sectorul de pornire al partiției, sectorul de sfârșit al partiției (sau lungimea) și tipul de
partiție. Mai sus, figura arată un exemplu de tabel cu trei partiții. Scopul unui sistem de partiție este de a
organiza dispunerea unui volum; prin urmare, singurele date esențiale sunt locația de pornire și de sfârșit
pentru fiecare partiție. Un sistem de partiționare nu poate servi scopului său dacă aceste valori sunt corupte
sau inexistente. Toate celelalte câmpuri, cum ar fi un tip și o descriere, nu sunt esențiale și ar putea fi false.

În majoritatea cazurilor, primul și ultimul sector al unei partiții nu conține nimic care să le identifice ca
sectoare de frontieră. Acest lucru este similar cu modul în care majoritatea liniilor de proprietate nu sunt
marcate. Inspectorii și documentele sunt de obicei necesare pentru a identifica liniile de proprietate exacte,
iar structurile de date de partiție sunt echivalente cu documentele de studiu. Când structurile sistemului de
partiții lipsesc, limitele partițiilor pot fi uneori ghicite folosind cunoștințele despre ceea ce a fost stocat în
interiorul partiției. Acest lucru este analog cu ghicirea limitelor de proprietate bazate pe peisaj.
Un sistem de partiții depinde de sistemul de operare și nu de tipul de interfață de pe hard disk. Prin urmare,
un sistem Windows utilizează același sistem de partiții, indiferent dacă discul utilizează o interfață atașament
AT (ATA / IDE) sau o interfață de sisteme mici de computere (SCSI).

DOS- partiția cea mai frecvent întîlnită. Partițiile DOS au fost utilizate cu hardware Intel IA32 (adică, i386 /
x86) de mai mulți ani, însă nu există specificații oficiale. Există multe documente Microsoft și non-Microsoft
care discută partițiile, dar nu există o referință standard
Pe lângă faptul că nu există o referință standard, nu există nici un nume standard. Acum, Microsoft apelează la
discuri care utilizează acest tip de discuri Master Boot Record (MBR). Aceasta este, în comparație cu discul
GPT (GUID Partition Table) care se utilizează cu interfața firmă extensibilă (EFI) și cu sistemele Intel Itanium
pe 64 de biți (IA64). Începând cu Windows 2000, Microsoft diferențiază de asemenea discurile de bază și cele
dinamice. Un disc de bază se referă fie la un disc MBR, fie la un disc GPT, iar partițiile din disc sunt
independente. Discurile dinamice, pot fi de asemenea discuri MBR sau GPT, iar partițiile pot fi combinate și
îmbinate pentru a forma o singură partiție mare. Discurile de bază au fost, în mod tradițional, asociate cu
partițiile DOS, probabil deoarece discurile GPT nu sunt încă la fel de comune.
Partițiile DOS sunt utilizate cu Microsoft DOS, Microsoft Windows, Linux, IA32-based FreeBSD și sistemul
OpenBSD.
Partițiile DOS sunt cele mai comune, dar și cele mai complexe. Acestea au fost proiectate inițial în anii 1980
pentru sisteme mici și îmbunătățite pentru a gestiona sistemele moderne. De fapt, există două metode de
partiționare diferite care sunt utilizate în acest sistem.
Un disc care este organizat folosind partiții DOS are un MBR în primul sector de 512 octeți. MBR conține cod
de boot, o tabelă de partiții și o valoare de semnătură. Codul de pornire conține instrucțiunile care îi spun
computerului cum să proceseze tabela de partiții și să găsească sistemul de operare. Tabela de partiții are
patru intrări, fiecare dintre acestea putând descrie o partiție DOS. Fiecare intrare are următoarele câmpuri:
• de pornire a adresei CHS
• de terminare a adresei CHS
• de pornire a adresei LBA
• Numărul de sectoare în partiție
• Tipul de partiție
•flag
Fiecare intrare de tabel descrie aspectul unei partiții în ambele adrese CHS și LBA. CHS se adresează doar
pentru discuri cu dimensiuni mai mici de 8 GB, dar adresele LBA permit discurilor să fie terabytes (TB) în
mărime.
Câmpul de tip din partiție identifică ce tip de date ar trebui să existe în partiție. Printre exemplele frecvente se
numără FAT, NTFS și FreeBSD. Următoarea secțiune conține o listă mai cuprinzătoare a tipurilor de partiții.
Valoarea tipului este utilizată diferit de diferite sisteme de operare. Linux, de exemplu, nu-i pasă de asta.
Puteți pune un sistem de fișiere FAT în interiorul unei partiții care are un tip de NTFS și o va monta ca FAT.
Microsoft Windows, pe de altă parte, se bazează pe ea. Windows nu va încerca să monteze un sistem de fișiere
într-o partiție dacă nu suportă tipul de partiție. Prin urmare, dacă un disc are un sistem de fișiere FAT în
interiorul unei partiții cu un tip de sistem de fișiere Linux, utilizatorul nu va vedea sistemul de fișiere FAT din
Windows. Acest comportament poate fi folosit pentru a ascunde partițiile din Windows. De exemplu, unele
instrumente vor adăuga un pic la un tip de partiție pe care Windows îl acceptă, astfel încât să nu se afișeze
când Windows pornește din nou.
Fiecare intrare conține, de asemenea, un câmp de semnătură care identifică partiția care este "bootabilă".
Acest lucru este folosit pentru a identifica locul în care sistemul de operare este localizat atunci când
computerul pornește. Folosind cele patru intrări din MBR, putem descrie un aspect simplu al discului cu până
la patru partiții. Figura 5.1 prezintă un astfel de disc simplu cu două partiții și MBR în primul sector.

MBR este o metodă simplă ce descrie până la patru partiții. Cu toate acestea, multe sisteme necesită mai multe
partiții decât acestea. De exemplu, luați în considerare un disc de 12 GB pe care utilizatorul dorește să îl
împartă în șase partiții de 2 GB, deoarece utilizează mai multe sisteme de operare. Nu putem descrie cele șase
partiții utilizând cele patru intrări de tabele de partiții. Soluția la această problemă de proiectare este ceea ce
face ca partițiile DOS să fie atât de complexe. Teoria de bază a soluției este de a folosi una, două sau trei intrări
în MBR pentru partiții normale și apoi a crea o "partiție extinsă" care va umple restul discului. Înainte de a
merge mai departe, unele definiții pot fi de ajutor. O partiție de sistem de fișiere primară este o partiție a
cărei intrare se află în MBR, iar partiția conține un sistem de fișiere sau alte date structurate.
O partiție extensie primară este o partiție a cărei intrare este în MBR, iar partiția conține partiții
suplimentare. Putem vedea acest lucru în Figura 5.2, care are trei partiții principale de sistem de fișiere și una
primară.

În MBR, există o partiție centrală care a descris mai multe partiții. Aici vedem o listă legată de partiții. Teoria
de bază este că vom preceda fiecare partiție de sistem de fișiere cu date care descriu cât de mare este partiția
sistemului de fișiere și unde găsim următoarea partiție. Toate aceste partiții ar trebui să fie amplasate în
interiorul partiției principale extinse, motiv pentru care trebuie să fie cât mai mare posibil.
O partiție secundară a sistemului de fișiere, denumită și o partiție logică în Windows, este localizată în
limitele principale ale partițiilor extinse și conține un sistem de fișiere sau alte date structurate. Partițiile
secundare ale sistemului de fișiere sunt echivalente cu partițiile care sunt descrise în MBR cu excepția
faptului că se află într-o partiție extinsă. O partiție secundară extinsă este o partiție care conține o tabelă de
partiții și o partiție secundară a sistemului de fișiere. Partițiile secundare extinse se înfășoară în jurul
partițiilor sistemului secundar de fișiere și descriu unde este localizată partiția secundară a sistemului de
fișiere și unde se află următoarea secțiune extinsă secundară extinsă.
Figura 5.3 prezintă un exemplu de funcționare a partițiilor secundare. Secundar extins # 1 conține o tabelă de
partiții care indică sistemul secundar de fișiere # 1 și secundar extins # 2. Secondary Extended # 2 conține o
tabelă de partiții care indică sistemul secundar de fișiere # 2.
De asemenea, ar putea indica o altă partiție extinsă secundară, iar acest proces se poate repeta până la
nu avem spațiu pe disc.
Codul de pornire într-un disc DOS există în primii 446 octeți ai primului sector de 512 octeți, care este MBR.
Sfârșitul sectorului conține tabela de partiții. Codul standard de boot Microsoft prelucrează tabela de partiții
în MBR și identifică ce partiție are setul de pavilion bootabil. Atunci când găsește o astfel de partiție, aceasta
arată în primul sector al partiției și execută codul găsit acolo. Codul de la începutul partiției va fi specific
sistemului de operare. Se introduc virușii din sectorul boot în primii 446 octeți ai MBR, astfel încât aceștia să
fie executați de fiecare dată când computerul este pornit.
Este din ce în ce mai des întâlnită existența mai multor sisteme de operare pe un computer. Există două
moduri de a trata acest lucru. Windows gestionează acest lucru prin faptul că are un cod în partiția bootabilă,
care permite unui utilizator să selecteze ce sistem de operare să încarce. Cu alte cuvinte, codul de boot din
MBR se execută mai întâi și încarcă codul de boot Windows. Codul de boot Windows permite unui utilizator
să aleagă o altă partiție din care să pornească. Cealaltă metodă este de a schimba codul în MBR. Noul cod MBR
prezintă utilizatorului o listă de opțiuni, iar utilizatorul alege ce partiție să booteze. Acest lucru necesită de
obicei mai mult cod și utilizează unele dintre sectoarele neutilizate care există înainte de începerea primei
partiții.
Sistemul de partiții DOS este complex deoarece fiecare tabelă de partiții are doar patru intrări în acesta. Alte
sisteme de partiții discutate mai târziu în acest capitol și în celelalte au tabele de partiții mai mari și, prin
urmare, sunt mai puțin complexe. Următorii pași de nivel înalt sunt necesari pentru a lista informațiile despre
aspectul unui disc cu partiții DOS:

1. Înregistrarea Master Boot este citită din primul sector al discului, iar cele patru intrări de tabele de partiții
sunt identificate și procesate.
2. Când se procesează o intrare pentru o partiție extinsă, se citește primul sector al partiției extinse, iar
intrările din tabelele de partiție sunt prelucrate în același mod ca MBR.
3. Când este procesată o intrare pentru o partiție non-extinsă, se afișează sectorul de pornire și mărimea
acesteia. Adresa sectorului final poate fi determinată prin adăugarea adresei sectorului de pornire și a
dimensiunii împreună și scăderea acesteia.
Tabelele de partiții DOS există în MBR și în primul sector al fiecărei partiții extinse. În mod convenabil, toate
utilizează aceeași structură de 512 octeți. Primii 446 octeți sunt rezervați pentru codul de boot de asamblare.
Codul trebuie să existe în MBR deoarece este utilizat când computerul este pornit, dar partițiile extinse nu au
nevoie de el și ar putea conține date ascunse. Formatul MBR în formă tabelară poate fi găsit în Tabelul 5.1.

Tabelul de partiții are patru intrări de 16 octeți. Structurile intrărilor sunt date în Tabelul 5.2. Rețineți că
adresele CHS sunt esențiale pentru sistemele mai vechi care se bazează pe ele, dar nu sunt esențiale pentru
sistemele mai noi.

Partițiile bazate pe DOS sunt cele mai frecvente pentru investigațiile curente ale computerului. Din nefericire,
ele sunt, de asemenea, cele mai complexe pentru a înțelege, deoarece acestea nu au fost inițial concepute
pentru mărimea sistemelor moderne. Din fericire, există instrumente pentru a lista cu ușurință aspectul
discului și a extrage spațiul neutilizat. Multe sisteme UNIX care rulează pe platforme compatibile cu IA32
utilizează partiții DOS în plus față de propriile sisteme de partiții. Prin urmare, fiecare investigator are nevoie
de o înțelegere solidă a partițiilor DOS.

Partiții APPLE
Sistemele care rulează sistemul de operare Apple Macintosh nu sunt la fel de comune ca cele care rulează
Microsoft Windows, dar au crescut în popularitate odată cu introducerea sistemului de operare Mac OS X, un
sistem de operare bazat pe UNIX. Partițiile pe care le vom descrie aici pot fi găsite în cele mai recente laptop-
uri și desktop-uri Apple care rulează OS X, sisteme mai vechi care rulează Macintosh 9 și chiar dispozitivele
iPod portabile care redă audio MP3. De asemenea, hărțile de partiții pot fi utilizate în fișierele imagine pe disc
pe care un sistem Macintosh le utilizează pentru a transmite fișiere. Fișierul imagine este similar cu un fișier
zip în Windows sau un fișier tar în Unix. Fișierele din imaginea discului sunt stocate într-un sistem de fișiere,
iar sistemul de fișiere poate fi într-o partiție.
Designul sistemului de partiționare într-un sistem Apple este un echilibru frumos între complexitatea
partițiilor bazate pe DOS și numărul limitat de partiții pe care le vom vedea în etichetele discurilor BSD.
Partiția Apple poate descrie orice număr de partiții, iar structurile de date sunt în sectoare consecutive ale
discului. Această secțiune va oferi o imagine de ansamblu a partițiilor Apple, detaliile structurilor de date și va
discuta cum să vizualizați detaliile.
Partițiile Apple sunt descrise în structura hărții de partiții, care se află la începutul discului. Firmware-ul
conține codul care procesează această structură, astfel că harta nu conține codul de boot așa cum am văzut în
tabela de partiții DOS. Fiecare intrare din harta de partiții descrie sectorul de pornire al partiției, mărimea,
tipul și numele volumului. Structura de date conține, de asemenea, valori despre datele din interiorul
partiției, cum ar fi locația zonei de date și localizarea oricărui cod de boot.
Prima intrare în harta partițiilor este, de obicei, o intrare pentru ea însăși și arată dimensiunea maximă a
hărții de partiții. Apple creează partiții pentru stocarea driverelor hardware, astfel încât discul principal
pentru un sistem Apple are mai multe partiții care conțin drivere și alte tipuri de conținut non-file. Figura 5.9
prezintă un exemplu de dispunere a unui disc Apple cu trei partiții de sistem de fișiere și partiția pentru harta
partițiilor.

Chiar dacă Mac OS X se bazează pe un nucleu BSD, utilizează o hartă a partițiilor Apple și nu o etichetă de disc.
Harta partițiilor Apple conține mai multe structuri de date de 512 octeți și fiecare partiție utilizează o
structură de date. Harta de partiții începe în al doilea sector al discului și continuă până când toate partițiile
au fost descrise. Structurile de date de partiție sunt prezentate în sectoare consecutive, iar fiecare intrare a
hărții are o valoare pentru numărul total de partiții. Structura de date de 512 octeți este prezentată în Tabelul
5.7.

Pentru a identifica partițiile dintr-un disc Apple, un instrument (sau o persoană) citește structura de date din
cel de-al doilea sector. Se procesează pentru a afla numărul total de partiții, iar apoi se colectează celelalte
informații de partiție din acesta. Prima intrare este, de obicei, intrarea pentru hărțile partiției în sine.
Următorul sector este apoi citit și procesul continuă până când toate partițiile au fost citite.

Computerele Apple folosesc procesoarele Motorola PowerPC și, prin urmare, stochează datele în
comenzi big-endian. Ca rezultat, nu va trebui să inversăm ordinea numerelor, așa cum am făcut-o cu
partițiile DOS. Vom vedea valoarea semnăturii 0x504d în octeți 0 la 1 și numărul de partiții în octeți 4 la 7,
adică 10 (0x0000000a). Bytes de la 8 la 11 ne arată că primul sector al discului este sectorul de pornire
pentru această partiție și că dimensiunea acesteia este de 63 de sectoare (0x3f). Numele partiției este
"Apple", iar tipul de partiție este "Apple_partition_map". Bytes de la 88 până la 91 arată că nu sunt setate
steaguri pentru această partiție. Restul de intrări în harta partițiilor care nu sunt pentru hărțile de partiții au
valoarea de setare a stării.
Puteți vizualiza o hartă a partițiilor Apple cu mmls în The Sleuth Kit. Comanda fdisk din Linux nu va afișa
conținutul unei hărți de partiții. Iată rezultatele de la rularea mmls pe un laptop iBook de 20 GB:

În această ieșire, intrările sunt sortate după sectorul de pornire, iar a doua coloană arată în ce înregistrare în
harta partiției a fost descrisă partiția. În acest caz, intrările au fost deja sortate. Putem vedea în intrarea 12 că
Apple raportează sectoarele care nu sunt alocate în prezent. Intrările 0, 2 și 3 au fost adăugate prin mmls
pentru a arăta ce spațiu folosește harta partițiilor și ce sectoare sunt libere. Driverele enumerate aici sunt
utilizate de sistem atunci când este boots. Un instrument alternativ care poate fi utilizat pe o imagine de disc
brut este instrumentul pdisk cu pavilion -dump pe OS X:

Singura caracteristică unică a partițiilor Apple este aceea că există mai multe câmpuri neutilizate în structura
de date care ar putea fi folosite pentru a ascunde cantități mici de date. De asemenea, datele ar putea fi
ascunse în sectoarele dintre ultima structură de date a partițiilor și sfârșitul spațiului alocat hărții 84 de
partiții. Ca în cazul oricărei scheme de partiționare, orice ar putea fi în partițiile care au un nume oficial sau
care pretind că au un anumit tip.

Harta partițiilor Apple este o structură destul de simplă și este ușor de înțeles. Structurile de date sunt toate
localizate într-un singur loc, iar numărul maxim de partiții se bazează pe modul în care discul a fost inițial
împărțit. Instrumentul mmls ne permite să identificăm cu ușurință unde sunt localizate partițiile dacă folosim
un sistem non-Apple, iar instrumentul pdisk poate fi utilizat într-un sistem OS X.
Partiții BSD
Devine tot mai des întâlnită investigarea pe calculator a serverelor BSD UNIX, cum ar fi FreeBSD, OpenBSD și
NetBSD. Aceste sisteme utilizează propriul sistem de partiționare, iar această secțiune va arăta detaliile
structurilor sale. Este mai frecvent întâlnirea cu un sistem Linux în timpul unei investigații, dar Linux
folosește numai partițiile bazate pe DOS și nu are structuri de date speciale.
Multe sisteme BSD utilizează hardware bazat pe IA32 (adică, x86 / i386) și au fost concepute astfel încât să
poată exista pe același disc ca și produsele Microsoft. Prin urmare, acestea se bazează pe partițiile DOS
descrise în capitolul precedent. Un sistem BSD care rulează pe hardware non-IA32 probabil nu utilizează
partițiile DOS și acestea nu sunt acoperite în această carte. Un concept important de inteles inainte de a
incepe este acela ca atunci cand ruleaza un sistem de operare, acesta poate alege la ce partitii va da accesul
utilizatorului. După cum se va arăta, sistemul de operare FreeBSD utilizează atât sistemele de partiții DOS, cât
și BSD, dar OpenBSD și NetBSD utilizează numai sistemul de partiționare BSD. O înțelegere de bază a
partițiilor DOS este necesară pentru această secțiune.
Sistemul de partiții BSD este mai simplu decât partițiile DOS, dar este mai limitat decât harta de partiții Apple.
Există un singur sector care conține datele necesare și este localizat într-o partiție DOS, așa cum se arată în
Figura 6.1. Se află în interiorul unei partiții DOS, astfel încât sistemul poate avea și Windows pe același disc și
oferă utilizatorului posibilitatea de a alege ce sistem de operare să se încarce. Tabelul de partiții DOS va avea
o intrare pentru o partiție cu un FreeBSD, OpenBSD sau NetBSD tip-0xa5, 0xa6 și, respectiv, 0xa9. Partiția
BSD va fi una dintre partițiile primare DOS.

Structura centrală a datelor este eticheta discului. Este de cel puțin 276 octeți și este situat în cel de-al doilea
sector al partiției BSD. Pentru unele sisteme non-IA32, aceasta poate fi în primul sector și are un offset.
FreeBSD, OpenBSD și NetBSD utilizează aceeași structură, dar implementarea este ușor diferită. Prin urmare,
teoria generală va fi descrisă aici, iar detaliile specifice sunt prezentate în secțiunile următoare.
Structura etichetei de disc conține specificațiile hardware ale discului și o tabelă de partiții pentru opt sau
șaisprezece partiții BSD. Spre deosebire de partițiile Apple, tabela de partiții este o dimensiune fixă și, spre
deosebire de partițiile DOS, există doar un singur tabel de partiții. Fiecare intrare din tabela de partiții BSD
are următoarele câmpuri:
• Sectorul de pornire al partiției BSD
• Dimensiunea partiției BSD
• Tip de partiție
• Dimensiunea fragmentului sistemului de fișiere UFS
• Numărul de fragmente ale sistemului de fișiere UFS pe bloc
• Numărul de cilindri pe grupul cilindrilor UFS

Adresa sectorului de pornire este dată în raport cu începutul discului, și nu cu adresa


Disc sau partiție DOS. Câmpul pentru tipul de partiție identifică tipul de sistem de fișiere care ar trebui să fie
în partiția BSD, cum ar fi UFS, spațiul de swap, FAT și neutilizate. Ultimele trei valori sunt utilizate numai
atunci când partiția conține un sistem de fișiere UFS.
Teoria de bază a partițiilor BSD este simplă. Se citește o structură și lista cu partiții poate fi ușor procesată.
Provocarea unui investigator, totuși, este să știm la ce partiții a accesat utilizatorul. De exemplu, dacă a fost un
sistem de boot dual, investigatorul trebuie să știe dacă utilizatorul a avut acces la partiția Windows, precum și
la partițiile BSD. FreeBSD se ocupă de acest lucru diferit de OpenBSD și NetBSD.
FreeBSD oferă utilizatorului acces la toate partițiile DOS și BSD de pe disc. FreeBSD folosește termenul "slice"
pentru a se referi la fiecare partiție DOS și utilizează termenul "partiție" pentru a se referi la partițiile BSD.
Prin urmare, dacă un sistem are Windows și FreeBSD instalat pe acesta, utilizatorul ar avea acces la secțiunile
Windows atunci când rulează FreeBSD. Structura etichetei de disc din FreeBSD este utilizată pentru a
organiza sectoarele numai în partiția FreeBSD DOS. Acest lucru poate părea evident, dar este unul dintre
modurile în care implementarea OpenBSD este diferită de implementarea FreeBSD. Dacă ne referim la Figura
6.2, eticheta disc descrie trei partiții în interiorul partiției DOS de tip FreeBSD, dar nu are nevoie să descrie
partiția de tip NTFS.

FreeBSD, ca și alte arome UNIX, atribuie un fișier de dispozitiv special pentru fiecare partiție și felie. Fișierul
este denumit în funcție de numărul partiției DOS și de numărul partiției BSD. Numele de bază pentru discul
ATA primar este / dev / ad0. Fiecare felie, denumită și o partiție DOS, adaugă litera "s" și numărul de slice la
numele de bază. De exemplu, prima slice este / dev / ad0s1, iar a doua parte este / dev / ad0s2. Orice felie
care are un tip de partiție FreeBSD este procesată pentru structura etichetei discului. Partițiile din felie sunt
date cu litere bazate pe intrările lor în tabela de partiții a etichetelor de disc. De exemplu, dacă cea de-a doua
partiție DOS a fost FreeBSD, prima partiție BSD ar fi / dev / ad0s2a, iar cea de-a doua partiție BSD ar fi / dev /
ad0s2b. Un al doilea set de dispozitive care nu include numărul de felie poate fi, de asemenea, realizat pentru
partițiile BSD. De exemplu, / dev / ad0a ar fi o scurtătură pentru partiția / dev / ad0s2a dacă partiția FreeBSD
a fost partiția DOS 2.
Unele dintre partițiile BSD au un înțeles special. Partiția "a" este de obicei pentru partiția rădăcină, unde se
află codul de boot. Partiția "b" este de obicei pentru spațiul de swap al sistemului, partiția "c" este de obicei
pentru întreaga felie, iar partițiile care încep de la 'd' pot fi orice. Termenul "de obicei" este folosit pentru că
acesta este modul în care multe dintre instrumentele de partiționare BSD vor crea partițiile, dar orice
utilizator poate edita tabela de partiții de discuri cu un editor hex și modifica intrările. În concluzie, un sistem
FreeBSD oferă acces la toate partițiile DOS și partițiile BSD. Un investigator trebuie să analizeze fiecare dintre
partițiile DOS și partițiile BSD din eticheta discului pentru a analiza complet sistemul.
OpenBSD și NetBSD dau utilizatorului acces doar la intrările din structura etichetei discului BSD. Spre
deosebire de eticheta discului FreeBSD, structura etichetei de disc OpenBSD și NetBSD poate descrie partițiile
oriunde pe disc. Cu alte cuvinte, eticheta de disc poate descrie partiții care se află în afara limitelor partiției
DOS în care este localizată. Pentru restul acestui capitol, mă voi referi doar la OpenBSD, dar cu adevărat mă
refer atât la OpenBSD, cât și la NetBSD. Codul OpenBSD sa desprins de codul NetBSD cu mulți ani în urmă.
După încărcarea kernelului OpenBSD, partițiile DOS sunt ignorate. Partițiile DOS sunt utilizate numai pentru a
găsi începutul partiției OpenBSD. Prin urmare, dacă un sistem are Windows și OpenBSD pe acesta și
utilizatorii au acces la o partiție FAT din OpenBSD, partiția FAT ar fi atât în tabela de partiții DOS, cât și în
eticheta discului BSD. Putem vedea acest lucru în Figura 6.3 unde avem aceleași partiții DOS ca în Figura 6.2.
În acest caz, totuși, trebuie să avem o intrare suplimentară în eticheta discului, astfel încât să putem accesa
partiția DOS tip DOS.

OpenBSD utilizează nume de fișiere similare cu cele utilizate de FreeBSD pentru dispozitivele de partiționare.
Numele de bază pentru dispozitivul ATA principal este / dev / wd0. Nu există nicio noțiune de felii, iar
partițiile BSD sunt numite cu litere. Prin urmare, prima partiție BSD este / dev / wd0a, iar a doua este / dev /
wd0b. Ca și FreeBSD, prima partiție este de obicei pentru partiția rădăcină, iar a doua partiție este pentru
spațiul de swap. A treia partiție, / dev / wd0c în exemplul nostru, este dispozitivul pentru întregul disc.
Amintiți-vă că cea de-a treia partiție pentru FreeBSD a fost doar pentru partiția slice sau DOS. În concluzie, un
sistem OpenBSD oferă acces doar la partițiile descrise în eticheta discului OpenBSD. O analiză a unui sistem
OpenBSD ar trebui să se concentreze asupra partițiilor care sunt enumerate în eticheta discului.
Fiecare partiție BSD din structura discului de disc are un câmp de tip, dar nu este aplicată. Este de fapt impusă
mai puțin cu sistemele BSD decât cu Microsoft Windows, deoarece Windows folosește câmpul de tip pentru a
determina dacă partiția ar trebui să primească o literă de unitate sau nu. Cu un sistem BSD, este creat un
dispozitiv pentru fiecare intrare pe disc, astfel încât partițiile să poată fi montate ca orice tip. Prin urmare,
verificați dacă partiția nu are un sistem de fișiere cunoscut, chiar dacă tipul îl identifică ca un vechi format
UNIX, deoarece ar putea fi de fapt un sistem de fișiere obișnuit, cum ar fi FAT.
Structura etichetei de disc este de cel mult 404 octeți. Pentru etichetele de disc cu numai opt intrări în ele,
structura etichetei de disc este de numai 276 de octeți. Prin urmare, restul sectorului de 512 de octeți poate fi
folosit pentru a ascunde datele, deși nu este o mulțime. Dacă tabela de partiții DOS este coruptă și locația
partiției tip BSD nu poate fi determinată, poate fi efectuată o căutare pentru valoarea semnătură 0x82564557.
Valoarea semnăturii ar trebui să existe la octetul 0 și octetul 132 al structurii etichetei discului. Cu un sistem
FreeBSD, rețineți că utilizatorul a avut acces atât la partițiile DOS, cât și la partițiile BSD. Prin urmare, ancheta
trebuie să includă analiza tuturor partițiilor DOS și a partițiilor BSD. Rețineți că este posibil ca sistemul să nu
aibă suport pentru NTFS, astfel că utilizatorul nu ar fi putut să monteze o partiție NTFS dacă există.

Partițiile BSD sunt descrise într-o structură simplă a etichetei discului. O dificultate pentru un investigator
este identificarea tuturor datelor pe care utilizatorul a avut acces la sistemul suspect. Sistemele BSD sunt
frecvent utilizate ca servere și sunt implicate în investigații penale și corporative. O înțelegere aprofundată a
partițiilor BSD va oferi investigații mai cuprinzătoare.

Partiții GPT-Sistemele cu procesoare Intel Itanium pe 64 de biți (IA64) nu au un sistem BIOS cum ar fi
sistemele IA32. În schimb, au o interfață extensibilă de firmware (EFI). EFI este, de asemenea, utilizat de
platforme non-Intel, cum ar fi sistemele SunSparc. EFI utilizează un sistem de partiții numit Tabelul de partiții
GUID (GPT) care poate suporta până la 128 de partiții și utilizează adrese LBA pe 64 de biți. Copiile de rezervă
ale structurilor importante de date sunt menținute în caz de eșec. La momentul acestei scrieri, discurile GPT
se găsesc în servere de vârf și nu în sisteme desktop tipice.
Un disc GPT are cinci domenii majore, așa cum se arată în figura 6.7. Prima zonă este MBR de protecție și
pornește în primul sector al discului și conține o tabelă de partiție DOS cu o singură intrare. Intrarea unică
este pentru o partiție cu un tip de 0xEE care se întinde pe întregul disc. Această partiție există astfel încât
computerele vechi să poată recunoaște discul ca fiind utilizat și să nu încerce să îl formateze. De fapt, EFI nu
folosește partiția.

A doua parte a discului GPT începe în sectorul 1 și conține antetul GPT. Antetul definește dimensiunea și
locația tabelei de partiții, care sunt fixate atunci când este creat discul GPT. Windows limitează numărul de
intrări în tabela de partiții la 128 [Microsoft 2004]. Antetul conține, de asemenea, o sumă de control a
antetului și a tabelei de partiții, astfel încât erorile sau modificările să poată fi detectate.
A treia secțiune conține tabela de partiții. Fiecare intrare din tabela de partiții conține o adresă de start și de
sfârșit, o valoare de tip, un nume, un flag atribut și o valoare GUID. GUID-ul pe 128 biți trebuie să fie unic
pentru acel sistem și este setat atunci când tabela de partiții este creată. A patra secțiune a discului este zona
de partiție. Zona de partiție este cea mai mare zonă și conține sectoarele care vor fi alocate partițiilor.
Sectoarele de început și de sfârșit pentru această zonă sunt definite în antetul GPT. Secțiunea finală a discului
conține o copie de rezervă a antetului și tabelei de partiții GPT. Acesta este situat în sectorul urmând zona de
partiție.
Prima zonă a unui disc GPT utilizează o tabelă de partiție standard DOS, pe care am examinat-o anterior. Un
disc GPT are o tabelă de partiții DOS cu o intrare care se întinde pe întregul disc. Un exemplu este prezentat
aici:

În urma tabelului de partiții DOS, sectorul 1 conține antetul GPT. Antetul GPT descrie aspectul discului.
Structura sa de date este dată în Tabelul 6.16.

Utilizând aceste valori, putem determina aspectul discului, inclusiv locațiile tabelei de partiții, a zonei de
partiție și a copiilor de rezervă ale antetului GPT și ale tabelei de partiții.
Un instrument alternativ care poate fi utilizat pe o imagine de disc brut este instrumentul pdisk cu pavilion -
dump pe OS X:

Putem vedea valoarea semnăturii în primele 8 octeți și octeții 12 până la 15 ne arată că dimensiunea antetului
GPT este de 96 octeți (0x5c). Octetele 32 până la 39 arată că copia de rezervă a antetului este situată în
sectorul 120,103,199 (0x0728a1af). Rețineți că acesta este același sector pe care l-am văzut ca ultimul sector
al partiției de protecție DOS. Byte 40 la 47 arată că zona de partiție începe în sectorul 34 (0x22) și se termină
în sectorul 120,103,166 (0x0728a0fe). Byte 72 la 79 arată că tabela de partiții începe în sectorul 2, iar octeții
80 până la 83 arată că există 128 de intrări în tabel (0x80) 108. Byte 84 la 87 arată că fiecare intrare este de
128 (0x80) octeți, ceea ce înseamnă că sunt necesare 32 de sectoare. Folosind informațiile din antetul GPT,
putem găsi începutul și sfârșitul tabelei de partiții și mărimea fiecărei intrări. Fiecare intrare de tabel are
câmpurile din Tabelul 6.17.

Valoarea tipului de 128 biți identifică conținutul partiției. Cu un disc GPT, partițiile sunt utilizate pentru a ține
atât informațiile despre sistem, cât și sistemele de fișiere. De exemplu, fiecare computer care utilizează EFI
trebuie să aibă o partiție de sistem EFI care conține fișierele necesare pentru a porni hardware-ul și software-
ul sistemului. Furnizorii atribuie valorile tipului; din păcate, în prezent nu există o listă centrală de valori care
sunt utilizate. Specificația Intel definește tipurile de partiții date în Tabelul 6.18.
Microsoft a definit unele dintre valorile de tip pe care le utilizează și acestea sunt date în Tabelul 6.19.

Windows utilizează o "Partiție rezervată" pentru a stoca fișiere și date temporare. O "partiție primară"
este o partiție de bază și un sistem de fișiere este amplasat în interiorul acesteia. Partițiile primare sunt
similare cu
partițiile primare pe care le-am văzut cu partițiile DOS. "LDM Metadata Partition" și
"LDM Data Partition" sunt utilizate pentru discurile dinamice Microsoft, care sunt descrise în următorul
capitol. Discurile dinamice sunt utilizate pentru a îmbina datele din mai multe discuri într-un singur volum.
Câmpul de atribut pe 64 de biți este împărțit în trei părți. Cel mai mic bit este setat la 1 atunci când sistemul
nu poate funcționa fără această partiție. Aceasta este utilizată pentru a determina dacă un utilizator are
permisiunea de a șterge o partiție. Bitile de la 1 la 47 sunt nedefinite, iar biții 48-63 pot stoca toate datele pe
care tipul de partiție le dorește. Fiecare tip de partiție poate folosi aceste valori așa cum le place.

Linia de sus este octeți de la 0 la 15 și vedem tipul de partiție GUID și GUID-ul partiției este dat pe a doua linie
în bytes 16 la 31. Adresa de pornire a partiției este în octeți 32-39 și vedem că ea este sectorul 32 (0x0022).
Adresa de încheiere a partiției este dată în bytes 40 - 47 și este de 4.096.000 (0x003E8000).
Putem vedea output-ul de rulare mmls pe această imagine aici:

La sfârșitul discului sunt copiile de rezervă ale antetului GPT și ale tabelei de partiții. Ele sunt în ordine
inversă: antetul GPT este în ultimul sector, iar tabela de partiții este înaintea acestuia. În imaginea exemplului
nostru, antetul GPT de rezervă se află în sectorul 120.103.199.
Linux poate fi folosit pentru a descompune un disc GPT în partiții, astfel încât să poată fi utilizate alte
instrumente de analiză a sistemului de fișiere. De asemenea, Kitul Sleuth acceptă partiții GPT dacă trebuie să
rupeți discul. Discurile GPT au o copie de siguranță a tabelei de partiții, astfel încât datele pot fi recuperate
mai ușor dacă tabela originală devine coruptă. Porțiunile neutilizate din sectorul 0, sectorul 1 și din toate
intrările de partiții neutilizate ar putea fi utilizate pentru a ascunde datele.
De la scrierea acestei cărți, partițiile GPT nu sunt întâlnite frecvent în timpul anchetelor și nu le susțin toate
instrumentele de analiză criminalistică. În viitor, acest lucru nu va fi cu siguranță cazul, deoarece mai multe
sisteme folosesc hardware pe 64 de biți. Partițiile GPT sunt mult mai flexibile și mai simple decât partițiile
DOS

RAID

RAID-ul reprezintă o serie de arhitecturi reduse de discuri necostisitoare și este utilizat în mod obișnuit în
sistemele de performanță ridicată sau în sistemele critice. RAID a fost propus pentru prima dată la sfârșitul
anilor 1980 ca o metodă de utilizare a unor discuri ieftine pentru a atinge performanțe și capacități de stocare
similare discurilor scumpe de înaltă performanță. Teoria principală din spatele RAID este de a folosi mai
multe discuri în loc de unul pentru a oferi redundanță și pentru a îmbunătăți performanța discului. Un
controler de hardware sau un driver de software îmbină mai multe discuri împreună, iar calculatorul vede un
singur volum mare.
RAID-ul se găsește numai în servere de vârf, dar acum devine tot mai frecvent pe sistemele desktop. Microsoft
Windows NT, 2000 și XP au opțiunea de a oferi utilizatorului un anumit nivel de RAID. În această secțiune,
vom descrie mai întâi tehnologia implicată cu sistemele RAID și apoi vom discuta cum să achiziționăm sau să
analizăm un sistem RAID.
Există mai multe niveluri de RAID și fiecare nivel oferă o valoare diferită de fiabilitate și îmbunătățiri ale
performanței. În această secțiune, vom descrie modul în care funcționează șase dintre diferitele niveluri RAID.
Un volum RAID este volumul creat de hardware sau software care combină hard disk-urile.

RAID-urile cu nivel 0 utilizează două sau mai multe discuri, iar datele sunt dungate pe discuri în bucăți de
dimensiuni bloc. Când datele sunt dungate, blocurile consecutive ale volumului RAID sunt mapate în blocuri
pe discurile alternative. De exemplu, dacă există două discuri, blocul RAID 0 este blocul 0 pe discul 1, blocul
RAID 1 este blocul 0 pe discul 2, blocul RAID 2 este blocul 1 pe discul 1 și blocul RAID 3 este blocul 1 pe discul
2. Acest lucru poate fi văzut în Figura 7.1 unde "D0", "D1", "D2" și "D3" reprezintă blocuri de date. Un sistem
ar folosi acest nivel de RAID din motive de performanță și nu din redundanță, deoarece există doar o singură
copie a datelor.

RAID-urile de nivel 1 utilizează două sau mai multe discuri și oglindesc datele. Când datele sunt scrise pe un
disc, acestea sunt, de asemenea, scrise pe celălalt disc și ambele discuri conțin aceleași date alocate. Cele două
discuri pot conține date diferite în sectoarele care nu sunt utilizate în volumul RAID. Dacă există o eroare a
discului, celălalt disc poate fi utilizat pentru recuperare. De exemplu, dacă avem două discuri într-un volum
RAID de nivel 1, blocul RAID 0 este bloc 0 pe ambele discuri 1 și 2, blocul RAID 1 este blocul 1 pe ambele
discuri 1 și 2 etc. De asemenea, 7.1.
RAID-urile de nivel 2 sunt rare și utilizează coduri de corectare a erorilor pentru a repara orice date incorecte
atunci când sunt citite de pe discuri. Datele sunt dungate pe mai multe discuri folosind bucăți de dimensiuni
bit, iar discurile suplimentare conțin valorile codului de corectare a erorilor.
RAID-urile de nivel 3 necesită cel puțin trei discuri și au un disc de paritate dedicat. Discul de paritate este
folosit pentru a recunoaște erorile din celelalte două discuri sau pentru a recrea conținutul unui disc dacă
acesta nu reușește. Un exemplu ineficient de paritate este adăugarea tradițională. Dacă am două valori, 3 și 4,
le pot adăuga și paritatea mea este 7. Dacă oricând cele două valori nu se adaugă la 7, știu că există o eroare.
Dacă una dintre valori este pierdută, o pot recupera prin scăderea valorii care încă mai există de la 7. Cu RAID
Level 3, datele sunt împărțite în bucăți de dimensiuni binare și dungate sau alternate între discurile de date.
Un disc de paritate dedicat conține valorile necesare duplicării datelor pentru a reconstrui orice date pierdute
atunci când unul dintre discuri eșuează. Acest nivel este similar cu ceea ce am văzut la nivelul 0, cu excepția
faptului că dimensiunea stripingului este mult mai mică (octeți în loc de blocuri) și există un disc de paritate
dedicat. Un exemplu cu două discuri de date și un disc de paritate poate fi găsit în Figura 7.2.
O metodă comună de calculare a informațiilor despre paritate este utilizarea operației "exclusivă" (XOR).
Operatorul XOR ia două intrări de un bit și generează o ieșire de un bit utilizând 113 normele găsite în
Tabelul 7.1. XOR a două valori mai mari decât un bit poate fi calculat prin aplicarea independentă a regulilor
XOR la fiecare set de biți.

Operatorul XOR este util deoarece, dacă cunoașteți oricare dintre valorile de intrare sau de ieșire, puteți
calcula a treia valoare. Acest lucru este similar cu adăugarea a două numere și apoi scăderea pentru a obține
originalul. De exemplu, să fie trei discuri de date și un disc de paritate. Discurile de date au valorile: 1011
0010, 1100 1111 și 1000 0001. Paritatea pentru aceste valori va fi calculată după cum urmează:

RAID-urile de nivel 4 sunt similare nivelului 3, cu excepția faptului că datele sunt dungate în bucăți de
dimensiuni reduse în loc de bucăți de dimensiune octet. Nivelul 4 utilizează două sau mai multe discuri de
date și un disc de paritate dedicat, astfel încât arhitectura sa este identică cu cea din Figura 7.2. RAID-urile
nivelului 5 sunt similare nivelului 4, dar elimină blocajul asociat cu discul de paritate. La nivelul 5, nu există
un disc de paritate dedicat, iar toate discurile conțin atât date, cât și valori de paritate pe o bază alternativă.
De exemplu, dacă există trei discuri, blocul RAID 0 este blocul 0 al discului 1, blocul RAID 1 se află în blocul 0
al discului 2, iar blocul de paritate corespunzător este blocul 0 al discului 3. Următorul bloc de paritate va fi
blocul 1 din discul 2 și va conține XOR-ul blocului 1 al discurilor 1 și 3. Acest lucru poate fi văzut în Figura 7.3.

Nivelul 5 este una dintre cele mai comune forme de RAID și necesită cel puțin trei discuri. Există multe alte
niveluri RAID care nu sunt foarte frecvente. Acestea combină mai multe niveluri RAID și fac analiza chiar mai
greu.
O implementare RAID hardware poate veni în două forme majore: ca un controler special care se conectează
într-unul din autobuze sau ca un dispozitiv care se conectează la un controler de disc normal, cum ar fi ATA,
SCSI sau Firewire. În ambele cazuri, hard-discurile se conectează într-o bucată specială de hardware și, în
general, computerul vede doar volumul RAID și nu discurile individuale. Figura 7.4 prezintă conexiunile
dintre discuri, controler și volum.
Dacă se folosește un controler RAID special, computerul sondează controlerul la pornire. Cu multe sisteme
IA32, BIOS-ul pentru controlerul RAID afișează mesaje pe ecran și utilizatorul poate intra într-un ecran de
configurare pentru a configura controlerul și discurile. Sistemul de operare are nevoie de drivere hardware
pentru controlerul RAID. Discurile create cu un singur controler nu pot fi folosite cu un alt controler. Dacă se
utilizează un dispozitiv special care se află între controlerul de disc normal și hard disk-urile, nu sunt
necesare drivere speciale.
Există multe tipuri de implementări hardware RAID, deci vom oferi doar câteva linii directoare aici. Pentru a
analiza volumul RAID, este mai ușor să achiziționați volumul final RAID ca și cum ar fi un disc normal normal
și să utilizați instrumentele tipice de sistem de fișiere și de analiză a partițiilor. O metodă de a efectua acest
lucru este de a boota sistemul suspect cu un CD bootabil Linux sau similar, care are drivere pentru controlerul
RAID. Apoi puteți folosi dd sau o comandă similară pentru a achiziționa volumul final RAID. Rețineți că unele
volume RAID sunt foarte mari; prin urmare, veți avea nevoie de o cantitate mare de spațiu pe care să stocați
imaginea (sau poate volumul propriu RAID).
Diferitele CD-uri Linux bootabile au drivere pentru controlere RAID diferite, așa că verificați CD-urile
preferate și faceți o listă a controlorilor pe care îi suportă. Este posibil să aveți nevoie să creați propriul CD
sau să aduceți mai multe CD-uri cu dvs., astfel încât să fiți pregătiți.
Este posibil ca volumul RAID să nu utilizeze toate sectoarele pe un disc și este posibil ca sectoarele neutilizate
să conțină date ascunse. Prin urmare, achiziționarea conținutului fiecărui disc în plus față de volumul RAID
este soluția cea mai sigură, deși nu întotdeauna cea mai ușoară. Dacă nu cunoașteți structura datelor, ar putea
fi dificil să identificați sectoarele neutilizate ale discului. Dacă aveți cuvinte cheie specifice pentru care căutați,
pe lângă căutarea volumului RAID, pot fi căutate discurile individuale.
Cu un software RAID, sistemul de operare are drivere speciale care îmbină discurile individuale. În acest
scenariu, sistemul de operare vede discurile individuale, dar poate afișa numai utilizatorului volumul RAID. În
general, discurile individuale pot fi accesate prin dispozitivele brute din sistemul UNIX sau prin intermediul
obiectelor de dispozitiv din Microsoft Windows. Majoritatea sistemelor de operare oferă acum câteva niveluri
de RAID, inclusiv Microsoft Windows NT, 2000 și XP; Apple OS X; Linux; Sun Solaris; HP-UX; și IBM AIX.
Software-ul RAID nu este la fel de eficient ca hardware-ul RAID, deoarece CPU-ul trebuie folosit pentru a
calcula biții de paritate și a împărți datele. Putem vedea conexiunile din Figura 7.5.

În Windows 2000 și XP, Logical Disk Manager (LDM) controlează volumele RAID. LDM cere ca discurile să fie
formatate ca discuri dinamice, care sunt diferite de partițiile bazate pe DOS pe care le-am văzut anterior în
Capitolul 5, "Partiții bazate pe PC". LDM poate crea volume RAID nivel 0 (striping), RAID nivel 1 (mirroring) și
RAID nivel 5 (striping with parity), deși nivelurile RAID 1 și 5 sunt disponibile numai cu versiunea de server
de Windows. Un disc dinamic poate fi folosit pentru mai mult de un volum RAID, dar acest lucru este puțin
probabil dacă sistemul utilizează RAID pentru performanță sau pentru motive de redundanță. Toate
informațiile de configurare pentru volumul Windows RAID sunt stocate pe discuri și nu pe sistemul local.
Analiza și achiziționarea software-ului RAID este similar cu un RAID hardware. Pe baza tehnologiei actuale,
scenariul cel mai simplu este să achiziționați volumul RAID, astfel încât să poată fi utilizate instrumentele
obișnuite ale sistemului de fișiere. Spre deosebire de hardware-ul RAID, există câteva instrumente de analiză
care pot îmbina discurile individuale.
Cu software-ul RAID, este posibil să nu aveți nevoie de software-ul original pentru a recrea volumul RAID. De
exemplu, Linux are suport pentru Windows Logical Disk Management (LDM) și poate fi capabil să îmbine
corect discurile Windows. Nu toate kernelurile Linux sunt livrate cu LDM activat, dar îl puteți activa prin
recompilarea kernel-ului. Dacă utilizați Microsoft Windows pentru a crea volumul RAID, aplicați blocante de
scriere hardware pentru a preveni suprascrierea datelor. Să ne uităm la un exemplu Windows LDM cu Linux.
Când bootați un kernel Linux cu suport pentru LDM, este creat un dispozitiv pentru fiecare dintre partițiile
din RAID. Trebuie să editați fișierul / etc / raidtab astfel încât să descrie configurația RAID și partițiile. De
exemplu, următorul exemplu este un fișier de configurare pentru Windows LDM RAID nivel 0 (striping) cu
două partiții (/ dev / hdb1 și / dev / hdd1) utilizând blocuri de 64KB:

Folosind acest fișier de configurare, dispozitivul / dev / md0 poate fi montat numai pentru citire sau imaginat
folosind dd. Testați procesul înainte de un incident și faceți copii de rezervă ale discurilor reale în timpul unui
incident. Vom acoperi procesul de utilizare a Linux cu Windows LDM în detaliu în secțiunea "Spanning Disk".
Un proces similar este folosit pentru crearea unui RAID software Linux MD pe sistemul de achiziție. Dacă
puteți copia fișierul raidtab din sistemul original, conținutul său poate fi folosit ca bază pentru a face volumul
RAID la sistemul de achiziție.
Investigarea unui sistem cu un volum RAID poate fi dificilă deoarece nu se întâlnesc frecvent și nu fiecare
implementare este aceeași. Utilizați blocatoarele de scriere hardware sau jumperul numai pentru citire pe
discurile individuale pentru a preveni modificările. Poate fi util să faceți imagini ale discurilor individuale
înainte de a face o imagine a volumului total de RAID. Imaginile individuale ale discurilor pot conține date
ascunse care nu se află în volumul RAID final. Nu s-au publicat cazuri care implică date RAID ascunse, dar ar
putea fi posibil în funcție de cine anchetați. De asemenea, este posibil ca întregul disc să nu fie folosit pentru
RAID. Unele sisteme RAID utilizează numai o parte din hard disk, astfel încât să fie mai ușor să înlocuiți discul
dacă acesta nu reușește. De exemplu, doar 40 GB din fiecare disc individual din volumul RAID ar putea fi
utilizate, indiferent dacă fiecare disc este de 40 GB sau 80 GB. Zona neutilizată poate conține date dintr-o
utilizare anterioară sau poate fi utilizată pentru a ascunde date.
Această secțiune a făcut o prezentare generală a RAID-ului. RAID este comună în serverele high-end și devine
tot mai frecventă în sistemele desktop care necesită performanță sau cantități mari de spațiu pe disc. Detaliile
la nivel scăzut nu au fost date deoarece variază în funcție de implementare și nu există un singur standard.
Mai multe detalii vor fi oferite mai târziu în secțiunea "Disk Spanning", deoarece multe sisteme încorporează
software-ul RAID în suportul pentru gestionarea volumelor. Conceptul-cheie pentru investigații este de a
practica achiziționarea de sisteme RAID. Dacă este posibil, este mai ușor să achiziționați întregul volum RAID
la scena și apoi să efectuați analize utilizând instrumente standard. Problemele cu această abordare sunt că
necesită un disc foarte mare pentru salvarea datelor și ar putea exista date despre discurile individuale care
nu sunt afișate în volumul RAID final. Prin urmare, este cel mai sigur să achiziționați mereu și discurile
individuale.

ANALIZA SISTEMELOR DE FIȘIERE


Analiza sistemului de fișiere examinează datele dintr-un volum (adică o partiție sau un disc) și le
interpretează ca un sistem de fișiere. Există multe rezultate finale din acest proces, dar exemple includ
listarea fișierelor într-un director, recuperarea conținutului șters și vizualizarea conținutului unui
sector.
Sistemele de fișiere oferă un mecanism pentru utilizatori de a stoca datele într-o ierarhie de fișiere și
directoare. Un sistem de fișiere constă din date structurale și de utilizator care sunt organizate astfel încât
computerul să știe unde să le găsească. În majoritatea cazurilor, sistemul de fișiere este independent de orice
computer specific.
FAT32 – Permite atât gestionarea fişierelor cu nume lungi, cât şi o optimizare a spaţiului ocupat de fişierele
mici pe disc, prin micşorarea dimensiunii cluster-ului.
Exemplu: o partiţie de 2 GB pe sistemul FAT16 va avea 65.526 clustere (2 16 fără câteva valori rezervate) de
câte 32 KB (64 sectoare), iar pe sistemul FAT32, 524.208 clustere de câte 4 KB (8 sectoare). Un fişier de 3 KB
va “risipi” 29 KB pe sistemul FAT16 şi doar 1 KB pe sistemul FAT32.
NTFS (New Technology File System)
Este un sistem de fişiere dezvoltat pentru Windows NT 3.1 (la mijlocul anului 1993) şi dezvoltat ulterior la
versiunile 1.2 (cunoscut şi ca NTFS 4.0 pentru Windows NT 3.5 şi 4.0), NTFS 5.0 (Windows 2000), NTFS 5.1
(Windows XP), NTFS 5.2 (Windows Server 2003), NTFS 6.0 (Windows Vista, Windows Server 2008).
 foloseşte adrese de disc de 64 de biţi;
 poate suporta partiţii de până la 264 bytes;
 oferă posibilitatea folosirii caracterelor Unicode în numele de fişiere, maxim 255 de caractere, inclusiv
spaţii şi puncte;
 permite indexare generală a fişierelor;
 fiabilitate – oferă un mecanism îmbunătăţit pentru transferul fără pierderi a datelor, îmbunătăţirea
toleranţei la defectări şi recuperare a datelor, suportă hard-diskuri în matrici RAID (Redundant Arrays of
Inexpensive Disks)
 suport îmbunătăţit pentru hard-disk-uri mari
 optimizarea spaţiului ocupat pe disc (utilizarea altei metode de alocare a spaţiului pentru fişiere şi evitarea
pierderii spaţiului de stocare – “slack” – existentă la FAT)
 suport îmbunătăţit pentru metadata (fişierele metadata sunt structuri de date localizate în MFT folosite de
NTFS pentru accesul şi managementul fişierelor). Acest sistem de fişiere se bazează pe principiul „totul
este fişier”. Astfel, descriptorul de volum, informaţia de boot, înregistrări ale sectoarelor defecte etc. sunt
toate stocate în fişiere.
 managementul spaţiului ocupat de date (disk quota) – administratorul sistemului poate monitoriza şi
limita spaţiul ocupat de fişierele unui utilizator sau grup de utilizatori
 compresia datelor
 implementarea unui mecanism pentru inserarea punctelor de montare (Reparse Points)
 menţinerea unui jurnal la nivel de partiţie care să monitorizeze operaţiile efectuate asupra fişierelor şi
directoarelor
 asigură defragmentarea discului
EXT 2/3 (Extended File System)

EXT2 (Second Extended)


Spaţiul este împărţit în blocuri şi organizat sub formă de grupuri de blocuri în scopul reducerii fragmentării
datelor şi minimizarea căutărilor (disk seek) la citirea unei mari cantităţi de date consecutive. Fiecare grup de
blocuri conţine:
- un superbloc (metainformaţii esenţiale şi statistici despre sistemul de fişiere);
- un descriptor de grup, cu informaţii despre grupul de blocuri, inode şi începutul tabelei de inoduri pentru
fiecare grup de blocuri;
- blocuri de date (conţinutul efectiv al fişierelor).
Un inode identifică în mod unic un fişier de pe disc şi deţine informaţii despre acesta (uid – user id, gid –
group id, drepturi de acces – Read, Write, eXecute, lungime, timpi de acces / modificare, numărul de legături,
pointeri la blocurile de date).

EXT3- este compatibil cu sistemul de fişiere EXT2, adăugând facilitatea de jurnalizare (o metodă de
recuperare mai bună a datelor în caz de oprire necorespunzătoare a sistemului, prin introducerea unui jurnal
care va fi analizat şi corectat pentru a reface sistemul de fişiere, în locul verificării fişierelor propriu-zise).

2. Reţele de calculatoare (modelele de referinţă ISO-OSI şi TCP/IP; topologii de reţea; protocoale


de rutare; protocolul IP; utilitare TCP/IP; adresare IP etc.);
Modelul de referinţă OSI
Modelul de referinţă OSI- Acest model se bazează pe o propunere dezvoltată de către Organizaţia
Internaţională de Standardizare (International Standards Organization - ISO) ca un prim pas către
standardizarea internaţională a protocoalelor folosite pe diferite niveluri. Modelul se numeş-
te ISO OSI (Open Systems Interconnection, rom: interconectarea sistemelor deschise), pentru că el

se ocupă de conectarea sistemelor deschise - adică de sisteme deschise comunicării cu alte sisteme.
Modelul OSI cuprinde şapte niveluri. Principiile aplicate pentru a se ajunge la cele şapte niveluri
sunt următoarele:
1. Un nivel trebuie creat atunci când este nevoie de un nivel de abstractizare diferit.
2. Fiecare nivel trebuie să îndeplinească un rol bine definit.

3. Funcţia fiecărui nivel trebuie aleasă acordându-se atenţie definirii de protocoale stan-
dardizate pe plan internaţional.

4. Delimitarea nivelurilor trebuie făcută astfel încât să se minimizeze fluxul de informaţii


prin interfeţe.
5. Numărul de niveluri trebuie să fie suficient de mare pentru a nu fi nevoie să se introducă în
acelaşi nivel funcţii diferite şi suficient de mic pentru ca arhitectura să rămână funcţională.
Modelul

OSI nu reprezintă în sine o arhitectură de reţea, pentru că nu specifică serviciile şi protocoalele utili-
zate la fiecare nivel. Modelul spune numai ceea ce ar trebui să facă fiecare nivel. ISO a produs de

asemenea standarde pentru fiecare nivel, însă aceste standarde nu fac parte din modelul de referinţă
propriu-zis. Fiecare din standardele respective a fost publicat ca un standard internaţional separat.

Nivelul fizic
Nivelul fizic se ocupă de transmiterea biţilor printr-un canal de comunicaţie. Proiectarea trebuie
să garanteze că atunci când unul din capete trimite un bit 1, acesta e receptat în cealaltă parte
ca un bit 1, nu ca un bit 0. Problemele tipice se referă la câţi volţi trebuie utilizaţi pentru a re-
prezenta un 1 şi câţi pentru un 0, dacă transmisia poate avea loc simultan în ambele sensuri,
cum este stabilită conexiunea iniţială şi cum este întreruptă când au terminat de comunicat
ambele părţi, câţi pini are conectorul de reţea şi la ce foloseşte fiecare pin. Aceste aspecte de
proiectare au o legătură strânsă cu interfeţele mecanice, electrice, funcţionale şi procedurale,
ca şi cu mediul de transmisie situat sub nivelul fizic.

Nivelul legătură de date


Sarcina principală este de a transforma un mijloc oarecare de
transmisie într-o linie care să fie disponibilă nivelului reţea fără erori de transmisie nedetectate.
Nivelul legătură de date realizează această sarcină obligând emiţătorul să descompună datele de
intrare în cadre de date (în mod tipic, câteva sute sau câteva mii de octeţi) şi să transmită cadrele
secvenţial. Dacă serviciul este sigur, receptorul confirmă fiecare cadru trimiţând înapoi un cadru de
confirmare pozitivă.

Nivelul reţea
-se ocupă de controlul funcţionării subreţelei. O problemă cheie în proiectare este
determinarea modului în care pachetele sunt dirijate de la sursă la destinaţie. Dirijarea se poate baza
pe tabele statistice care sunt ,,cablate” intern în reţea şi care sunt schimbate rar. Traseele pot fi de
asemenea stabilite la începutul fiecărei conversaţii, de exemplu la începutul unei sesiuni la terminal
(de ex. o operaţie de login pe o maşină la distanţă). Dirijarea poate fi foarte dinamică, traseele determinându-
se pentru fiecare pachet în concordanţă cu traficul curent din reţea.

Nivelul transport
Rolul principal al nivelului transport este să accepte date de la nivelul sesiune, să le descompună,
dacă este cazul, în unităţi mai mici, să transfere aceste unităţi nivelului reţea şi să se asigure că toate
fragmentele sosesc corect la celălalt capăt.
Cel mai obişnuit tip de conexiune transport este un canal punct-la-punct fără erori care furnizează mesajele sau
octeţii în ordinea în care au fost trimişi.

Nivelul sesiune
Nivelul sesiune permite utilizatorilor de pe maşini diferite să stabilească între ei sesiuni. Sesiunile
oferă diverse servicii:
 controlul dialogului
 gestionarea jetonului
 sincronizarea

Nivelul prezentare
Spre deosebire de nivelurile inferioare, care se ocupă numai de transferul biţilor dintr-un loc în altul, nivelul
prezentare se ocupă de sintaxa şi semantica informaţiilor transmise. Pentru a face posibilă comunicarea între
calculatoare cu reprezentări diferite ale datelor, structurile de date care se schimba între ele pot fi definite într-
un mod abstract, alături de o codificare standardizată ce va fi utilizată „pe cablu”. Nivelul prezentare
gestionează aceste structuri de date abstracte şi permite definirea şi comunicarea unor structuri de date de
nivel mai înalt (de ex. înregistrări bancare).

Nivelul aplicaţie
Nivelul aplicaţie conţine o varietate de protocoale frecvent utilizate. Un exemplu de protocol utilizat pe scară
largă este HTTP (HyperText Transfer Protocol, rom: protocol de transfer al hiper-textului), care sta la baza
WWW (World Wide Web, rom: reţea de întindere planetară). Atunci când un program de navigare (browser)
accesează o pagină Web, el trimite serverului numele paginii pe care o doreşte folosind HTTP. Serverul va
trimite ca răspuns pagina. Alte protocoale de aplicaţie sunt folosite pentru transferul fişierelor, poştă
electronica, ştiri în reţea.

Modelul de referinţă TCP/IP

Nivelul internet
Nivelul internet este axul pe care se centrează întreaga arhitectură. Rolul său este de a permite gazdelor să
emită pachete în orice reţea şi a face ca pachetele să circule independent până la destinaţie (fiind posibil ca
aceasta să se găsească pe o altă reţea).
Pachetele pot chiar să sosească într-o ordine diferită faţă de cea în care au fost trimise, caz în care dacă se
doreşte livrarea lor ordonată - rearanjarea cade în sarcina nivelurilor superioare.
Nivelul internet defineşte oficial un format de pachet şi un protocol numit IP (InternetProtocol, rom: protocol
Internet). Sarcina nivelului internet este să livreze pachete IP către destinaţie. Problemele majore se referă la
dirijarea pachetelor şi evitarea congestiei. În consecinţă, este rezonabil să spunem că nivelul internet din
TCP/IP funcţionează asemănător cu nivelul reţea din OSI.
Nivelul transport
Nivelul situat deasupra nivelului internet din modelul TCP/IP este frecvent numit nivelul transport. Acesta este
proiectat astfel, încât să permită conversaţii între entităţile pereche din gazdele sursă şi, respectiv, destinaţie,
la fel ca în nivelul transport OSI. În acest sens au fost definite două protocoale capăt-la-capăt.
TCP (Transmission Control Protocol, rom: protocolul de control al transmisiei), este un protocol sigur
orientat pe conexiuni care permite ca un flux de octeţi trimişi de pe o maşină să ajungă fără erori pe orice altă
maşină din inter-reţea. Acest protocol fragmentează fluxul de octeţi în mesaje discrete şi pasează fiecare
mesaj nivelului internet. La destinaţie, procesul TCP receptor reasamblează mesajele primite într-un flux de
ieşire. TCP tratează totodată controlul fluxului pentru a se asigura că un un emiţător rapid nu inundă un
receptor lent cu mai multe mesaje decât poate acesta să prelucreze.
UDP (User Datagram Protocol, rom: protocolul datagramelor utilizator), este un protocol nesigur, fără
conexiuni, destinat aplicaţiilor care doresc să utilizeze propria lor secvenţiere şi control al fluxului, şi nu pe cele
asigurate de TCP. Protocolul UDP este de asemenea mult folosit pentru interogări rapide întrebare-răspuns,
client-server şi pentru aplicaţii în care comunicarea promptă este mai importantă decât comunicarea cu
acurateţe, aşa cum sunt aplicaţiile de transmisie a vorbirii şi a imaginilor video.

Nivelul aplicaţie
Deasupra nivelului transport se află nivelul aplicaţie. Acesta conţine toate protocoalele de nivel mai înalt.

Nivelul gazdă-reţea
Sub nivelul internet se află necunoscutul. Modelul de referinţă TCP/IP nu spune mare lucru despre ce se
întâmplă acolo, însă menţionează că gazda trebuie să se lege la reţea, pentru a putea trimite pachete IP, folosind
un anumit protocol. Acest protocol nu este definit şi variază de la gazdă la gazdă şi de la reţea la reţea.

Topologii de rețea- prin topologia unei rețele se înțelege modul de interconectare a calculatoarelor în rețea.
Folosirea unei anumite topolog ii are influenta asupra vitezei de transmitere a datelor, a costului de
interconectare si a fiabilitatii retelei. Exista cateva topologii care s-au impus si anume: magistrala, inel, arbore.
Pe langa acestea intalnim si alte modele topologice: stea, inele intersectate, topologie completa si topologie
neregulata.
Topologia de magistrală este cea mai folosită atunci când se realizează rețele locale de mici dimensiuni, iar
performanțele nu trebuie să fie spectaculoase. Acest model topologic se mai numeste și magistrală liniară,
deoarece există un singur cablu care leagă toate calculatoarele din rețea. Avantajul este atât acela al costului
mai scăzut (se folosește mai puțin cablu), dar și acela ca, în cazul ruperii unui cablu sau defectării unui
calculator, nu se ajunge la oprirea întregii rețele. Dezavantajul folosirii unui singur cablu este ca, atunci când
dorește să transmită date, calculatorul trebuie să "lupte" pentru a câștiga accesul (trebuie să aștepte eliberarea
cablului).
Topologia de inel conectează fiecare calculator de alte două, imaginea fiind aceea a unor calculatoare așezate
în cerc. Datele transmise de un calculator trec prin toate calculatoarele intermediare înainte de a ajunge la
destinație. Dacă nu se folosesc cabluri suplimentare, oprirea unui calculator sau ruperea unui cablu duce la
oprirea întregii rețele. Performanțele unei rețele inel sunt ceva mai mari decât ale unei rețele magistrală.
Topologia stea folosește un calculator central care va fi conectat cu toate celelalte calculatoare prin cabluri
directe. Toate transferurile de date se realizează prin intermediul calculatorului central. Dacă se folosește un
calculator central de mare putere, atunci rețeaua va avea performanțe ridicate, însă defectarea acestuia duce
la oprirea rețelei.
Se pot folosi topologii combinate, cum ar fi lanțul de stele însă, orice topologie ar fi aleasă, există un număr de
probleme ce trebuiesc rezolvate (modul de obținere a accesului este una dintre cele mai importante, trebuind
eliminată posibilitatea ca un singur calculator să "monopolizeze" mediul de transmisie). Apar probleme
suplimentare atunci când rețeaua noastră este eterogenă (conectează diverse tipuri de calculatoare sau este
formată din mai multe rețele diferite ca tip).
Trebuie să facem distincție între topologia fizică și topologia logică (modul în care datele sunt transferate
de la un calculator la altul).

PROTOCOLUL IP
O datagramă IP constă dintr-o parte de antet şi o parte de text. Antetul are o parte fixă de 20 de octeţi şi o parte
opţională cu lungime variabilă. Antetul este transmis în ordinea big endian (cel mai semnificativ primul): de la
stânga la dreapta, începând cu bitul cel mai semnificativ al câmpului Versiune. (Procesorul SPARC este de tip
big endian; Pentium este de tip little endian - cel mai puţin semnificativ primul). Pe maşinile de tip little endian,
este necesară o conversie prin program atât la transmisie cât şi la recepţie.

Câmpul Versiune memorează cărei versiuni de protocol îi aparţine datagrama. Prin includerea unui câmp
versiune în fiecare datagramă, devine posibil ca tranziţia între versiuni să dureze ani de zile, cu unele maşini
rulând vechea versiune, iar altele rulând-o pe cea nouă. La ora actuală are loc o tranziţie de la IPv4 la IPv6, care
deja durează de câţiva ani şi în nici un caz nu s-a apropiat de final. IPv5 afost un protocol experimental de flux
în timp real care nu a fost folosit pe scară largă.
IHL, este pus la dispoziţie pentru a spune cât de lung este antetul, în cuvinte de 32 de octeţi. Valoarea minimă
este 5, care se aplică atunci când nu sunt prezente opţiuni. Valoarea maximă a acestui câmp de 4 biţi este 15,
ceea ce limitează antetul la 60 de octeţi şi, astfel, câmpul de opţiuni la 40 de octeţi. Pentru unele opţiuni, cum
ar fi cea care înregistrează calea pe care a mers un pachet, 40 de octeţi sunt mult prea puţini, făcând această
opţiune nefolositoare.
Câmpul Tip serviciu este unul dintre puţinele câmpuri care şi-a schimbat sensul (oarecum) de-a lungul anilor.
A fost şi este în continuare menit să diferenţieze diferitele clase de servicii. Sunt posibile diferite combinaţii de
fiabilitate şi viteză. Pentru vocea digitizată, livrarea rapidă are prioritate faţă de transmisia corectă. Pentru
transferul de fişiere, transmisia fără erori este mai importantă decât transmisia rapidă.
La început, câmpul de 6 biţi conţinea (de la stânga la dreapta), un câmp Precedenţă de trei biţi şi trei indicatori,
D, T şi R. Câmpul Precedenţă reprezintă prioritatea, de la 0 (normal) la 7 (pachet de control al reţelei). Cei trei
biţi indicatori permiteau calculatorului gazdă să specifice ce îl afectează cel mai mult din mulţimea {Delay
(Întârziere), Throughput (Productivitate), Reliability (Fiabilitate)}. În teorie, aceste câmpuri permit ruterelor
să aleagă între, de exemplu, o legătură prin satelit cu o productivitate mare şi o întârziere mare sau o linie
dedicată cu o productivitate scăzută şi o întârziere mică. În practică, ruterele curente ignoră adesea întregul
câmp Tip serviciu.
Lungimea totală include totul din datagramă - atât antet cât şi date. Lungimea maximă este de 65535 octeţi.
În prezent, această limită superioară este tolerabilă, dar în viitoarele reţele cu capacităţi de gigaocteţi vor fi
necesare datagrame mai mari. Câmpul Identificare este necesar pentru a permite gazdei destinaţie să
determine cărei datagrame îi aparţine un nou pachet primit. Toate fragmentele unei datagrame conţin aceeaşi
valoare de Identificare.
Urmează un bit nefolosit şi apoi două câmpuri de 1 bit.

DF însemnă Don t Fragment. Acesta este un ordin dat ruterelor ca să nu fragmenteze datagrama pentru că
destinaţia nu este capabilă să reasambleze piesele la loc. De exemplu, când un calculator porneşte, memoria sa
ROM poate cere să i se trimită o imagine de memorie ca o singură datagramă. Prin marcarea datagramei cu
bitul DF, emiţătorul ştie că aceasta va ajunge într-o singură bucată, chiar dacă aceasta înseamnă că datagrama
trebuie să evite o reţea cu pachete mai mici pe calea cea mai bună şi să aleagă o rută suboptimală. Toate maşinile
trebuie să accepte fragmente de 576 octeţi sau mai mici.

MF însemnă More Fragments (mai urmează fragmente). Toate fragmentele, cu excepţia ultimu-
lui, au acest bit activat. El este necesar pentru a şti când au ajuns toate fragmentele unei datagrame.

Deplasamentul fragmentului spune unde este locul fragmentului curent în cadrul datagramei.
Toate fragmentele dintr-o datagramă, cu excepţia ultimului, trebuie să fie un multiplu de 8 octeţi -unitatea de
fragmentare elementară. Din moment ce sunt prevăzuţi 13 biţi, există un maxim de 8192 de fragmente pe
datagramă, obţinându-se o lungime maximă a datagramei de 65536 octeţi, cu unul mai mult decât câmpul
Lungime totală.

Câmpul Timp de viaţă este un contor folosit pentru a limita durata de viaţă a pachetelor. Este prevăzut să
contorizeze timpul în secunde, permiţând un timp maxim de viaţă de 255 secunde. El trebuie să fie decrementat
la fiecare salt (hop - trecere dintr-o reţea în alta) şi se presupune că este decrementat de mai multe ori când stă
la coadă un timp îndelungat într-un ruter. În practică, el con- torizează doar salturile. Când ajunge la valoarea
zero, pachetul este eliminat şi se trimite înapoi la gazda sursă un pachet de avertisment. Această facilitate
previne hoinăreala la infinit a datagramelor, ceea ce se poate întâmpla dacă tabelele de dirijare devin
incoerente.

Câmpul Protocol spune cărui proces de transport trebuie să o predea. TCP este o posibilitate, dar tot aşa sunt
şi UDP şi alte câteva. Numerotarea protocoalelor este globală la nivelul întregului Internet. Protocoalele şi alte
numere alocate erau anterior definite în RFC 1700, dar astăzi ele sunt conţinute într-o bază de date on-line.

Suma de control a antetului verifică numai antetul. O astfel de sumă de control este utilă pentru detectarea
erorilor generate de locaţii de memorie proaste din interiorul unui ruter. Algoritmul este de a aduna toate
jumătăţile de cuvinte, de 16 biţi, atunci când acestea sosesc, folosind aritmetică în complement faţă de unu şi
păstrarea complementului faţă de unu al rezultatului. Pentru scopul acestui algoritm, se presupune că la sosire
suma de control a antetului este zero. Acest algoritm este mai robust decât folosirea unei adunări normale.
Observaţi că suma de control a antetului trebuie recalculată la fiecare salt, pentru că întotdeauna se schimbă
cel puţin un câmp (câmpul timp de viaţă), dar se pot folosi trucuri pentru a accelera calculul.

Adresa sursei şi Adresa destinaţiei indică numărul de reţea şi numărul de gazdă. Vom discuta adresele
Internet în secţiunea următoare. Câmpul Opţiuni a fost proiectat pentru a oferi un subterfugiu care să permită
versiunilor viitoare ale protocolului să includă informaţii care nu sunt prezente în proiectul original, pentru a
permite cercetătorilor să încerce noi idei şi pentru a evita alocarea unor biţi din antet pentru informaţii folosite
rar. Opţiunile sunt de lungime variabilă. Fiecare începe cu un cod de un octet care identifică opţiunea. Unele
opţiuni sunt urmate de un câmp de un octet reprezentând lungimea opţiunii, urmat de unul sau mai mulţi octeţi
de date. Câmpul Opţiuni este completat până la un multiplu de 4 octeţi. Iniţial erau definite cinci opţiuni:

UTILITARE TCP/IP
Utilitare pentru conectarea la distanţă folosind protocolul TCP/IP

IPCONFIG- acesta se folosește pentru verificarea configurației PROTOCOLULUI TCP/IP. Se folosește /all
pentru a arăta toate informațiile disponibile.
Rezultatul tastării comenzii ipconfig /all:
 Dacă este setată o configuraţie validă, este afişată adresa IP şi masca de subreţea, precum şi gateway-
ul implicit, dacă este cazul.
 Dacă este detectat în reţea un duplicat al adresei IP folosite, va fi afişată adresa IP folosită, dar în
dreptul măştii de subreţea se va trece 0.0.0.0.
 Dacă Windows nu a putut obţine o adresă IP de la un server DHCP, va fi afişată adresa alocată prin
tehnologia APIPA.

PING- Instrument folosit pentru testarea conexiunii TCP/IP între computerul dumneavoastră şi unul aflat la
distanţă. Ping transmite pachetele utilizând ICMP ECHO_REQUEST şi se aşteaptă primirea unui răspuns de
confirmare pentru fiecare pachet transmis prin ICMP ECHO_REPLY.
Sintaxa comenzii este ping adresa_IP_a_computerului_de_la_distanţă.

FINGER- Listează numele de login, numele complet, numele terminalului, precum şi alte caracteristici. Opţiuni
- selectiv:

-b Format de redare redus


-f Suprimă afişarea părţii de antet
-i Afişează o listă cu timpii inactivi
-l Format de redare extins
-q Afişează o listă rapidă de utilizatori

NETSTAT- folosită pentru a extrage o serie de informaţii cum ar fi tabelele de rutare, conecţiile active, fluxuri.
folosită pentru a extrage o serie de informaţii cum ar fi tabelele de rutare, conecţiile active, fluxuri
-a Solicită afişarea stării socketurilor. Cele asociate cu procesele server nu sunt afişate
-i Afişează starea interfeţelor ce au fost autoconfigurate
-m Afişează modul de utilizare a memoriei
-r Afişează tabelele de rutare
-p nume_protocol Limitează informaţiile la un protocol anume

TRACEROUTE- pentru a identifica traseul ce trebuie urmat de un pachet pentru a ajunge la destinaţie. Această
comandă lucrează utilizând un câmp special TTL (time to live) din cadrul pachetului IP.
ARP- afişează şi modifică tabela de corespondenţă între adrese Internet şi adrese Ethernet (MAC). În momentul
în care nu există intrări ARP pentru o anumită adresă Internet se va afişa un mesaj în acest sens.
-a Afişează toate intrările din tabele ARP curentă
-d nume Şterge intrările corespunzătoare din tabela ARP
-s adresă host Crează o nouă intrare în tabela ARP folosind o adresă Ethernet

ADRESARE IP
Fiecare familie de protocoale trebuie să conţină un mod de adresare, pentru a identifica reţelele şi nodurile în
cadrul acestora.

Adresele de clasa A sunt folosite în reţelele cu un număr foarte mare de noduri aflate sub aceeaşi autoritate
(companii transnaţionale, organizaţii mondiale, etc.). Adresele de clasă A folosesc opt biţi (un octet) pentru
identifica reţeaua. Prin urmare ceilalţi 24 biţi sunt folosiţi pentru a identifica nodurile (interfeţele). Prin urmare
unei reţele de clasă A i se pot asigna 224 noduri. Adresele de clasa B au rezervată o zonă de reţea de 16 biţi, iar
cele de clasă C au rezervată o zonă de reţea de 24 biţi.
Adresele de clasa B au fost atribuite iniţial marilor universităţi şi companii. În ultima vreme obţinerea unei
adrese de clasa B este dificilă.

În momentul în care se doreşte împărţirea în subreţele se alocă în cadrul adresei IP un număr de biţi care
identifică subreţelele. Aceştia sunt preluaţi din cadrul zonei de host a adresei IP. Astfel, în cadrul adresei IP,
sunt definite trei zone: reţea, subreţea şi host. Biţii ce identifică reţeaua sunt definiţi prin tipul clasei, cei de
host sunt definiţi de către masca de reţea folosită, iar cei de subreţea sunt obţinuţi prin preluarea biţilor rămaşi.
De exemplu o mască de reţea de forma: 255.255.255.240, utilizată în cadrul unei reţele de clasă C, determină
un număr de patru biţi de host.

 Două adrese IP unice din aceeaşi reţea au valori identice pentru partea de reţea, diferind prin partea
de host.
 Două adrese IP unice din aceeaşi subreţea au valori identice în partea de reţea, în cea de subreţea
diferind doar prin partea de host.
 Două adrese IP unice aflate în subreţele diferite dintr-o reţea de clasă A, B sau C au aceeaşi valoare în
partea de reţea şi diferă prin partea de subreţea.
Baze numerice ale calculatoarelor
Sistemele de numeraţie pot fi:
 poziţionale (sistemele: zecimal, binar, octal);
 nepoziţional (sistemul roman)

Conversia bazei de numeraţie


 conversia din baza b în baza q.
Conversia numerelor dintr-un sistem de numeraţie b în alt sistem de numeraţie cu baza q se efectuează
examinând separat partea întreagă şi partea fracţionară.
 Conversia numerelor întregi
(N ) = a q + a q + + a q I b n n n-1 n-1 0 0 ⋅⋅⋅⋅ , unde ai (i = 0, n) sunt cifre ce aparţin sistemului de
numeraţie în baza q.
 Conversia rapidă
În cazurile în care între cele două baze de numeraţie (implicate în conversie) există o relaţie de genul:
b1=b2 p.
 Conversia numerelor fracţionare
(NF)b=a-1q -1 + a-2q -2 + a-3q-3 + ⋅⋅⋅ unde: a-j reprezintă cifre aparţinând sistemului de numeraţie q.
Reprezentarea binară a informaţiei numerice
Informaţia numerică se reprezintă în calculatoare într-unul dintre formatele:
 în virgulă fixă (VF);
 în virgulă mobilă (VM);
 prin coduri numerice (cel mai utilizat este codul 8421).
Reprezentarea în virgulă fixă (VF)
a) Reprezentarea prin mărime şi semn (Cod direct - CD).
b) Reprezentarea prin complement faţă de 1 ( cod invers - CI)
c) Reprezentarea prin complement faţă de 2 (cod complementar – CC)
Reprezentarea în virgulă mobilă
În cazul reprezentării numerelor în virgulă mobilă, se pleacă de la faptul că un număr N se poate scrie
sub forma: N=±(f)b*bE , unde:
 b – reprezintă baza sistemului de numeraţie utilizat (mai frecvent se utilizează baza 2 sau
16);
 E – exponentul real;
 f – partea fracţionară a numărului.
Reprezentarea în calculator, implică existenţa a trei câmpuri, acestea fiind:
 bitul de semn
 Exponentul (cunoscut şi sub denumirea de caracteristică)
 Fracţia (sau mantisa).
Numere şi valori speciale
În cadrul reprezentării valorilor numerice pentru microprocesorul Intel, există o serie de numere şi valori ce
au o reprezentare specială, prezentate în continuare:
 Zerouri cu semn- în acest sens, valoarea 0 poate fi reprezentată drept +0 sau -0 în funcţie de bitul de
semn. Ambele reprezentări sunt egale ca valoare. Semnul unui rezultat cu valoare 0 depinde de
operaţia efectuată şi de modalitatea de rotunjire.
 Numere finite normalizate și denormalizate.
 +∞, -∞- reprezintă valoarea maximă pozitivă, respectiv valoarea minimă negativă pentru numere reale
ce poate fi reprezentată în virgulă mobilă. Valoarea infinit este totdeauna reprezentată de o fracţie 0 şi
de exponentul maxim permis de formatul respective.
 Valori NaN (Not a Number)- aceste valori nu fac parte din mulţimea numerelor reale. Reprezentarea
lor se face prin intermediul unui exponent maxim acceptat de reprezentarea respectivă şi a unei fracţii
diferită de zero. În acest caz bitul de semn este ignorat.
Numere finite normalizate şi denormalizate
Numerele normalizate reprezintă numerele ce pot fi codificate într-o formă normalizată între 0 şi ∞.
Numere denormalizate- atunci când exponentul modificat este 0, numerele mai mici pot fi reprezentate
făcând bitul părţii întregi zero.
Reprezentarea numerelor întregi zecimale codificate binar (BCD)

Pentru reprezentarea numerele folosind codificarea BCD:


 formatul împachetat (packed BCD) -conţine două cifre zecimale pe un octet
 formatul despachetat (unpacked BCD)- conţin o cifră zecimală pe octet.
Microprocesorul acceptă datele în format BCD împachetat sau despachetat, având următoarea machetă de
reprezentare pe un octet:

Operaţii aritmetice în sistemul binar


Adunarea în binar

Scăderea în binar

Înmulțirea în binar

Împărțirea în binar
Cea mai simplă metodă este scăderea repetată a împărţitorului din deîmpărţit.

Operaţiile aritmetice în virgulă fixă (VF)


Adunarea în cod direct (CD)
Se adună mărimile numerelor, fără cifra de semn şi se dă rezultatului semnul comun celor două numere.
Adunarea/scăderea în cod invers (CI)
Adunarea/scăderea numerelor cu acelaşi semn
a) Dacă ambele numere sunt pozitive, reprezentarea lor în cod invers este identică reprezentării în cod
direct.
b) Numerele sunt negative, fie N1 < 0 şi N2 < 0.
Adunarea/scăderea în cod complementar (CC)
Adunarea /scăderea numerelor cu acelaşi semn:
a) Dacă ambele numere sunt pozitive, reprezentarea lor în cod complementar este identică
reprezentării în CD.
b) Numerele sunt negative.
Adunarea/scăderea numerelor cu semn diferite

Operaţii aritmetice în virgulă mobilă (VM)


a) Adunarea/scăderea
b) Înmulţirea şi împărţirea

Operaţii aritmetice în codul numeric 8421


Adunarea în 8421- se face binar, rang cu rang pe fiecare grup de patru cifre binare, cu adăugarea, eventual, a
unor corecţii.
Scăderea în 8421.

Baze de date oracle limbajul SQL

Administratorul bazei de date (DBA) este, în funcţie de complexitatea şi mărimea unei baze de date, o persoană
sau mai multe persoane, care să execute următoarele sarcini administrative:
 Instalarea şi dezvoltarea sever-ului Oracle;
 Alocarea memoriei sistemului şi planificarea cerinţelor viitoare de memorie ale acestuia;
 Crearea bazei de date şi a obiectelor acesteia (tabele, viziuni, indecşi);
 Modificarea structurii bazei de date în funcţie de cerinţele dezvoltatorilor de aplicaţii;
 Definirea utilizatorilor bazei de date şi întreţinerea sistemului de securitate;
 Controlul şi monitorizarea accesului utilizatorilor la baza de date;
 Monitorizarea şi optimizarea performanţelor bazei de date;
 Definirea şi asigurarea politicii de salvarea sau copiere (backup) şi refacere (recovery) a bazei de date;
 Arhivarea datelor;
 Asigurarea legăturii cu firma Oracle pentru suportul tehnic şi licenţa de utilizare a produselor Oracle.

 Arhitectura în sistemele de operare a dispozitivelor mobile Android , Windows Phone, Blackberry şi


iOS.
Arhitectura sistemelor de operare mobile a trecut de la complex la simplu la ceva între ele. Procesul de
evoluție este determinat în mod natural de progresele tehnologice în hardware, software și Internet.

ANDROID

Android folosește un kernel Linux cu API de nivel superior scrise în C și aplicațiile sunt în mod normal
programate în Java și se execută cu ajutorul mașinii virtuale Dalvik (DVM) folosind compilația just-in-time
pentru a traduce codul octet Java în cod Dalvik. Fiecare aplicație Android rulează într-un proces separat, sub
un UID unic, cu permisiuni distincte, ceea ce înseamnă că aplicațiile nu pot citi sau scrie reciproc datele sau
codurile.
Platforma Android conține următoarele straturi:
 Linux Kernel: Android se bazează pe Linux pentru serviciile de bază ale sistemului, cum ar fi
securitatea, gestionarea memoriei, gestionarea proceselor, etc.
 Runtime Android: oferă un set de biblioteci de bază care acceptă cea mai mare parte a
funcționalității din bibliotecile de bază ale Java. Mașina virtuală Android cunoscută sub numele
Dalvik VM se bazează pe kernelul Linux pentru unele funcționalități care stau la baza acestuia.
 Biblioteci: Android include un set de biblioteci C / C ++. Aceste biblioteci sunt expuse dezvoltatorilor
prin cadrul de aplicații Android. Acestea includ biblioteci media, biblioteci de sistem C, manager de
suprafață, biblioteci 3D, SQLite, etc.
 Cadru de aplicații: oferă un strat de acces la API-urile de bază utilizate de aplicațiile de bază.
Permite utilizarea componentelor de către dezvoltatori.

Ios
iOS este derivat din Mac OS X și își împarte fundația Darwin de bază, un sistem UNIX compatibil POSIX cu
sursă deschisă. În acest sens, iOS poate fi considerată o variantă a UNIX. iOS este alcătuită din patru straturi
de abstractizare: Core OS, Core Services, Media și Cocoa Touch6:
 Core OS: Kernel-ul sistemului de operare, care include caracteristici de baza la nivel inferior: fire de
sistem, thread-uri, IO, DNS, matematica, servicii de securitate generale de memorie, chei private /
publice, precum și prelucrarea sunetului și a imaginilor.
 Servicii de bază: Servicii de sistem fundamentale, care sunt subdivizate în diferite cadre și bazate pe
C și Obiectivul C. Acesta include servicii de bază de aplicații, inclusiv conturi, contacte, networking,
managementul datelor, locație, evenimente calendar, achiziționare magazin, SQLite și suport XML .
 Media Layer: consideră platformele de nivel înalt, care sunt responsabile pentru utilizarea grafică
(suport pentru grafica 2d și 3d), tehnologii audio și video.
 Cocoa Touch: UIKIT, care este un cadru bazat pe Obiectiv-C și oferă o serie de funcționalități
necesare dezvoltării unei aplicații iOS, cum ar fi Managementul interfeței cu utilizatorul. De
asemenea, include API-uri pentru construirea de aplicații - multitasking, intrare touch, notificări,
vizualizări de interfață și acces la datele dispozitivului.

Windows Phone
Windows Phone este un sistem de operare inteligent pentru telefonul mobil, dezvoltat de Microsoft.Este
succesorul Windows Mobile, deși este incompatibil cu platforma anterioară.

Aplicația Windows Phone kernelhandles acces la driverul de nivel scăzut al dispozitivului, precum și
securitatea de bază, crearea de rețele și depozitare. Trei biblioteci:
 un model de aplicație pentru gestionarea aplicațiilor,
 un model UI pentru gestionarea interfeței cu utilizatorul
 un modul de integrare în cloud pentru căutare web prin Bing, servicii de localizare, notificări push și
așa mai departe, se află deasupra kernelului.
Aplicațiile API includ Sliverlight, XNA, HTML / JavaScript și Common Language Runtime (CLR) care acceptă
aplicații C # sau VB .Net. Kernel-ul în sine este un design propriu-zis al sistemului de operare Windows pentru
dispozitivele încorporate care combină Windows Embedded CE 6.0 R3 și Windows Embedded Compact 77.
Windows Phone 8 a înlocuit kernelul Windows CE cu unul bazat pe Windows NT. Aceasta se referă în parte la
imitarea sistemului de operare desktop Windows 8, care permite o portare mai ușoară a aplicațiilor între cele
două sisteme de operare.
Blackberry OS
BlackBerry OS suportă profilul Java Device Information Device (MIDP) și profilul aplicației wireless (WAP).
Aceste protocoale sunt utilizate pentru a se sincroniza printr-un BlackBerry Enterprise Server (BES) cu
calendar bazat pe push, sarcină, contact, e-mail și schimb de note. BES oferă capacitatea, securitatea,
ștergerea de la distanță și alte caracteristici pe care corporațiile le solicită pentru dispozitive mobile care
accesează rețele interne și / sau date corporative. BlackBerry OS oferă de asemenea BlackBerry Internet
Service (BIS), o metodă specifică clientului care permite accesul la Internet pentru utilizatori individuali.
Acest lucru permite clienților consumatori să acceseze e-mailurile personale, să navigheze pe web.
BlackBerry OS inițial a sprijinit aplicațiile scrise în C ++. Un tip de aplicație este un program de rulare a
serviciilor de date mobile (MDS), care este un container pentru procesarea și afișarea datelor, de obicei
împinse din sistemul corporativ al unui utilizator.
Programarea se face acum în Java pentru telefoane și în limbajele C++ sau Web pentru tableta PlayBook. OS-
urile acceptate de OS includ browsing, poștă, telefon, aplicații PDA, LDAP, UI, http, matematică, criptografie și
așa mai departe. Un kit de dezvoltare nativ C ++ a fost recent disponibil pentru a sprijini dezvoltarea pe
sistemul de operare BlackBerry PlayBook Tablet. BlackBerry PlayBook OS 1.0, care este disponibilă numai pe
PlayBook, a fost schimbată pentru a fi bazată pe QNX. QNX este un microkernel UNIX care a fost inițial
dezvoltat în anii 1980 și mai târziu repurtat pentru dispozitive încorporate. RIM a achiziționat QNX în aprilie
2010, cu intenția de a-și tranziționa telefoanele inteligente viitoare la OS 10 și QNX.

S-ar putea să vă placă și