Continut:
Metode de protectie la copiereProtectia la copiere bazata pe discuri cu cheieAcest tip de protectie la copiere este de aceeasi v�rsta cu �nsasi calculatoarele personale. Anii de dezvoltare si sofisticatul echipament hard pentru unitatile de disc floppy au permis dezvoltarea a numeroase metode de protectie. Cu toate ca aparitia cheilor hard plasate pe portul paralel face ca protectiile cu discuri cu cheie sa para demodate, acest tip de protectie are cel putin avantajul evident ca este foarte ieftin, datorita faptului ca discurile cu cheie pot fi utilizate �n acelasi timp si ca discuri de distributie, fiind uneori foarte dificil de pacalit. Controller-ul de floppy-disk are o functionare asemanatoare cu cel de HDD. C�mpul de sincronizare si octetul de identificare�n cazul codarii MFM, c�mpurile de sincronizare sunt alcatuite din 96 de biti de zero (adica celule care au bit de ceas, dar nu au bit de date) urmate de 3 octeti de A1h (10100001 �n binar). Bitii de zero permit alinierea corecta a celulei de bit, iar octetii cu A1h folosesc la identificarea �nceputului bitului de date. Desi controller-ul de floppy-disk (FDC) �n timpul formatarii scrie 12 octeti cu zero (aceasta valoare nu poate fi schimbata prin software), numai un singur octet este necesar de fapt pentru sincronizarea celulei de bit. La FM, c�mpurile de sincronizare constau numai din 48 biti de zero (si aici FDC are nevoie numai de 8 biti, restul fiind pusi pentru siguranta). Diferitele c�mpuri de date (datele utilizator si datele auxiliare) pot fi recunoscute dupa octetul care urmeaza imediat dupa c�mpurile de sincronizare. Acesti octeti nu pot fi �ncurcati cu datele utilizatorului, chiar daca se �nt�mpla ca aceste date sa contina �n ele exact secventa de octeti sincronizare/ID, deoarece acesti octeti si numai ei (octetii ID), folosesc o conventie de amplasare a bitilor de ceas nestandard (constituie practic o violare de cod). Tabelul 1 - Octetul de identificare la FM:
La MFM, zona de identificare �ncepe cu 3 octeti de marca MFM, urmati de un octet standard MFM corespunzator octetului de date din marcile FM. Tabelul 2 - Cei 3 octeti de marca MFM sunt:
Tabelul 3 - Octetul de identificare la MFM este:
Protectii independente de timpSe vor analiza marcajele de protectie pe floppy disk-uri care pot fi verificate fara folosirea altor dispozitive �n afara de FDC �nsusi. Aceste "trucuri" ar trebui sa mearga �n orice sistem echipat cu un FDC compatibil. Segmente �n plus sau segmente lipsaDeoarece primele discuri floppy MS-DOS aveau mult spatiu neutilizat pe pista, o idee evidenta a fost sa se stocheze sectoare aditionale pe pista �mpreuna cu sectoare standard MS-DOS. �nca departe de a fi bine �mpachetat, formatul cu 10 sectoare pe pista permite adaugarea unui sector suplimentar de 256 octeti. Un alt loc de amplasare a unor asemenea sectoare aditionale este pista 41 care nu este utilizata de DOS, dar care poate fi accesata de majoritatea unitatilor de disc. Biti de date "slabiti"O alta varianta este utilizarea bitilor de date "slabiti" (weak data), care �n operatii consecutive de citire apar diferiti. Biti "slabi" pot aparea fie datorita �nt�mplarii ca datele scrise sa cada �ntr-o zona nesigura din punct de vedere logic, fie datorita unei lungi serii de date "0" �n care sa lipseasca bitul de ceas. �n primul caz, decizia FDC va fi condusa de zgomotul aleator, �n cel de-al doilea, variatii aleatoare �n viteza de rotatie a drive-ului vor desincroniza celula de bit (asemenea date nu pot fi scrise totusi fara modificari ale partii hard a FDC, asa ca nu vor fi discutate aici). O metoda de a genera "weak data" este de a le plasa deasupra unui defect de structura. Asemenea biti "slabi" nu vor disparea dupa o comanda de scriere a sectorului. Din pacate, defectele de suprafata sunt acum tot mai rar de gasit, asa ca cei interesati trebuie sa le creeze singuri (exista o multime de tehnici, de la zg�riatul discului cu un cui ruginit p�na la evaporarea atenta a stratului de suprafata cu un laser �n infrarosu). Bitii "slabi" pot fi creati si prin soft. Prima abordare este prin manipularea bitilor de drive select/deselect din digital output register (3F2h) al controller-ului de FDC. De exemplu, daca se doreste crearea de "weak data" pe discul A, trebuie sa se starteze operatia de scriere, sa se astepte p�na c�nd octetul dorit va fi transferat unitatii de disc (si nu la FDC!) si apoi sa se trimita continuu registrului valorile 1Dh (select drive 1) si 1Ch (select drive 2) c�t timp octetul este transferat pe disc. O asemenea operatie va modula toate datele (inclusiv bitii de ceas) scrise pe disc cu un semnal dreptunghiular, plas�ndu-le �ntr-o regiune incerta. O a doua abordare presupune aproape aceeasi operatie cu registrul de control al disketei (3F7h). Comutarea ratei de scriere va deplasa bitii de date si de ceas, si le va deforma aspectul mut�ndu-i de asemenea �ntr-o zona nesigura. Un program de tip bit-copier se va confrunta cu o dilema interesanta �n momentul �nt�lnirii unor "weak data": bitii slabi sunt o consecinta a unui defect de suprafata nerecunoscut si operatia trebuie repetata p�na c�nd data originala va fi recuperata ori este un marcaj de protectie care trebuie reprodus? Date introduse �n zona de "GAP"Se poate stoca cu usurinta o mica cantitate de date �n GAP, dupa c�mpul sectorului de date (GAP 3). Cu conditia ca acest sector sa nu fie suprascris, marcajul va rezida �n GAP complet �n siguranta. Marginea superioara pentru numarul de octeti care vor intra �n GAP 3 este data de valoarea GPL (GAP length) de la comanda de formatare a pistei. Verificarea unui asemenea marcaj este simpla (cel putin pentru primul sector de pe pista) - comanda de citire a unei piste cu un numar mai mare dec�t valoarea curenta din identificatorul de sector va �ncarca datele din GAP �n memorie. Stocarea de date �n GAP necesita o procedura mai sofisticata. Se presupune ca cineva doreste sa plaseze 10 octeti de date �n GAP-ul primului sector de 512 octeti, pe pista 0 si cu capul 0. El trebuie mai �nt�i sa formateze pista 0, specific�nd lungimea de cod 3 (1024 octeti) pentru primul identificator de sector, dar o lungime de cod 2 pentru parametrii de formatare. Apoi trebuie sa porneasca operatia de scriere pe sectorul sau imaginar de 1024 octeti si sa se opreasca dupa ce a transferat 526 octeti (512 octeti datele din sector + 2 octeti CRC + 10 octeti datele din GAP + 4 octeti margine de siguranta). Dupa aceasta, trebuie sa porneasca operatia de formatare a pistei cu o lungime a codului de 2 (at�t pentru parametrii de formatare c�t si pentru identificatorul de sector) si sa se opreasca undeva �n interiorul GAP-ului 2 (identificatorul de sector este deja scris, dar c�mpurile de date sunt totusi neafectate). At�t operatia de formatare, c�t si cea de scriere, pot fi oprite fie prin resetarea controller-ului (trimit�nd "0" la "digital output register", 3F2h), fie schimb�nd unitatea selectata. Din nefericire, uneori poate fi dificil de decelat �ntre un GAP gol si unul contin�nd date de protectie. Unitatile vechi de disc aveau un timp de atenuare a semnalului de scriere relativ mare, asa ca scrierile din GAP pe asemenea unitati erau pline cu gunoaie aleatoare, care pot fi gresit interpretate ca date binare de protectie. �n cazul plasarii de "weak bits" �n interiorul datelor de protectie din GAP-uri, aceste dificultati de identificare a marcajului cresc. Sectoare fara marcajul de adresa a datelor (data address mark)Sectoarele fara "data AM" vor genera eroarea "missing data AM". Comanda de citire a identificatorului de sector se va termina totusi corect pe un asemenea sector. Stocarea sectoarelor cu "data AM" lipsa necesita o simpla operatie de formatare, care trebuie oprita dupa scrierea identificatorului sectorului care contine "data AM", dar �nainte de a se scrie "data AM". O grija deosebita trebuie luata pentru a elimina "data AM" existenta anterior, fie utiliz�nd discuri sterse electromagnetic, fie cu un format preliminar la o alta rata de transfer. O metoda alternativa (care nu merge pentru primul sector de pe pista) este: �nt�i se formateaza pista cu o valoare GPL aleasa astfel �nc�t sa plaseze c�mpul de date acolo unde c�mpul de sincronizare al zonei "data AM" trebuie sa �nceapa pe discul tinta, apoi se reformateaza pista cu valoarea dorita a GPL-ului si se opreste �nainte ca AM-ul sectorului sa fie scris. Sectoare fara marcajul de identificare al sectoruluiSectoarele fara AM-ul identificatorului de sector pot fi scrise �n modul urmator: se formateaza pista, cer�nd o lungime a codului de N+1 (mai mare cu 1 fata de normal) pentru sectorul care se afla �naintea sectorului de interes. Apoi se citeste continutul acestui sector "dummy" si se scrie �napoi oprind operatia c�nd AM-ul identificatorului de sector a fost suprascris, dar c�nd �nca "data AM" este OK. Acum s-a obtinut un sector fara ID AM. Un asemenea sector nu va permite nici o exceptie �n operatiile FDC-ului. El nu poate fi, �n general vorbind, citit de nici o comanda fara o atentie deosebita asa ca el aproape nu exista. Sectoare cu marcajul de identificare declarat "bad"Acest marcaj difera de anteriorul numai prin extinderea "coruperii" zonei ID AM. Aici, FDC-ul este �nca �n stare sa recunoasca ID AM-ul, dar CRC-ul de pe el se dovedeste incorect. Acest marcaj nu poate fi detectat de o comanda de citire a sectorului, iar verificarea nu prezinta probleme. Sectoarele cu "bad" ID AM vor aparea de asemenea �n comanda de citire a unei piste. �n acest caz valorile exacte ale pozitiei elementelor componente ale sectorului nu sunt cunoscute, ele put�nd fi totusi obtinute cu urmatoarea procedura: cunosc�nd pozitia exacta a c�mpului de date din masurari temporale, se poate deduce pozitia aproximativa a ID AM si citi acea zona utiliz�nd tehnica de ajustare a celulei de bit. De valoare pentru proiectantii de sisteme de protectie este faptul ca modificarea acestui marcaj provoaca un CRC pentru identificatorul de sector invalid si lipsa "data AM". Un asemenea sector va cauza terminarea operatiei de citire a pistei, astfel prevenindu-se detectarea marcajelor "normale" de asemenea tip plasate dupa el de bit-copier. Pentru a scrie un "bad" ID AM, operatia de formatare trebuie oprita c�t timp sectorul ID AM CRC este scris (FDC are un buffer intern �n jurul a 3 octeti, deci controller-ul nu porneste scrierea CRC-ului imediat ce ultimul octet ID a fost furnizat catre registrul de date, ci ceva timp dupa aceasta). C�mpuri de date care se �ntind peste "index address mark"Marcajele de acest tip au aparut c�nd cineva a �ntrebat: "Ce va face FDC daca comanda de formatare a pistei va specifica faptul ca lungimea datelor pe pista trebuie sa fie putin mai mare dec�t poate pista sa "tina"? " Exista o mica zona la �nceputul pistei care nu este utilizata de un sector de date (este utilizat de "index address mark"). Aceasta zona poate fi rescrisa de ultimul sector de pe pista, dar daca ultimul sector rescrie prea mult din �nceputul pistei, sectorul 1 va fi sters. Daca �nceputul c�mpului de date al ultimului sector trece peste gaura de index, controller-ul va scrie GAP-ul 4 p�na la urmatoarea aparitie a gaurii de index, suprascriind toate sectoarele existente pe pista. Daca la �nceputul sectorului ID AM trece peste gaura de index, acest sector va fi conservat suprascriindu-se toate celelalte sectoare anterior scrise. Sectoarele care trec peste IAM (index address mark) pot cauza probleme serioase programelor de tip bit-copier care nu sunt la curent cu existenta lor, deoarece multe marcaje de protectie sunt generate prin operatii de formatare repetate care vor distruge datele din sectoarele IAM suplimentare. Piste cu date scrise la rate diferite de scriereAsa cum s-a putut observa �n sectiunea anterioara, FDC ignora IAM la �nceputul pistei, asa ca sectoarele pot aparea la orice pozitie �n interiorul pistei. O idee evidenta este de a scrie diferite parti din pista la diferite rate de transfer a datelor (aceasta este bine sa se faca nu prin comutarea ratei de transfer �n timpul operatiei de formatare, ci prin doua operatii consecutive de formatare la rate diferite). De exemplu, astfel se poate obtine o pista 0 care sa aiba 9 sectoare de 512 octeti la 300 KB/s (HDD) si un singur sector de 512 octeti la 500 KB/s (deoarece este pista exterioara, folosirea unei rate mari de transfer pe discuri DD nu va permite o siguranta de plasare a datelor prea mare). Desi scrierea la diferite rate de transfer este �n �ntregime �n domeniul AT, o marca similara poate fi generata utiliz�nd formate FM si MFM (de exemplu 9 sectoare MFM si unul FM) pe PC si XT. Accesul la date peste "GAP" (data access over GAP)Deoarece identificatoarele de sector si c�mpurile de date sunt sincronizate separat, doua celule de bit �n doua c�mpuri consecutive pot fi deplasate �n mod arbitrar. Aceste alunecari sunt datorate variatiilor aleatoare �n WR CLK si �n viteza de rotatie a discului, asa ca nu pot fi controlate. Orice operatie de citire a pistei cu o lungime a codului suficient de mare (de exemplu 6) va furniza "track footprint" (o amprenta a pistei). Numarul de diferite "footprints" poate fi estimat �n mare �n modul urmator: se presupune ca fiecare jonctiune a c�mpurilor de sincronizare poate avea doua stari (evident numarul este subestimat). Pe o pista a unui floppy DD obisnuit sunt 19 asemenea jonctiuni (9 ID AM-uri, 9 data AM-uri si un IAM), asa ca numarul de "footprints" diferite pentru fiecare pista este de minim 219, deci aproximativ 500.000. Se poate mari lungimea codului (de exemplu 7), dar aceasta nu va mari numarul de "footprints", ci va implica pista �n operatie mai mult dec�t o data. Deoarece chiar si cele mai bune dispozitive trebuie sa porneasca si sa opreasca operatia undeva, ele vor corupe partial datele. Acest marcaj impune o singura restrictie �n utilizarea discurilor protejate: pista cheie nu poate fi rescrisa. Protectii bazate pe timerToate PC-urile sunt echipate cu un chip timer Intel 8253 sau echivalente. Lucr�nd la 1.193.180 Hz, se permite masurarea unor intervale de timp cu o rezolutie de 840 ns (se poate masura timpul de executie a unei singure instructiuni de �mpartire care pe un PC 386 la 16 MHz ia aproximativ 2,4 �s). Un asemenea timer este mai mult dec�t suficient pentru realizarea timing-ului la floppy (transmisia unui singur octet la cea mai rapida rata de transfer, 500 KB/s, va dura 16 �s), asa ca precizia unei asemenea masuratori va fi limitata nu de timer, ci de variatiile aleatoare ale vitezei de rotatie a discului. Verificarea ordonarii sectoarelor (a �ntreteserii)Masur�nd timpul de terminare a unor comenzi succesive de citire a unei piste, se poate obtine pozitia exacta a fiecarui sector de pe pista. �n termeni de biti de date, se poate obtine pozitia exacta a sectorului mai putin un bit. Deoarece comanda FDC de formatare a pistei controleaza pozitia sectorului cu o rezolutie de un octet, el nu poate reproduce at�t de exact ordonarea sectoarelor, asa ca pozitia sectoarelor poate servi ca marca de protectie. Totusi, aceasta verificare va fi prea sensibila la viteza CPU-ului si la stabilitatea vitezei de rotatie a unitatii, asa ca de multe ori va rejecta chiar discul cheie original. Masurarea ratei de transferRata de transfer a FDC selectata de "diskette control register" (3F7h) este numai frecventa initiala (centrala) utilizata de FDC pentru decodarea bitilor de date. O bucla PLL (analogica) ajusteaza aceasta frecventa �n conformitate cu rata de transfer a pistei la care au ajuns bitii de date. PLL-ul trebuie sa tolereze cel putin 4% deviatie de la frecventa centrala (deviatia permisa la viteza de rotatie a unitatii de disc este de �2%). �n practica, PLL-ul va acoperi 10% din deviatie la discurile MFM si aproape 100% la cele FM. Rata bitilor de date care sosesc este determinata de densitatea unghiulara a datelor pe floppy disk si de viteza de rotatie a discului, asa ca pentru a determina caracteristicile discului (densitatea unghiulara de date) trebuie sa se masoare at�t timpul de transfer al unui singur sector, c�t si timpul de revolutie. Acuratetea maxima a unei asemenea masuratori poate fi usor estimata: un singur sector de 512 octeti va fi transferat la frecventa (centrala) de 500 KB/s �n 8,2 ms, iar rezolutia timer-ului este de 0,84 �s, deci rezulta o acuratete relativa de 0,01%. Eroarea relativa �n determinarea timpului de revolutie este mai mica cu cel putin un ordin de marime. Impun�nd un factor de 10 pentru marginea de siguranta, 0,1 pare a fi o estimare rezonabila. Asa ca totalitatea unitatilor floppy vor "cadea" �n 40 (2x2%/0,1%) de grupe diferite, iar discurile scrise �ntr-o unitate dintr-unul din grupuri pot fi distinse cu usurinta de cele scrise �ntr-o unitate din alt grup. Din pacate, majoritatea unitatilor de disc moderne vor cadea �ntr-o regiune de �0,2% adica �n 4 grupuri �n loc de 40, ceea ce practic elimina toata "protectia". Anumite unitati pot permite trucuri simple cu output register (3F2h): pune 0Ch la 3F2h (stop motor la unitatea A), asteapta un timp (10 ms), pune 1Ch la 3F2h (start motorul unitatii A) si imediat realizeaza o operatie de scriere. Viteza de rotatie a unitatii a fost cu putin sub valoarea nominala pentru aproape 20 ms, timp suficient pentru a se scrie un singur sector. Unele unitati mai noi totusi asteapta p�na viteza de rotatie atinge valoarea nominala, �nt�rziind operatia de scriere. Variante interesante ale acestui marcaj pot fi obtinute cu modificari minore �n partea hardware a calculatorului. Protectii bazate pe dispozitive hard specialeFormat MFM modificatFDC Intel 8272A nu are un control soft asupra lungimii GAP1, GAP2 si GAP5. El va accepta discuri care au aceste GAP-uri diferite de valorile standard si are posibilitatea de a masura lungimea GAP-ului curent. De exemplu, GAP-ul 2 (post ID GAP), poate fi masurat fie de o comanda de citire a pistei cu o lungime de cod mai mare dec�t lungimea actuala a sectorului, fie masur�nd diferenta dintre terminarea unei instructiuni de citire a unui identificator de sector si de citire de date. Discuri cu alte lungimi de GAP pot fi create pe PC-uri care au control asupra acestor parametri (DEC). Piste plasate gresitAnumite controller-e de floppy/unitati de disc pot avea un control mult mai strict asupra plasarii capului dec�t o au PC-urile. Acest lucru se poate face nu �n mod special pentru protectia la copiere, ci pentru a permite o mai mare capacitate de a citi discuri floppy scrise �n unitati prost ajustate. De aceea discurile cheie pentru un asemenea sistem pot fi pregatite cu o plasare nestandard a pistelor (si acest lucru se va verifica software). Un asemenea disc nu se poate verifica pe un alt computer, asa ca aceasta tehnica are aplicatii si utilizari limitate. Rate de transfer nestandardAsa cum s-a vazut, FDC va permite variatii semnificative �n densitatea unghiulara de date pe pista (si are posibilitatea de a o masura). Modificari minore ale FDC la unitatea de disc dau posibilitatea controlului manual al frecventei centrale a oscilatorului WR CLK sau a vitezei de rotatie a unitatii si astfel ofera posibilitatea de a scrie date la valori usor diferite de standard (dar totusi acceptate de majoritatea FDC) ale ratei de transfer. Protectii bazate pe lucrul cu hard disk-ulCheile plasate pe floppy disk-uri furnizeaza un bun nivel de securitate, dar sunt plictisitoare si chiar enervante pentru uzul zilnic, deoarece ocupa unitatea de disc si pot fi usor distruse de o manevrare necorespunzatoare. De aceea, majoritatea pachetelor soft protejate la copiere pot fi instalate pe hard disk folosind fie marcaje de protectie pentru hard disk-uri, fie marcaje bazate pe placa de baza. Datorita existentei unei multimi de interfete fizice de hard disk-uri incompatibile, marcajele pe hard disk-uri sunt �n mod uzual cel mai mic numitor comun al unui numar mare de variate posibilitati si sunt usor de pacalit. Protectie la nivel de cipAcest nivel de acces la hard disk este putin probabil de a se �nt�lni, asa ca se va discuta numai pe scurt AT WDC (Winchester Disk Controller). AT WDC foloseste IRQ 14 (INT 76h cu MS-DOS) si nu foloseste DMA-ul. Schema de formatare a WDC-ului este cu mult mai putin flexibila dec�t cea a 8272-ului si permite numai selectarea manuala a numarului sectorului. Desi ID AM-ul sectorului contine si valorile cilindrului, capului si dimensiunea, ele sunt deturnate de registrele de comanda WDC si nu pot fi specificate �n mod explicit. Deoarece comenzile WDC-ului (�n afara de "scan ID") implica o cautare, acestea sunt dificil de modificat. Facilitatile AT WDC, fiind �n mod evident facute sa avantajeze lucrul "normal" cu hard disk-ul, restr�ng posibilitatile de implementare a protectiei la copiere la sectoare lipsa sau �n plus si la verificarea ordonarii sectoarelor. Corectia datelor de tip ECC permite implementarea unei a treia scheme de protectie pentru hard disk, utiliz�nd biti de date schimbati �n anumite pozitii care sa nu fie vazuti de ECC. Toate aceste marcaje pot fi generate si verificate utiliz�nd apeluri BIOS, si astfel accesul la nivel de chip la WDC nu are un avantaj evident care sa justifice lipsa de portabilitate. Protectie la nivel de BIOSSchimbari ale �ntreteseriiSpre deosebire de floppy disk, unde sectoarele sunt de regula aranjate secvential (interleave 1:1), sectoarele la hard disk sunt �n mod uzual aranjate de catre un formator low-level pentru a obtine o rata de transfer marita. De aceea este mai dificil de a vedea marcajul de interleave la hard disk dec�t la floppy disk. Schimbarea numerelor sectoarelorTotusi, hard disk-ul este �n mod obisnuit "plin" cu sectoare de date (nu exista spatii libere), asa ca pentru a adauga un sector cu un numar nestandard, trebuie sters unul din sectoarele de date. Aceasta situatie poate fi cu usurinta remarcata. Utilizarea zonelor nefolosite de pe discLa nivelul BIOS-ului, exista doua zone neutilizate pe aproape orice disc: la �nceputul si sf�rsitul discului. Primul sector de pe fiecare hard drive (cel putin, nu cele SCSI sau ESDI) este ocupat de tabela de partitii, �n timp ce toate celelalte sectoare pe cilindrul 0, pista 0 nu sunt utilizate �n schemele de partitionare IBM si Microsoft. Totusi, aceasta zona poate fi utilizata de software-ele de partitionare particulare. De exemplu DiskManager (dmdrvr.bin) foloseste sectorul 0/0/8 pentru tabela de partitii extinsa, Olivetty MS-DOS starteaza prima partitie DOS la 0/0/2 etc. A doua zona nefolosita este "user diagnostic cylinder", care este localizata imediat dupa ultimul cilindru al discului pe masinile AT si pe ultimul cilindru la PS/2. Orice este scris aici are putine sanse de a rezista mult timp, deoarece orice program de testare low-level a discului are dreptul de a face ce vrea aici (se pare ca Norton DiskTreet si Gibbson Research's SpinRite determina �ntreteserea optimala aici). Protectie la nivelul DOSProtectiile la nivelul BIOS-ului pe hard disk nu ofera prea multe alternative, �n timp ce DOS-ul are avantajul si relativa portabilitate a modului de accesare a partitiei DOS (interfata INT 25h/INT 26h, ExtendedOpen(6Ch)), care poate fi utilizata pentru protectie la copiere. Structura sistemului de fisiere DOS este bine cunoscuta asa ca se va face numai o scurta prezentare a partilor mai semnificative din ea. Sectorul 0 este sectorul de boot. El contine codul care �ncarca sistemul de operare si tabela care descrie caracteristicile partitiilor, cum sunt numarul de sectoare, numarul de sectoare pe cluster, numarul de FAT-uri, numarul de intrari �n directorul radacina. FAT-ul (care urmeaza) contine o valoare pe 12 sau 16 biti pentru fiecare "allocation unit" (cluster), indic�nd numarul urmatorului cluster �n lant. �n mod uzual, mai multe FAT-uri (2) sunt prezente pe disc, asigur�ndu-se astfel o mai mare securitate a datelor (totusi, DOS-ul nu trateaza cele doua copii �n mod separat, ci pur si simplu copiaza primul FAT �ntr-o zona aditionala (FAT2), duplic�nd astfel orice eroare care apare la prima copie, asa ca securitatea este de fapt imaginara). Directorul radacina (root), care urmeaza dupa ultima copie a FAT-ului, contine o tabela de 32 octeti (intrare de director) pentru fiecare fisier din director. Intrarea de director contine numele fisierului, dimensiunea, data ultimei modificari si numarul cluster-ului de start. Celelalte directoare folosesc aceeasi metoda de alocare ca si fisierele ordinare. Dependenta de numarul de cluster"Uneltele" standard DOS nu permit controlul asupra cluster-ului prin localizarea �n cluster a fisierului, asa ca aceasta informatie poate fi utilizata pentru a coda imaginea unui program si/sau a unei date. Numarul cluster-ului de �nceput al unui fisier poate fi obtinut cu un apel �n stilul CP/M, 11h - FindFirst via FCB (apelurile CP/M pot fi ascunse de majoritatea programelor de supraveghere realiz�nd un apel "far" la locatia 0:0C0h cu codul functiei �n CL �n loc de AL). Gasirea numerelor celorlalte cluster-e implica o cautare �n FAT. Zonele neutilizate (rezervate) de pe discDe fapt exista o singura asemenea zona la offsetul 0Ch �n intrarea de director (o lungime de 10 octeti). Din pacate, aceasta zona este �n mod obisnuit utilizata de sistemele de operare "compatibile DOS". De exemplu Digital Research DOS (DR DOS), foloseste acest c�mp pentru a stoca parola fisierului, PC-MOS/386 (Software Links) stocheaza aici identificatorul proprietarului fisierului, drepturile de acces si data/timpul de creare. O alta zona rezervata care poate exista pe disc este restul de la ultimul sector �n FAT1, care este pastrat de DOS (si este chiar copiat pe toate celelalte clone ale FAT-ului). Zonele neutilizate (allocation unit rounded) de pe discDeoarece DOS-ul aloca spatiul pe disc �n cluster-e (care contin 2N sectoare), �n timp ce dimensiunea oricarui fisier este masurata �n octeti, majoritatea fisierelor au "cozi" nefolosite (si �n mod obisnuit invizibile la nivelul sistemului de fisiere). Acest lucru poate fi utilizat �n scopuri de protectie. Un "bug" curios al DOS-ului, care permite cautari (functia DOS 42h) dincolo de EOF, face ca accesul la aceste cozi ale fisierelor sa devina usor chiar si pentru limbaje de nivel �nalt. Protectii care folosesc BIOS-ul si placa de bazaO alta parte a PC-ului, care, �mpreuna cu floppy si hard disk-ul este totdeauna disponibila pentru protectia la copiere, este placa de baza. Desi placile de baza sunt acum produse �n serii de mii de bucati, aproape fiecare dintre ele are calitati individuale. Data-based tricksFiecare placa de baza are propriul BIOS. Astfel, aceasta se poate utiliza pentru protectia la copiere, desi nu este de asteptat aceasta �n primul r�nd din partea producatorilor de hardware si nici de la producatorii independenti de software (deci, stufosul BIOS de sistem cu o multime de functii si tabele criptice si nedocumentate este un gen de protectie la copiere). Alte zone de date disponibile pe placa de baza sunt memoria CMOS nevolatila, care de regula are o multime de spatiu neutilizat �n ea. Anumite chipset-uri pot mapa o parte din memoria CMOS �n spatiul de adrese al ROM-ului de sistem, cre�nd astfel aparenta reprogramare software a CMOS-ului BIOS. Time-based tricksMarcaje de protectie mai interesante sunt cele bazate pe timing-ul intern al placii sistemului. Trei subsisteme de baza sunt disponibile pentru asemenea masuratori: CPU, memoria si subsistemul I/O. Diferentele pot fi surprinzator de mari de la un sistem la altul, asa ca pot fi usor diferentiate. Protectii care utilizeaza chei hardSunt protectii simple din punct de vedere conceptual, dar eficiente �n cazul �n care se folosesc �n mod inteligent �n cadrul soft-ului protejat. Protectii cu chei hard plasate pe portul paralelProtectia este asigurata de informatiile stocate �n cheia hard plasata pe port. Accesul la aceasta informatie trebuie sa se faca �ntr-un mod neuzual pentru cel care �ncearca decriptarea, dar usor de catre utilizatorul autorizat (se impune furnizarea de rutine de lucru cu cheia). De asemenea, cheia plasata pe portul paralel trebuie sa nu ocupe acel port dec�t pe durata citirii/scrierii din/�n el, pentru a nu deveni incomod de utilizat (pune cheia, scoate cheia, �). Protectii cu chei hard plasate pe portul serialPortul serial este putin utilizat �n acest gen de protectii, deoarece el este intens utilizat �n mod uzual (mouse, scanner, modem etc.), astfel �nc�t poate crea probleme de plasare �n spatiul de adrese I/O disponibil si �ncurcaturi pentru utilizatorul legal. |