Registrul Windows numire operațiune de bază. Ce este un registru și cum să lucrezi cu el

În dosare SYSTEM.DAT și USER.DATîn catalog Windows 95/98 sau într-un folder C:\W\System32\Config\în Windows NT asa numitul registru de sistem, conținând un numar mare de informație. Pe lângă înregistrările necesare ferestre, majoritatea programelor își instalează propriile informații și acolo. Pentru a face modificări în registry, trebuie să îl deschideți cu un program conceput pentru aceasta. Un exemplu este programul REGEDIT, furnizate ca standard Windows. Deschide caseta de dialog pentru a o lansa. Start/Run, introduce regeditși apăsați BINE.

Veți vedea o fereastră împărțită în două părți. În stânga este un navigator asemănător cu cel al lui Explorer, iar în dreapta sunt informațiile reale. Registrul este format din șase secțiuni: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIGși HKEY_DYN_DATA. Fiecare secțiune conține foldere. Dacă un folder sau o secțiune are subdosare, atunci în stânga acestui folder se află pictograma " la care se adauga". Când faceți clic pe el, acest folder " se desfășoară”, iar pictograma se transformă în „ minus" făcând clic pe care puteți din nou " colaps". Dacă dați clic pe pictograma folderului sau pe numele acestuia, atunci în fereastra din dreapta va apărea o listă a acelor parametri care sunt conținuți în acest folder (dar nu în subdosare!). Fiecare parametru este format din numele și valoarea sa. Fiecare parametru are propria cale, unde o puteți găsi. Calea constă din secvența de foldere în care se află această setare, începând cu folderul părinte (aceasta este una dintre cele șase secțiuni principale enumerate mai sus. Un exemplu de astfel de cale ar fi fi HKEY_CURRENT_CONFIG\Display\Settings, și numele parametrului rezoluţie.Într-o uniune, cele două valori, parametrul și calea acestuia (denumită adesea o adresă), indică un parametru unic. De exemplu, doi parametri diferiți pot avea aceeași cale, doi parametri pot avea același nume, dar să fie în foldere și subdirectoare diferite, dar nu pot exista doi parametri cu aceeași adresă și nume. Registrul poate fi căutat (folosind meniul sau folosind o comandă rapidă de la tastatură CTRL+F).

Selectând secțiunea dorită (făcând clic pe pictograma secțiunii sau pe numele acesteia), puteți crea un parametru sau o subsecțiune în ea. Pentru a face acest lucru, utilizați meniul Editați/Creați. În registrul de sistem Windows Există 3 tipuri de parametri: şir, binar, și DWORD. Un șir stochează un șir ( şir), în binar - valoare binară, în DWORD- zecimal sau valoare hex. Când creați un parametru, trebuie să specificați numele acestuia. Apoi, făcând dublu clic pe el în fereastra din dreapta, puteți introduce valoarea parametrului (sau o modificați pe cea existentă).

Dacă sfatul spune să setați valoarea unui parametru, înseamnă că trebuie să modificați valoarea existentă a parametrului la valoarea dorită, sau dacă nu există niciun parametru cu acel nume, creați-l și apoi modificați conținutul.

La sfârșitul lucrării, pentru majoritatea modificărilor, trebuie să închideți REGEDITși reporniți computerul dvs. Ei bine, în primul rând, să ne dăm seama ce este: registry Windows. Când instalăm sau eliminăm programe, schimbăm setările Windows punem echipamente noi, toate acestea sunt reparate și înregistrate în registru. Puteți spune asta, registrul este inima Windows. Pentru a vizualiza sau edita registrul, trebuie să rulați programul Regedit (Start - Run - Regedit). Fizic, registrul este stocat în director Windows (95/98) sub nume User.datși System.dat. Spun imediat dacă nu știi în ce vrei să schimbi 100% nu schimba, altfel pretul este fara valoare. Ei bine, pentru cei care încă s-au schimbat, dau un indiciu. După încărcare cu succes, Windows face copii de rezervă ale registrului sub numele Utilizator.da0și System.da0. Acesta este ceea ce vom folosi. Desigur, puteți crea propriile copii de rezervă pentru fiecare „pompier”. Dacă Windows nu se încarcă, atunci când se încarcă, țineți apăsat Ctrl. Pe măsură ce apare meniul, selectați „ numai promptul de comandă", accesați folderul Windows ("CD C:\Windows") și tastați comanda scanreg/restaurare(în Windows NT - rdisk). Acum reporniți și Windows ar trebui să înceapă. Dacă nu există un astfel de program, atunci va trebui să apelați Linie de comanda dintr-un folder Windows:

atrib -h -r -s system.dat
atrib -h -r -s sistem.da0
copy system.da0 system.dat
atrib -h -r -s user.dat
atrib -h -r -s user.da0
copie user.da0 user.dat

Ei bine, acum să mergem direct la registru.

1.) Deschis regedit, gaseste cheia

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall.

Aici vei gasi lista plina programe instalate. Dacă unele programe nu mai există, ștergeți folderele inutile cu numele lor (o listă incompletă este afișată în „ Panoul de control - Adăugați/Eliminați programe).

2.) În cheie

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Versiunea curentă\Run

este o listă a tuturor programelor de pornire la pornire Windows. Puteți șterge program inutil, și puteți adăuga. Pentru aceasta trebuie să creați Parametru șir, introduceți numele programului pentru nume și introduceți calea către program ca valoare a parametrului. Dacă există mai mulți utilizatori pe computer, atunci listele de programe pot fi aici:

HKEY_USERS\.DEAFAULT\Software\Microsoft\Windows\CurrentVersion și
HKEY_USERS\(Nume utilizator)\Software\Microsoft\Windows\CurrentVersion

3.) Gata, încălzirea s-a terminat și trecem la Meniu principal.

Pentru a scăpa de un articol Favorite (Windows 98), accesați secțiunea

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ Policies\Explorer

și creează aici Parametru binar NoFavoritesMenu cu sens 01 00 00 00 . Toate! Acum elementul Favorite nu va mai apărea. Ștergeți parametrul creat sau modificați-i valoarea în 00 00 00 00 pentru a returna articolul la locul său. Puteți scăpa de alte articole în același mod:

Documentație- parametru NoRecentDocsMenu
Setări - NoSetFolders
Găsiți - NoFind
Închidere - NoClose
Deconectare... - NoLogOff.

De asemenea, puteți anula o lucrare. Click dreapta mouse-ul în meniul principal, pentru aceasta creați același DWORD-parametru sub nume NoChangeStartMenu cu sens 1 . Gata! Ei bine, ultimele retușuri. Vă place mesajul despre ce buton să începeți? Nu? Apoi creăm DWORD- parametru numit NoStartBannerși sens 1.

4.) Accesați

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Winlogon

și creează Parametru șir LegalNoticeCaption. Introduceți „Chernobyl virus detectat” ca valoare, creați un alt parametru șir LegalNoticeText cu valoarea „Click OK și toate datele de pe hard disk vor fi distruse”. Reporniți Windows și bucurați-vă de rezultat. În primul parametru introducem titlul, iar în al doilea - textul în sine.

5.) Acum puteți schimba ceasul din colțul din dreapta jos. Mergi la

HKEY_CURRENT_USER\Control Panel\International

și creați un parametru șir sTimeFormat

Intelesul sau " HH:mm", unde HH este orele, : este caracterul separator, iar mm este minutele. Este necesară o repornire pentru ca modificările să aibă efect. Este distractiv să vezi cum va fi chinuit un prieten prin reglarea ceasului dacă schimbi HH și mm! Ei bine, dacă vrei să strici foarte mult, atunci trebuie să faci asta: Hm:mH "mH; Hm și așa mai departe.

6.) Pentru a nu exista săgeți în pictogramele comenzilor rapide, găsiți cheia HKEY_CLASSES_ROOT\Piffleși eliminați opțiunea IsShortcut, același lucru ar trebui făcut în folder lnkfile. Reporniți computerul și bucurați-vă de rezultat.

7.) Calea către fișierele de instalare Windows 95/98 se află în

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup.

Schimbați-l și Windows va căuta fișiere de configurare atunci când adăugați componente sau modificați setările sistemului.

8.) Pentru a elimina „palma” din resursele partajate, ștergeți doar valoarea Mod implicit de la cheie

HKEY_CLASSES_ROOT\Network\SharingHandler

9.) De asemenea, puteți elimina toate pictogramele de pe desktop. Pentru a face acest lucru, creați în cheie

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

Valoarea DWORD numită „ Fără desktop". Reporniți și vedeți cel mai curat desktop din lume.

10.) Pentru a ascunde discurile în explorator, accesați

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer

și creează aici parametru binar Cu nume " NoDrives".

Valoarea va depinde de unitățile pe care doriți să le ascundeți:

Disc A- sens 01 00 00 00
B - 02 00 00 00
C - 04 00 00 00
D - 08 00 00 00
E - 10 00 00 00
F - 20 00 00 00

Dacă doriți să ascundeți mai multe unități, atunci trebuie să însumați valorile acestora. Dar rețineți că aceste numere sunt în hexazecimal. Pentru a calcula corect, utilizați calculatorul ( Programe - standard - Calculator). Selectați din meniu Calculator „Vizualizare - Inginerie", apoi selectați "hexadecimal"și numără. De exemplu, pentru a ascunde unitățile Cși D este necesar să se adauge 04 00 00 00 și 08 00 00 00 . Introduceți valoarea parametrului 0C 00 00 00. Pentru a ascunde unitățile Ași E trebuie rezumat 01 00 00 00 și 10 00 00 00, obținem rezultatul 11 00 00 00.

11.) Deschis Proprietăți: Ecran, aici acoperim câteva file. În editorul de registry, găsiți cheia

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

creați aici DWORD-parametru denumit NoDispBackgroundPageși sens 1 . Acum fila fundal nu va fi afișat. Restul filelor sunt ascunse de următoarele opțiuni:

NoDispAppearancePage - Aspect
NoDispScrSavPage - Screensaver
NoDispSettingPage - Setare.

12.) Acum să facem elementul Pentru a deschide cu... a apărut întotdeauna în meniul contextual. Pentru a face acest lucru, găsiți cheia HKEY_CLASSES_ROOT\*\și creați o secțiune în ea coajă(daca nu exista). Aici vom crea o altă secțiune " deschide ca", și în ea încă" comanda„.Schimbați valoarea „ Mod implicit" pe " C:\WINDOWS\rundll32.exe shell32.dll, OpenAs_RunDLL %1". Gata, poți verifica.

13.) Pentru a modifica rata de cădere meniu principal introduceți cheia

HKEY_CURRENT_USER\Panou de control\desktop

și creează Parametru șir Meniu Afișare întârziere. Introduceți timpul de întârziere (în milisecunde) în valoare și reporniți.

14.) Acum să încercăm articolul Deschideți în Notepad pune înăuntru meniul contextual. Să mergem la secțiune HKEY_CLASSES_ROOT\*\shell(Dacă nu, creați unul). Creați o secțiune " deschisși schimbare Mod implicit pe " Deschideți în Notepad„.Acum creează o partiție” comanda" iar în ea se schimbă Mod implicit pe " notepad.exe %1". Gata.
15.) Și acum hai să ne jucăm cu Internet Explorer „om. Doriți să schimbați imaginea de fundal a browserului dvs.? Cu plăcere. Introduceți cheia

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar

și creează Parametru șir „BackBitmap". Și ca parametru, introduceți calea către imagine în format bmpși reporniți browserul. Dar asta nu este tot.

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main

creaza un nou Parametru șir Titlul ferestrei. În valoare, introduceți ceea ce doriți să vedeți în antetul după titlul paginii, reporniți browserul și bucurați-vă. Dirijorul va arăta exact la fel.

16.) Dacă vrei să admiri un nume sau doar un cuvânt după ceas Systray (panoul de jos) apoi du-te la

HKEY_CURRENT_USER\Panou de control\International\

și creați doi parametri șir: s1159și s2359. Introduceți numele dorit în valoarea lor. Restricție - 8 litere.

17.) Când trebuie să reporniți registry și nu doriți să reporniți mașina, în unele cazuri, următoarele vă vor ajuta: faceți clic pe Ctrl+Alt+Del, apoi selectați explorator si butonul " Finalizați sarcina". Când vi se cere să opriți aparatul, refuzați, apoi apăsați „ Încheiați sarcina" în fereastra următoare, după care vei vedea cum a dispărut și a apărut " Bara de activități".

Nu totul funcționează în Windows 95

Recuperarea registrului

Trebuie avut grijă când lucrați cu registrul. Ștergerea oricăror date importante din întâmplare sau fără să știe poate duce la un accident sistem de operare. Atunci doar restaurarea ultimei copii de lucru poate salva situația.

Dacă intenționați să experimentați cu registry, mai întâi salvați fișierele SYSTEM.DAT și USER.DAT pe disc. Acestea sunt situate în directorul în care a fost instalat sistemul de operare și au atribute numai pentru citire și ascunse. Dacă registry este grav deteriorat, puteți suprascrie aceste fișiere în directorul Windows, setați atributele necesare și registry va fi la fel de bun. Doar nu încercați să restaurați aceste fișiere când Windows este încărcat, altfel sistemul se va închide complet și îl va salva numai reinstalare completă! Pentru a restaura aceste fișiere, trebuie mai întâi să reporniți în DOS și să înlocuiți deja fișierele deteriorate cu altele bune.

Dar aceasta nu este singura opțiune pentru recuperarea datelor. Faptul este că sistemul de operare, la fiecare lansare reușită, salvează o copie a registrului într-un fișier CAB, care este scris în directorul ascuns SYSBCKUP al directorului Windows. În mod implicit, ultimele cinci copii sunt păstrate. Acest număr poate varia de la 0 la 99 și este stabilit de valoarea cheii MaxBackupCopies din fișierul scanreg.ini din directorul Windows. Adevărat, nu ar trebui să setați o valoare prea mare, deoarece. fișierele ocupă mult spațiu (un fișier este mai mare decât un megaoctet).

Pentru a restabili registry dintr-una dintre aceste copii de rezervă, trebuie să reporniți în DOS și să executați comanda

Va apărea o listă de copii de rezervă ale registrului disponibile, sortate în funcție de momentul în care au fost create. După selecție copia dorită datele vor fi restaurate în siguranță și veți primi un registru care îndeplinește starea de fapt la momentul creării acestuia.

Dar dacă ați instalat vreun program sau ați modificat setările sistemului de operare între ultima copie de rezervă și eșecul în registru, atunci toate aceste date se vor pierde iremediabil. Avem nevoie de ea? Cu siguranta nu! Pentru a crea oricând backup registry, utilizați comanda

care, în cazul unui control trecut în mod normal, va crea o copie de rezervă.

O altă opțiune pentru salvarea și restaurarea registrului este să exportați partiția sau întreaga ramură pe care intenționați să o modificați. Acest lucru se poate face în Regedit pentru Windows din meniul „Registry”. Selectați secțiunea dorită și faceți clic pe elementul „Exportați fișierul registry”. După specificarea numelui fișierului, datele acestei secțiuni vor fi exportate în acesta. Fișierul are extensia .reg. Pentru a-l importa în registry, trebuie doar să faceți dublu clic pe el și datele vor fi transferate. Adevărat, această metodă de recuperare a informațiilor are un dezavantaj semnificativ: toate înregistrările șterse sau modificate vor fi restaurate, dar înregistrările adăugate nu vor fi șterse. Asa de Pe aici este mai potrivit dacă faceți câteva modificări minore, iar pentru a le derula înapoi fără a introduce din nou datele vechi, puteți utiliza export/import.

În general, trebuie să lucrați cu registrul cu mare atenție, dar dacă îl faceți periodic copii de rezervă, atunci nu ar trebui să apară probleme.

Registrul Windows (Registrul Windows în engleză) sau registrul de sistem - o bază de date construită ierarhic de parametri și setări în majoritatea sistemelor de operare Microsoft Windows.

Registrul conține informații și setări pentru hardware, software, profiluri de utilizator, presetări. Majoritatea modificărilor din Panoul de control, asocierile de fișiere, politicile de sistem, lista de software instalat sunt remediate în registru.

Registrul Windows a fost introdus pentru a organiza informațiile care au fost stocate anterior în multe fișiere INI, pentru a oferi un singur mecanism (API) pentru scrierea și citirea setărilor și pentru a scăpa de problemele numelor scurte, lipsa drepturilor de acces și accesul lent la fișierele ini stocate. pe sistemul de fișiere FAT16, care a avut probleme serioase de performanță la căutarea fișierelor în directoare cu un număr mare de ele. De-a lungul timpului (în cele din urmă - odată cu apariția fișierului sisteme NTFS) problemele rezolvate de registry au dispărut, dar registry-ul a rămas din cauza compatibilităţii cu retrocompatibilitatea şi este prezent în toate versiuni Windows, inclusiv pe ultimul. Deoarece în prezent nu există o condiție prealabilă reală pentru utilizarea unui astfel de mecanism, Microsoft Windows este singurul sistem de operare utilizat astăzi care utilizează mecanismul de registru al sistemului de operare. LA Registrul general este un rudiment.

Registrul Windows așa cum este.

Registrul, așa cum este utilizat de Windows și așa cum este văzut de utilizator în procesul de utilizare a programelor de registry, este format din diverse date. Pentru a obține ceea ce vede utilizatorul la editarea registrului, se întâmplă următoarele.

Inițial, în timpul instalării (instalării) și setări Windows, pe disc se formează fișiere care stochează o parte din datele referitoare la configurația sistemului.


Apoi, în timpul fiecărei porniri a sistemului, precum și în timpul fiecărei autentificare și deconectare a fiecăruia dintre utilizatori, se formează o anumită entitate virtuală, numită „registry” - obiectul REGISTRY\. Datele pentru formarea „registrului” sunt parțial preluate din aceleași fișiere (Software, Sistem ...), parțial din informațiile colectate de ntdetect în timpul pornirii (HKLM\Hardware\Description).

Adică, o parte din datele de registry sunt stocate în fișiere, iar o parte din date sunt formate în timpul procesului de pornire Windows.

Pentru a edita, vizualiza și explora registry mijloace standard Windows (programele regedit.exe și regedt32.exe) sunt ramurile de registry care sunt disponibile. După editarea registrului și/sau modificarea acestuia, aceste modificări sunt imediat scrise în fișiere.

Cu toate acestea, există programe terțe care vă permit să lucrați direct cu fișiere.

Programele de optimizare a registrului, tweakers-urile, precum și programele de instalare și dezinstalare funcționează prin funcții speciale de registry.

Unde se află fișierele de registry Windows?

Fișierele de registry se află în folderul windows\System32\config\, există și o cheie de registry de utilizator - în fișierul %userprofile%\ntuser.dat.Copiile de rezervă ale fișierelor de registry se află în folderul windows\System32\config\RegBack.

Care sunt principalele secțiuni (tufe) ale registrului?

Cheie HKEY_CLASSES_ROOT

Aceasta este cheia principală Registrul Windows, conține asocieri de fișiere care asociază tipuri de fișiere cu programe care le pot deschide și edita și înregistrări de clase pentru obiectele Component Object Model (COM). Acesta din urmă oferă o oportunitate de a schimba un număr incredibil de reguli pentru comportamentul sistemului - nu ar trebui să faceți acest lucru fără un motiv întemeiat.

Secțiunea HKEY_CURRENT_USER

Stochează setările utilizatorului activ curent. Filiala stochează foldere de utilizatori, diverse setări personale și setări ale panoului de control. Aceste informații interacționează direct cu profilul utilizatorului. Această ramură constă din mai multe subsecțiuni care conțin căile fișierelor de sunet utilizate pentru evenimentele sistemului de sunet; diverse date care pot fi modificate în panoul de control, cum ar fi ordonarea pictogramelor; informații despre aspectul curent al tastaturii, setările aplicației utilizator etc.

Secțiunea HKEY_LOCAL_MACHINE

Setările de configurare care se aplică acestui computer sunt stocate aici (setările sunt setate simultan pentru toți utilizatorii). De exemplu, conține informații despre configurația computerului, driverele instalateși programe, nume de porturi, setări ale sistemului de fișiere etc.

Secțiunea HKEY_USERS

Această ramură conține informații despre profilurile tuturor utilizatorilor acest calculator(nume de utilizator, setări desktop etc.). De asemenea, această secțiune stochează setările implicite pentru desktop, meniul Start etc. Sunt necesare atunci când Utilizator nou se conectează pentru prima dată. În acest moment, setările implicite sunt copiate în profilul său și toate modificările ulterioare făcute de utilizator vor fi salvate în această ramură.

Cheie HKEY_CURRENT_CONFIG

Cheia este responsabilă pentru dispozitivele Plug & Play și conține informații despre configurația curentă a unui computer cu o compoziție variabilă a dispozitivelor, cum ar fi carduri flash, imprimante, faxuri, unități externe etc. De asemenea aceasta sectiune conține informații despre profilul hardware curent pe care îl utilizează computerul la pornirea sistemului.

HKEY_DYN_DATA

Această cheie există numai în registrul Windows 9x/ME OS. Conține date care se schimbă dinamic despre computer (încărcarea procesorului, dimensiunea fișierului de paginare etc.)

Cum se editează registrul?

Totul este simplu în Căutare Windows recrutare regeditși rulați editorul de registry ca administrator. Înainte de a efectua orice operațiune în registru, trebuie să faceți o copie de rezervă! Dacă ceva nu merge bine, puteți reveni la versiune de lucru Inregistreaza-te.


Optimizarea registrului.

Există o dezbatere cu privire la optimizarea registrului Windows. Aș spune pentru mai multe calculatoare slabe optimizarea este mai utilă decât pentru cei puternici. Dar mai există o nuanță, uneori setările de registry neștergite pot cauza blocări și conflicte de software și hardware, așa că recomand curățarea registrului de date inutile.


În plus, registrul se fragmentează în timp, acest lucru se datorează și epurărilor. Prin urmare, celor care fac curățarea registry tot timpul, le recomand și uneori să facă defragmentarea registry.

Pentru a optimiza registrul Windows, puteți utiliza programe, WinOptimizer, Reg Organizator, Auslogics Boostspeed.


Dacă aveți întrebări, urmăriți videoclipul de mai sus.

Astăzi vom încerca să intrăm în registry Windows din ușa din spate, fără a folosi funcțiile WinAPI obișnuite destinate acestui lucru. Ce ne va oferi până la urmă? Abilitatea de a scrie și citi direct din registru, ocolind restricțiile stabilite de dezvoltatorii de soluții antivirus!

Privind în viitor, observ: acest subiect este interesant, dar există un întreg set de probleme serioase. Deși cine a spus că nu putem face asta? 🙂

Ce este un registru sau niște versuri

Din punct de vedere operativ sisteme Windows, registrul este o cămară unică. Această bază de date ierarhică construită special stochează setări, date, informații de înregistrare și alte prostii despre aproape tot ce se află în sistem, de la programe la setările unui anumit utilizator. Aproape totul este stocat în registru. În ciuda faptului că unele programe preferă să-și stocheze setările în ini-configs (în special programele scrise pentru Win 3.11. - Ed.), Windows însuși citește toate informațiile necesare despre sine din registry. Pentru dreptate, observăm că în sistemele de operare * nix-like, sistemul de stocare a setărilor în diferite configurații domină în continuare.

incepatori - administratorii de sistem la începutul lucrului cu registrul, camarazii seniori se tem că setare greșită iar modificarea setărilor de registry poate copleși complet sistemul cu reinstalarea sa ulterioară. Și într-adevăr este.

De exemplu, așa-numitele puncte de restaurare sunt copii ale registrului. Sunt utilizate pe scară largă de utilizatori atunci când diverse probleme sistem de operare, software și hardware.

Trebuie să spun că 99% din informațiile despre registry Windows sunt o descriere a principalelor chei plus sfaturi despre cum să lucrezi cu ele. Dar cum funcționează sistemul de operare însuși cu registry? Și putem emula acțiunile ei? Să discutăm puțin.

Şi ce dacă?

Registrul este atât un punct forte, cât și un punct slab al Windows. Puterea registrului este că nu este nevoie ca dezvoltatorii de software să manipuleze o grămadă de configurații, așa cum sunt, de exemplu, implementate în nix. Registrul este, de asemenea, convenabil pentru creatorii de componente COM - sistemul înregistrează automat o astfel de componentă în registru și facilitează sarcina de utilizare ulterioară.

Punctul slab al registrului este că accesul pentru a modifica zonele sensibile ale registrului vă permite să controlați Windows orice un program scris de un program malware nou găsit. Amintiți-vă cel puțin cea mai faimoasă ramură a registrului Windows, care vă permite să rulați programe la începutul sistemului de operare :).

Dacă în Windows 98 registry ar putea fi reparat de oricine s-a gândit la asta, atunci începând cu Windows XP, numai utilizatorii cu cont administrator. În Vista+, accesul la registry este protejat de UAC. Este de inteles.

Trebuie să recunoaștem că odată cu lansarea Win7, conceptele de securitate atunci când lucrați cu registry au fost revizuite în bine. De exemplu, ramura cheie HKEY_LOCAL_MACHINE a registrului este sub protecție. În general, o încercare de a scrie ceva în acesta va fi redirecționată către ramura corespunzătoare HKEY_CURRENT_USER pentru utilizatorul curent.

Interfață

Pentru a lucra direct cu registry, Windows oferă programatorului un întreg set de WinAPI-uri care ar trebui să fie familiare oricărui dezvoltator de sistem - acestea sunt funcții Reg*, cum ar fi RegOpenKey, RegQueryValue și așa mai departe. În nucleul Win, acestea sunt NtOpenKey, NtQueryValueKey și o mulțime de altele. Nu prea are rost să le descriem - toată documentația privind utilizarea corectă a acestor funcții poate fi găsită pe MSDN.

Iată ce merită remarcat. Pentru a controla acțiunile utilizatorului, antivirusuri și proactive au instalat interceptări asupra funcțiilor menționate, atât în ​​kernel, cât și în modul utilizator.

Odată cu lansarea Win7 x64, situația s-a schimbat și am scris deja despre asta cumva. Dezvoltatorii Windows a decis să renunțe la capacitatea de a intercepta funcții potențial periculoase în nucleul Win. Acum variabila KeServiceDescriptorTable este exportată mai mult în x64 și nu va funcționa să rescrieți secțiunea de cod necesară - PatchGuard nu va funcționa. Există, desigur, soluții sadomasochiste pentru a ocoli aceste restricții - dar vor fi mai multe bătăi de cap decât profit. În plus, Microsoft oferă ObRegisterCallback-uri convenabile pentru controlul registrului.

INFO

Există foarte puține informații pe Web despre structurile care descriu principalele fișiere de registry. Și aproape toate sunt în engleză. Cunoștințele de bază pot fi găsite. În plus, este bine scris despre registru în biblia inginerului de sistem " Organizare internă Ferestre” de la tovarășii M. Russinovici și D. Solomon.

Și acum - despre cele mai interesante

Dar ce este un registru, de fapt? Dacă vă uitați în folderul WINDOWSsystem32config, puteți vedea mai multe fișiere acolo: sistem, software, securitate, SAM și multe altele.

Acestea sunt fișiere de registry.

Cu toate acestea, ar fi nedrept să vorbim despre registry pur și simplu ca o combinație de fișiere încărcate în memorie. O mare parte din ceea ce conține registrul este de natură dinamică, adică un număr de valori sunt calculate în etapa de încărcare a sistemului în sine, în primul rând, aceasta se referă la anumiți parametri hardware. De exemplu, aceasta este subcheia de registry HKEY_DYN_DATA, ale cărei date se află în sistemul de operare atunci când sistemul de operare pornește. memorie cu acces aleatorși rămâne acolo până la sfârșitul sistemului de operare. Apropo, același lucru se poate spune despre subsecțiunea cheie HKEY_LOCAL_MACHINE, care nu are fișierul corespunzător pe disc, dar este de fapt format din alte fișiere de registry, cum ar fi software, sistem și altele.

Astfel, registrul din interior poate fi numit aproximativ o „combinație virtuală de fișiere de registry”. După ce sistemul pornește, aceste fișiere sunt localizate atât în ​​fișierul de paginare (pool paginat), cât și în memoria nepaginată (nonpaged).

Structura registrului

Pentru a învăța cum să lucrezi direct cu registrul, nu se poate face fără cunoașterea structurii sale interne. În general, Microsoft nu a dezvăluit niciodată secretele structurii interne a fișierelor care alcătuiesc registry, deoarece acest lucru amenință securitatea. Conform observațiilor mele, toate descrierile disponibile ale fișierelor de registry și ale structurii acestuia (și sunt foarte puține dintre ele, de altfel) sunt rezultatele cercetării cercetătorilor de pionier. Cea mai completă, după părerea mea, este posibilă o astfel de „cercetare”, ea aparține tovarășului Peter Norris.

Nu vom intra în detaliile organizării și structurii registrului acum, aceasta este o afacere lungă, plictisitoare și nu se încadrează exact în domeniul de aplicare al articolului. Este important de înțeles aici că registrul este o structură ierarhică asemănătoare arborelui, uneori despre care se spune că este ca un fagure.

Și ce să faci cu toate astea acum?

Vă voi supăra imediat: este imposibil să păcăliți ușor cu registrul în modul utilizator, sistemul nu vă va permite să faceți acest lucru, așa cum este de obicei cazul fișierelor ocupate de alte procese. Dacă încerci să te eschivezi, atunci poți citi doar un astfel de fișier „ocupat”, apoi dacă ghiciți cu steagurile cu care a fost deschis. Din păcate, scrierea informațiilor în „fișierul de registru” care ne interesează nu va funcționa. Apropo, funcția de scriere a informațiilor necesare în registru poate funcționa dacă scrieți în registru * fișiere .BAK, acestea sunt cu siguranță inscriptibile.

Deci, ai grija de mana :).

Primul lucru care vă poate veni în minte este să deschideți direct fișierul de registry și să scrieți ceva acolo.

Teoretic, puteți face acest lucru, pentru aceasta aveți nevoie, în primul rând, să puteți lucra cu fișiere „ocupate” (căutați modalități pe Web) și, în al doilea rând, așa cum am spus mai sus, trebuie să cunoașteți structura internă a registrului fișiere. Această metodă este destul de neîndemânatică, dar, în ciuda faptului că este delirante, este destul de viabilă, deși este dificil de implementat în practică (încercați să experimentați singur).

Aici voi oferi două moduri care vă vor ajuta să tăiați registrul în bucăți mici.

Prima modalitate este că pentru managerul de configurare (Manager de configurare, parte a sistemului de operare, dacă nu știți), registrul nu este altceva decât un set de structuri strict definite în memorie de operare cu care, după cum se dovedește, este foarte ușor de lucrat. Ce sunt aceste structuri, vă întrebați? HBASE_BLOCK, HHIVE, HBIN, HCELL, HMAP_ENTRY, HMAP_DIRECTORY, o grămadă de structuri CM_* utilizate de managerul de configurare pentru a gestiona registrul. Din punctul de vedere al sistemului de operare, registrul este pur și simplu un set de structuri reglementate în RAM. De exemplu, semnătura „regf” care definește „fișierul de registry” este o constantă predefinită:

Definiți HBASE_BLOCK_SIGNATURE 0x66676572 typedef struct _HBASE_BLOCK ( ULONG Signature; //0x66676572 ULONG Sequence1; ULONG Sequence2; LARGE_INTEGER TimeStamp; .... ) Și aici este semnătura "reg"...

Adică, sensul tuturor acestor monologuri este că există o mare oportunitate de a manipula registrul la nivel de sistem de operare, dar fără a folosi instrumentele sale standard. Cum este posibil acest lucru? Doar emulăm acțiunile sistemului de operare în sine, exact așa cum funcționează cu registrul în sine! Este important, așa cum am spus, să înțelegem că pentru sistemul de operare în sine, registry nu este altceva decât un set de structuri corespunzătoare în memorie.

Dacă avem acces la fișierele de registry la nivel de kernel, atunci de ce suntem mai răi decât sistemul de operare însuși pentru a ne stabili propria ordine?

Și apoi cel mai mult interes Întreabă- cum să găsiți aceleași structuri în memorie? Dreapta, fonduri regulate nu există un sistem pentru a rezolva această problemă, așa că trebuie să ieși într-un mod dificil.

Știind cum arată structurile, trebuie să vă amintiți că fiecare fișier, stupul de registry, are propria sa semnătură constantă. De exemplu, „regf” este 0x66676572. Pentru stup, semnătura va fi 0xBEE0BEE0. Având acces la memorie din kernel, putem găsi aceste semnături în memorie destul de ușor prin simpla scanare a acesteia. De asemenea, puteți scana memoria în căutarea semnăturii „CM10” - această semnătură este atribuită de managerul de configurare blocului de memorie schimbat, care este alocat pentru structura CMHIVE. Presupun că, după ce ați găsit elementul care ne interesează în memorie, vă veți da seama ce să faceți cu el în continuare :).

Cum, de exemplu, se schimbă valoarea unei celule de registry? Valoarea este stocată în câmpul CM_KEY_VALUE->Date, așa că dacă aveți o sarcină de a modifica orice câmp dintr-o anumită cheie de registry, căutați valoarea acolo:

Typedef struct _CM_KEY_VALUE ( WORD Signature; // #define CM_KEY_VALUE_SIGNATURE 0x6B76 WORD NameLength; ULONG DataLength; ULONG Data; //<---------- данные ячейки будут здесь ULONG Type; WORD Flags; WORD Spare; WCHAR Name; } CM_KEY_VALUE, *PCM_KEY_VALUE;

A doua opțiune este un fel de modificare a primei. Dacă știți, există o particularitate atunci când lucrați cu registry - toate modificările, adică „crearea de chei noi / scrierea / ștergerea cheilor”, de regulă, au efect după repornirea sistemului (bine, sau după repornirea exploratorului). , aceasta este o astfel de metodă de hack). Înainte de aceasta, toate modificările sunt într-o stare suspendată, „murdar”. Mai mult, atunci când manipulează registry, sistemul comunică cu acesta prin intermediul cache-ului sistemului de fișiere. Acest lucru este de înțeles - pot exista sute de accesări la registry pe secundă, prin urmare, bazarea pe viteza sistemului de fișiere este nerezonabilă, nicio viteză nu va salva aici. Prin urmare, sistemul funcționează cu registry, așa cum se spune, virtual, prin cache-ul sistemului de fișiere. Și aici, pentru a scoate curajul registrului în lumină, trebuie să intri în cache! Cum se face acest lucru a fost deja descris în tyrnets, inclusiv în.

Pro & Contra, sau în loc de o concluzie

Ce sa zic pana la urma? Variația oferită cititorului în articolul pe tema controlului direct asupra registrului este pur experimentală. Nu susțin că este prea greu pentru implementarea practică și mulți vor spune că este mai bine să utilizați funcții WinAPI normale concepute să funcționeze cu registry - și vor avea dreptate într-o oarecare măsură. Cu toate acestea, die_hard-ul implementat, de fapt, pe baza principiilor date în articol, va avea o putere cu adevărat termonucleară care nu este supusă nici avers-ului, nici sistemului de operare în sine.

O voi termina. Succes la compilare și ca Forța să fie cu tine!

www

Un articol de citit obligatoriu al lui Mark Russinovici despre registrul „În interiorul registrului”, a existat chiar și o traducere în limba rusă. Un instrument minunat pentru a culege informații despre registru: http://goo.gl/iSSVy.

Windows Registry (Windows Registry - registru de sistem) este o bază de date ierarhică (în formă de arbore) care conține intrări care definesc parametrii și setările sistemelor de operare Microsoft Windows. Registrul, așa cum apare atunci când este vizualizat de Editorul Registrului, este format din date provenite din fișierele de registry și informații despre hardware colectate în timpul procesului de pornire. Descrierea fișierelor de registry în limba engleză folosește termenul "stup". În documentația de la Microsoft, acest termen este tradus ca "Tufiș".

Principalele fișiere responsabile de formarea registrului

Fișierele de registry sunt create în timpul instalării sistemului de operare și sunt stocate în folderul:

%SystemRoot%\system32\config (de obicei C:\windows\system32\config).

Pentru sistemele de operare Windows, acestea sunt fișiere cu nume:

sistem
software
Sam
Securitate
Mod implicit
componente
bcd-şablon

În sistemele de operare Windows Vista, Windows 7, Windows8, , , fișierele de registry se află în director \Windows\system32\configși au aceleași nume, totuși, aceste sisteme de operare au adăugat o nouă cheie de registry pentru a stoca ( Date de configurare a pornirii) Cu nume BCD00000000. Fișierul de date pentru această secțiune este numit bcdși se află într-un folder ascuns Boot partiția activă (partiția de pe care pornește sistemul). De obicei, în timpul unei instalări standard Windows, este creată o partiție mică activă (de la 100 la 500 de megaocteți în funcție de sistemul de operare), care este ascunsă utilizatorului și conține doar date de service pentru pornirea sistemului - înregistrări de pornire, manager de încărcare bootmgr, magazin de configurare de pornire BCD, fișiere de localizare și programe de testare a memoriei. Locația tufișului bcd depinde de modul în care a fost configurat bootloader-ul sistemului când a fost instalat și poate fi pe aceeași partiție ca și directorul Windows.

Locația fișierelor de registry în orice versiune de Windows poate fi vizualizată folosind editorul de registry, sub:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist

Această secțiune stochează informații despre toți stupii, inclusiv profilurile de utilizator, cu link-uri către locația lor în sistemul de fișiere Windows.

Structura registrului

Registrul Windows are o structură arborescentă și constă din 5 chei principale de registry:

HKEY_LOCAL_MACHINE (HKLM) este cea mai mare cheie de registry. Conține toate setările de bază ale sistemului de operare, precum și hardware-ul și software-ul computerului. Informațiile conținute în această secțiune se aplică tuturor utilizatorilor care se înregistrează în sistem.

HKEY_CLASSES_ROOT (HKCR) - conține asocieri între aplicații și tipuri de fișiere (după extensiile de fișiere). În plus, această secțiune conține informații despre tipurile de fișiere înregistrate și despre obiectele COM și ActiveX. Cu exceptia HKEY_CLASSES_ROOT aceste informații sunt stocate și în secțiuni HKEY_LOCAL_MACHINEși HKEY_CURRENT_USER. Capitol HKEY_LOCAL_MACHINE\Software\Class conține setări implicite care se aplică tuturor utilizatorilor de pe computerul local. Parametrii cuprinsi in sectiune HKEY_CURRENT_USER\Software\Class, suprascrieți valorile implicite și se aplică numai utilizatorului curent. Capitol HKEY_CLASSES_ROOT include date din ambele surse.

HKEY_USERS (HKU) - Conține setările de mediu pentru fiecare dintre profilurile de utilizator încărcate, precum și profilul implicit. LA HKEY_USERS există o secțiune imbricată \Mod implicit, precum și alte subchei identificate prin identificatorul de securitate ( ID de securitate, SID) al fiecărui utilizator.

HKEY_CURRENT USER (HKCU) - conține setările de mediu pentru utilizatorul conectat în prezent în sistem (variabile de mediu, setări desktop, setări de rețea, aplicații și dispozitive conectate).

Această secțiune dublează informații în HKEY_USERS\SID utilizator, Unde SID utilizator- identificatorul de securitate al utilizatorului conectat în prezent în sistem (puteți afla SID-ul utilizatorului curent tastând în linia de comandă whoami /utilizator).

HKEY_CURRENT_CONFIG (HKCC) - conține setări pentru profilul hardware curent. Profilul hardware actual include un set de modificări aduse configurației standard a dispozitivului specificată în subsecțiuni Softwareși Sistem partiția rădăcină HKEY LOCAL_MACHINE. LA HKEY_CURRENT_CONFIG se reflectă doar schimbările. În plus, informațiile din această secțiune se află în HKEY_LOCAL_MACHINE\System\CurrentControlSet\HardwareProfiles\Current.

Datele din registry sunt stocate ca parametri localizați în cheile de registry. Fiecare parametru este caracterizat de un nume, tip de date și valoare.

Principalele tipuri de date utilizate în registru

REG_DWORD - număr pe 32 de biți. Acest tip de date este utilizat de multe drivere de dispozitiv și setări de servicii. Editorii de registry pot afișa aceste date în format binar, hexazecimal și zecimal.

REG_SZ - șir de text în format care poate fi citit de om. Valorilor care sunt descrieri ale componentelor li se atribuie de obicei acest tip de date.

REG_EXPAND_SZ - Șir de date extensibil. Acest șir este text care conține o variabilă care poate fi înlocuită atunci când este apelată de aplicație, de exemplu, folosită pentru a scrie variabile de mediu.

REG_MULTI_SZ - Câmp cu mai multe linii. Valorile care sunt de fapt liste de șiruri de text într-un format care poate fi citit de om au de obicei acest tip de date. Liniile sunt separate prin caracterul NULL.

REG_BINARY - Date binare. Majoritatea componentelor hardware folosesc informații care sunt stocate ca date binare. Editorii de registry afișează aceste informații în format hexazecimal.

REG_RESOURCE_LIST - Lista resurselor hardware. Se aplică numai ramurilor HKEY_LOCAL_MACHINE\HARDWARE.

De asemenea, uneori puteți găsi aceste tipuri de date de registru:

REG_RESOURCE_REQUIREMENTS_LIST- Lista resurselor hardware necesare. Se aplică numai ramurilor HKEY_LOCAL_MACHINE\HARDWARE.

REG_FULL_RESOURCE_ DESCRIPTOR - Descriptor (descriptor) al resursei hardware. Se aplică numai ramurilor HKEY_LOCAL_MACHINE\HARDWARE.

REG_QWORD - număr pe 64 de biți.

REG_DWORD_ LITTLE_ENDIAN - echivalent pe 32 de biți în little-endian REG_DWORD.

REG_DWORD_BIG_ENDIAN - număr pe 32 de biți în format „big-endian”.

REG_QWORD_LITTLE_ENDIAN - Un număr pe 64 de biți în format „înțepător”. Echivalent REG_QWORD.

REG_NONE - Parametrul nu are un tip de date definit.

Interacțiunea registrului cu sistemul de operare

Când computerul pornește, dispozitivul de recunoaștere hardware ( dispozitiv de recunoaștere hardware) plasează în registru o listă de dispozitive pe care le-a descoperit. În mod normal, recunoașterea hardware-ului se face prin software. ntdetect.comși nucleul sistemului de operare Ntoskrnl.exe

Când sistemul pornește, nucleul sistemului preia din registru informații despre driverele de dispozitiv care urmează să fie încărcate și ordinea în care sunt încărcate. În plus, programul Ntoskrnl.exe trimite informații despre sine (de exemplu, numărul versiunii) la registru.

În timpul pornirii sistemului, driverele de dispozitiv schimbă parametrii de pornire și datele de configurare cu registrul. Driverul de dispozitiv raportează resursele de sistem pe care le folosește, inclusiv întreruperile hardware ( IRQ) și canale de acces la memorie ( DMA) astfel încât sistemul să poată include aceste date în registru. Apropo, registry vă permite să creați mai multe profiluri hardware. Profil hardware ( profilul hardware) este un set de instrucțiuni care pot fi folosite pentru a spune sistemului de operare ce drivere de dispozitiv să încarce la pornirea computerului. În mod implicit, sistemul creează un profil hardware standard care conține informații despre tot hardware-ul găsit pe computer.

Când un utilizator se conectează, profilurile de utilizator sunt încărcate ( profilurile utilizatorilor). Toate informațiile legate de un anumit nume de utilizator și drepturile asociate acestuia sunt stocate în registru. Un profil de utilizator definește setările individuale ale sistemului (rezoluția afișajului, setările de conexiune la rețea, dispozitivele conectate și multe altele). Informațiile despre profilul utilizatorului sunt, de asemenea, stocate în registru.

La instalarea aplicațiilor. De fiecare dată când rulați programul de instalare, noi date de configurare sunt adăugate în registry. Toți instalatorii trebuie să citească informațiile din registru pentru a determina dacă componentele de care au nevoie sunt prezente în sistem atunci când își încep activitatea. În plus, registrul de sistem permite aplicațiilor să partajeze informații de configurare, ceea ce le oferă mai multe oportunități de a interacționa. Aplicația trebuie să utilizeze în mod activ și corect registry și să poată dezinstala cu grație, fără a afecta componentele care pot fi utilizate de alte programe (biblioteci, module de programe etc.). Aceste informații sunt stocate și în registru.

La administrarea sistemului. Când un utilizator face modificări în configurația sistemului utilizând instrumente de administrare a sistemului (de exemplu, folosind Panouri de control sau snap MMC), toate modificările sunt reflectate imediat în registrul de sistem. De fapt, instrumentele de administrare sunt cele mai convenabile și sigure mijloace de modificare a registrului. Apropo, editorul de registry poate fi atribuit și instrumentelor administrative ( regedit.exe), deoarece toate modificările sistemului pot fi făcute direct prin editarea registrului.

■ În timpul încărcării și funcționării sistemului de operare, datele de registru sunt accesate în mod constant, atât pentru citire, cât și pentru scriere. Fișierele de registry se schimbă constant, deoarece nu numai sistemul, ci și aplicațiile individuale pot folosi registry pentru a-și stoca propriile date, setări și setări. Cu alte cuvinte, accesarea registrului este una dintre cele mai frecvente operațiuni. Chiar dacă utilizatorul nu lucrează pe computer, apelurile la registry sunt încă efectuate de serviciile de sistem, driverele și aplicațiile.

■ Încălcarea integrității fișierelor de registry (încălcarea structurii datelor) sau o valoare incorectă a anumitor parametri critici poate duce la o prăbușire a sistemului. Prin urmare, înainte de a experimenta cu registrul, aveți grijă de posibilitatea de salvare și restaurare a acestuia.