Acces direct la disc pentru înregistrare în Windows 7

Proiectul este de fapt un depozit online de software liber. Toți dezvoltatorii își pot plasa aici desenele și accesul la proiecte poate fi accesat de toți utilizatorii de oriunde din lume.

Acces direct la discul de înregistrare în Windows 7


Acces direct la discul de înregistrare în Windows 7

La elaborarea unui program de protecție a unităților flash USB, a devenit necesar să se scrie sectoare direct pe disc. Accesul direct la disc a fost făcut prin intermediul funcției CreateFile. Sub Windows XP a mers bine, dar sub Windows 7, atunci când încercați să captureze sectorul returnează o eroare de acces Denied, în ciuda faptului că, atunci când deschideți discul de înregistrare erori au avut loc. După o lungă căutare, motivele pentru care a fost găsit după cum urmează: la începutul dezvoltării unei vulnerabilitate critică a fost descoperită în Windows 7. Fără a intra în detalii tehnice plictisitoare, că sensul său a fost faptul că un atacator ar putea deschide disc sistem de înregistrare și direct pune orice cod rău intenționat în fișierul paginii. În Microsoft a rezolvat problema cu caracteristica tocire de stejar - doar a luat și a interzis înregistrarea directă pe disc. Dar din moment ce este imposibil, dar a fost foarte necesar, modul de a ocoli protecția a fost foarte rapid. Se pare că scris discuri nu este interzis complet, sistemul permite să scrie date la pista de disc zero și spațiul nealocat. Acest comportament este de înțeles: este necesar să se cumva drive-urile în format fără mijloace suplimentare regulate de dans cu timpane. Mijloace pentru a se asigura că sistemul a permis înregistrarea la un loc arbitrar disc, acesta trebuie mai întâi defini ca o RAW. Acest lucru se realizează prin distrugerea sectorului de zero al discului înainte de ardere. Firește, distrugerea înainte de a fi necesar pentru a salva toate datele din sectorul zero, într-un loc răcoros și uscat, și apoi să le aducă înapoi.

Procedura este după cum urmează: deschideți discul pentru read-write, încercați să notați sectorul dorit. Dacă a apărut o eroare de acces refuzată, atunci trebuie să citiți sectorul zero, să scrieți zerouri, apoi să închideți întotdeauna discul. Este necesar ca sistemul, în urma utilizării repetate, să considere discul nealocat și să permită înregistrarea în orice sector. Apoi deschideți din nou discul pentru citire și scriere. După scrierea datelor necesare, restaurați sectorul zero și închideți discul. Totul, sarcina noastră este îndeplinită, datele sunt înregistrate, sistemul este liniștit. Această metodă are dezavantajele sale. Deci, dacă munca din programul dvs. sa încheiat anormal până în momentul în care a restabilit pista zero, atunci datele de pe disc pot deveni inaccesibile sau chiar se pot pierde. Metoda este testată și funcționează bine pe discuri amovibile cu sistem de fișiere FAT / FAT32, pe hard discuri staționare și alte sisteme de fișiere pe care nu le-am verificat.

Aici este fragmentul de cod din Assembler, preluat din proiectul de lucru. Dacă este necesar, poate fi ușor portat în alte limbi de programare.

Nu este nimic de spus: "Oricare ar face rusul, încă mai aveți o pușcă de asalt Kalashnikov." Am vrut-o mai bine, dar ca rezultat am găsit o modalitate de a înclina protecția sistemului încă o dată :)

Articole similare