Sleutelsecties van het Windows-register. Wat is het Windows-register?

Vandaag zullen we proberen om via de achterdeur in het Windows-register te komen, zonder de daarvoor bestemde reguliere WinAPI-functies te gebruiken. Wat levert het ons uiteindelijk op? De mogelijkheid om rechtstreeks vanuit het register te schrijven en te lezen, waarbij de beperkingen van de ontwikkelaars van antivirusoplossingen worden omzeild!

Vooruitkijkend merk ik op: dit onderwerp is interessant, maar er is een hele reeks ernstige problemen. Maar wie zei dat we het niet kunnen? 🙂

Wat is een register of een songtekst?

Vanuit het oogpunt van het Windows-besturingssysteem is het register een unieke voorraadkast. Deze bijzonder gebouwde hiërarchische database slaat instellingen, gegevens, registratie-informatie en andere onzin op over bijna alles in het systeem, van programma's tot de instellingen van een bepaalde gebruiker. Bijna alles wordt opgeslagen in het register. Ondanks het feit dat sommige programma's hun instellingen liever in ini-configs opslaan (vooral programma's die zijn geschreven voor Win 3.11. - Vert.), leest Windows zelf alle benodigde informatie over zichzelf uit het register. In alle eerlijkheid merken we op dat in * nix-achtige besturingssystemen het systeem voor het opslaan van instellingen in verschillende configuraties nog steeds domineert.

Nieuwkomers - systeembeheerders, wanneer ze met het register beginnen te werken, zijn bang door oudere kameraden dat onjuiste instellingen en wijzigingen in registerinstellingen het systeem volledig kunnen overweldigen met de daaropvolgende herinstallatie. En dat is het inderdaad ook.

De zogenaamde herstelpunten zijn bijvoorbeeld kopieën van het register. Ze worden veel gebruikt door gebruikers wanneer zich verschillende problemen voordoen, zowel met het besturingssysteem als met software en hardware.

Ik moet zeggen dat 99% van de informatie over het Windows-register een beschrijving is van de belangrijkste sleutels plus tips over hoe ermee te werken. Maar hoe werkt het besturingssysteem zelf met het register? En kunnen we haar acties navolgen? Laten we een beetje discussiëren.

Nou en?

Het register is zowel een sterkte als een zwakte van Windows. De kracht van het register is dat het niet nodig is voor softwareontwikkelaars om een ​​heleboel configuraties te manipuleren, zoals bijvoorbeeld in nix is ​​geïmplementeerd. Het register is ook handig voor de makers van COM-componenten - het systeem registreert zo'n component automatisch in het register en vergemakkelijkt het verdere gebruik ervan.

De zwakte van het register is dat toegang om gevoelige delen van het register te wijzigen, elk programma dat is geschreven door een nieuw aangemaakte malware, Windows kan besturen. Onthoud in ieder geval de meest bekende tak van het Windows-register, waarmee u programma's aan het begin van het besturingssysteem kunt uitvoeren :).

Als in Windows 98 het register gerepareerd zou kunnen worden door iedereen die eraan gedacht heeft, dan hebben vanaf Windows XP alleen gebruikers met een beheerdersaccount toegang tot het register. In Vista+ wordt de toegang tot het register beschermd door UAC. Het is begrijpelijk.

Het moet worden toegegeven dat met de release van Win7 de veiligheidsconcepten bij het werken met het register ten goede zijn herzien. De sleuteltak HKEY_LOCAL_MACHINE van het register wordt bijvoorbeeld beveiligd. In het algemeen wordt een poging om er iets naar te schrijven omgeleid naar de corresponderende HKEY_CURRENT_USER branch voor de huidige gebruiker.

Koppel

Om rechtstreeks met het register te werken, biedt Windows de programmeur een hele reeks WinAPI's die bekend moeten zijn bij elke systeemontwikkelaar - dit zijn Reg * -functies, zoals RegOpenKey, RegQueryValue, enzovoort. In de Win-kernel zijn dit NtOpenKey, NtQueryValueKey en een hele reeks andere. Het heeft niet veel zin om ze te beschrijven - alle documentatie over het juiste gebruik van deze functies is te vinden op MSDN.

Hier is wat het vermelden waard is. Om gebruikersacties te controleren, onderschept antivirusprogramma's en proactieve programma's de genoemde functies, zowel in de kernel als in de gebruikersmodus.

Met de release van Win7 x64 is de situatie veranderd en ik heb er op de een of andere manier al over geschreven. De Windows-ontwikkelaars besloten de mogelijkheid om potentieel gevaarlijke functies in de Win-kernel te onderscheppen te verwijderen. Nu wordt de KeServiceDescriptorTable-variabele meer geëxporteerd in x64, en het zal niet werken om de vereiste codesectie te herschrijven - PatchGuard niet. Er zijn natuurlijk sadomasochistische oplossingen om deze beperkingen te omzeilen - maar er zal meer gedoe zijn dan winst. Bovendien biedt Microsoft handige ObRegisterCallbacks voor registercontrole.

INFO

Er is heel weinig informatie op het web over de structuren die de belangrijkste registerbestanden beschrijven. En bijna allemaal zijn ze in het Engels. Basiskennis is te vinden. Bovendien is het goed geschreven over het register in de bijbel van de systeemingenieur "Internal Windows Device" van kameraden M. Russinovich en D. Solomon.

En nu - over de meest interessante

Maar wat is een register eigenlijk? Als u in de map WINDOWSsystem32config kijkt, ziet u daar verschillende bestanden: systeem, software, beveiliging, SAM en verschillende andere.

Dit zijn registerbestanden.

Het zou echter oneerlijk zijn om over het register te praten als een combinatie van bestanden die in het geheugen zijn geladen. Veel van wat het register bevat, is dynamisch van aard, dat wil zeggen dat een aantal waarden wordt berekend in het stadium van het laden van het systeem zelf, in de eerste plaats betreft dit bepaalde hardwareparameters. Dit is bijvoorbeeld de registersubsleutel HKEY_DYN_DATA, waarvan de gegevens in het RAM worden geplaatst wanneer het besturingssysteem opstart en daar blijven totdat het besturingssysteem wordt afgesloten. Trouwens, hetzelfde kan gezegd worden over de HKEY_LOCAL_MACHINE-sleutelsubsectie, die het bijbehorende bestand niet op schijf heeft, maar in feite is gevormd uit andere registerbestanden, zoals software, systeem en andere.

Het register van binnenuit kan dus grofweg een "virtuele combinatie van registerbestanden" worden genoemd. Nadat het systeem is gestart, bevinden deze bestanden zich zowel in het wisselbestand (paged pool) als in niet-wisselbaar geheugen (niet-wisselbaar).

Registerstructuur

Om direct met het register te leren werken, kan men niet zonder kennis van de interne structuur. Over het algemeen heeft Microsoft nooit de geheimen onthuld van de interne structuur van de bestanden waaruit het register bestaat, omdat dit de veiligheid bedreigt. Volgens mijn observaties zijn alle beschikbare beschrijvingen van de registerbestanden en de structuur ervan (en er zijn er trouwens heel weinig) het resultaat van onderzoek door pioniersonderzoekers. Het meest complete, naar mijn mening, zo'n "onderzoek" is mogelijk, het is van kameraad Peter Norris.

We zullen nu niet ingaan op de details van de organisatie en structuur van het register, dit is een lange, vervelende zaak en past niet precies in de reikwijdte van het artikel. Het is belangrijk om hier te begrijpen dat het register een hiërarchische boomachtige structuur is, waarvan soms ook wordt gezegd dat het een honingraat is.

En wat nu te doen met dit alles?

Ik zal je meteen van streek maken: het is onmogelijk om gemakkelijk te rommelen met het register in de gebruikersmodus, het systeem staat je dit niet toe, zoals meestal het geval is met bestanden die door andere processen worden gebruikt. Als je probeert te ontwijken, dan kun je zo'n "bezet" bestand alleen lezen en dan raden met de vlaggen waarmee het werd geopend. Helaas zal het schrijven van informatie naar het "registerbestand" dat voor ons van belang is niet werken. Trouwens, de functie met het schrijven van de benodigde informatie naar het register kan werken als u naar de register * .BAK-bestanden schrijft, ze zijn zeker beschrijfbaar.

Dus let op je hand :).

Het eerste dat in u opkomt, is om het registerbestand rechtstreeks te openen en daar iets te schrijven.

Theoretisch kan dit worden gedaan, hiervoor moet je ten eerste kunnen werken met "bezette" bestanden (zoek naar manieren op het web) en ten tweede, zoals ik hierboven al zei, moet je de interne structuur van het register kennen bestanden. Deze methode is nogal onhandig, maar ondanks zijn waanvoorstellingen is het redelijk uitvoerbaar, hoewel het in de praktijk moeilijk te implementeren is (probeer er zelf mee te experimenteren).

Hier zal ik twee manieren aanbieden die u zullen helpen het register in kleine stukjes te knippen.

De eerste manier is dat voor de Configuration Manager (Configuration Manager, onderdeel van het besturingssysteem, als je het niet weet), het register niets meer is dan een set goed gedefinieerde structuren in het werkgeheugen, die, zo blijkt , zijn zeer eenvoudig om mee te werken. Wat zijn deze structuren, vraagt ​​u zich af? HBASE_BLOCK, HHIVE, HBIN, HCELL, HMAP_ENTRY, HMAP_DIRECTORY, een aantal CM_*-structuren die door de configuratiemanager worden gebruikt om het register te beheren. Vanuit het oogpunt van het besturingssysteem is het register gewoon een reeks gereguleerde structuren in RAM. De handtekening "regf" die "registerbestand" definieert, is bijvoorbeeld een vooraf gedefinieerde constante:

Definieer HBASE_BLOCK_SIGNATURE 0x66676572 typedef struct _HBASE_BLOCK ( ULONG Signature; //0x66676572 ULONG Sequence1; ULONG Sequence2; LARGE_INTEGER TimeStamp; .... ) En hier is de "regf" handtekening...

Dat wil zeggen, de betekenis van al deze mijn monoloog is dat er een geweldige kans is om het register te manipuleren op het niveau van het besturingssysteem, maar zonder de standaardtools te gebruiken. Hoe is dit mogelijk? We emuleren gewoon de acties van het besturingssysteem zelf, precies zoals het werkt met het register zelf! Het is belangrijk, zoals ik al zei, om te begrijpen dat voor het besturingssysteem zelf het register niets meer is dan een reeks corresponderende structuren in het geheugen.

Als we toegang hebben tot de registerbestanden op kernelniveau, waarom zijn we dan slechter dan het besturingssysteem zelf om onze eigen orde vast te stellen?

En hier verschijnt de meest interessante vraag op het toneel: hoe kunnen we deze structuren in het geheugen vinden? Het is waar dat er geen reguliere systeemtools zijn om dit probleem op te lossen, dus je moet er op een lastige manier uitkomen.

Als u weet hoe de structuren eruitzien, moet u onthouden dat elk bestand, de registercomponent, zijn eigen constante handtekening heeft. "regf" is bijvoorbeeld 0x66676572. Voor de bijenkorf is de handtekening 0xBEE0BEE0. Omdat we vanuit de kernel toegang hebben tot geheugen, kunnen we deze handtekeningen vrij gemakkelijk in het geheugen vinden door het simpelweg te scannen. U kunt ook het geheugen scannen op zoek naar de handtekening "CM10" - het is deze handtekening die door de configuratiemanager wordt toegewezen aan het verwisselde geheugenblok, dat is toegewezen aan de CMHIVE-structuur. Ik veronderstel dat je, nadat je het voor ons interessante element in het geheugen hebt gevonden, zult uitvinden wat je er vervolgens mee moet doen :).

Hoe verander je bijvoorbeeld de waarde van een registercel? De waarde wordt opgeslagen in het veld CM_KEY_VALUE->Data, dus als u een taak heeft om een ​​veld in een specifieke registersleutel te wijzigen, zoekt u daar naar de waarde:

Typedef struct _CM_KEY_VALUE (WOORD-handtekening; // #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;

De tweede optie is een soort wijziging van de eerste. Als u het weet, is er één eigenaardigheid bij het werken met het register - alle wijzigingen, dat wil zeggen "nieuwe sleutels maken / sleutels schrijven / verwijderen", worden in de regel van kracht nadat het systeem opnieuw is opgestart (nou ja, of na het opnieuw opstarten van de verkenner , dit is zo'n hackmethode). Voorafgaand hieraan bevinden alle wijzigingen zich in een opgeschorte, "vuile" staat. Bovendien communiceert het systeem bij het verwerken van het register ermee via de cache van het bestandssysteem. Dit is begrijpelijk - er kunnen honderden toegangen tot het register per seconde zijn, daarom is vertrouwen op de snelheid van het bestandssysteem onredelijk, hier zal geen snelheid worden bespaard. Daarom werkt het systeem met het register, zoals ze zeggen, virtueel, via de cache van het bestandssysteem. En hier, om het lef van het register aan het licht te brengen, moet je in de cache komen! Hoe dit wordt gedaan, is al beschreven in tyrnets, waaronder in.

Pro & Cons, of in plaats van een conclusie

Wat te zeggen op het einde? De variatie die de lezer wordt aangeboden in het artikel over het onderwerp directe controle over het register is puur experimenteel. Ik beweer niet dat het te zwaar is voor praktische implementatie, en velen zullen zeggen dat het beter is om normale WinAPI-functies te gebruiken die zijn ontworpen om met het register te werken - en tot op zekere hoogte zullen ze gelijk hebben. Echter, de geïmplementeerde die_hard zal in feite, gebaseerd op de principes die in het artikel worden gegeven, een werkelijk thermonucleaire kracht hebben die niet onderhevig is aan avers of het besturingssysteem zelf.

Ik zal het afmaken. Veel succes met het samenstellen en moge de Force bij je zijn!

www

Een must-read artikel van Mark Russinovich over het register "Inside the Registry", er was zelfs een Russische vertaling. Een prachtig hulpmiddel om informatie over het register te verzamelen: http://goo.gl/iSSVy.

Windows-register (Windows-register - systeemregister) is een hiërarchische (boomachtige) database met vermeldingen die de parameters en instellingen van Microsoft Windows-besturingssystemen definiëren. Het register, zoals het wordt weergegeven door de Register-editor, wordt gevormd uit gegevens die afkomstig zijn uit registerbestanden en hardware-informatie die tijdens het opstartproces zijn verzameld. De beschrijving van registerbestanden in het Engels gebruikt de term "bijenkorf". In de documentatie van Microsoft wordt deze term vertaald als "Struik".

De belangrijkste bestanden die verantwoordelijk zijn voor de vorming van het register

Registerbestanden worden aangemaakt tijdens de installatie van het besturingssysteem en worden opgeslagen in de map:

%SystemRoot%\system32\config (meestal C:\windows\system32\config ).

Voor Windows-besturingssystemen zijn dit bestanden met namen:

systeem
software
Sam
beveiliging
standaard
componenten
bcd-sjabloon

In besturingssystemen Windows Vista, Windows 7, Windows8, , , bevinden de registerbestanden zich in de map \Windows\system32\config en hebben dezelfde namen, maar deze besturingssystemen hebben een nieuwe registersleutel toegevoegd om op te slaan ( Opstartconfiguratiegegevens) Met naam BCD00000000. Het gegevensbestand voor deze sectie heet bcd en staat in een verborgen map Laars de actieve partitie (de partitie van waaruit het systeem opstart). Gewoonlijk wordt tijdens een standaard Windows-installatie een kleine actieve partitie gemaakt (van 100 tot 500 megabytes, afhankelijk van het besturingssysteem), die voor de gebruiker verborgen is en alleen servicegegevens bevat voor het opstarten van het systeem - opstartrecords, opstartmanager bootmgr, opstartconfiguratiearchief BCD, lokalisatiebestanden en geheugentestprogramma's. Bush-locatie bcd hangt af van hoe de bootloader van het systeem was geconfigureerd toen deze werd geïnstalleerd, en kan zich op dezelfde partitie bevinden als de Windows-directory.

De locatie van de registerbestanden in elke versie van Windows kan worden bekeken met behulp van de register-editor, onder:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist

Deze sectie bevat informatie over alle kasten, inclusief gebruikersprofielen, met links naar hun locatie in het Windows-bestandssysteem.

Registerstructuur

Het Windows-register heeft een boomstructuur en bestaat uit 5 hoofdregistersleutels:

HKEY_LOCAL_MACHINE (HKLM) is de grootste registersleutel. Het bevat alle basisinstellingen van het besturingssysteem, evenals hardware en software van de computer. De informatie in deze sectie is van toepassing op alle gebruikers die zich bij het systeem registreren.

HKEY_CLASSES_ROOT (HKCR) - bevat associaties tussen applicaties en bestandstypen (door bestandsextensies). Daarnaast bevat deze sectie informatie over geregistreerde bestandstypen en COM- en ActiveX-objecten. behalve HKEY_CLASSES_ROOT deze informatie wordt ook opgeslagen in secties HKEY_LOCAL_MACHINE En HKEY_CURRENT_USER. Hoofdstuk HKEY_LOCAL_MACHINE\Software\Classes bevat standaardinstellingen die van toepassing zijn op alle gebruikers op de lokale computer. De parameters in de sectie HKEY_CURRENT_USER\Software\Classes, overschrijf de standaardinstellingen en zijn alleen van toepassing op de huidige gebruiker. Hoofdstuk HKEY_CLASSES_ROOT bevat gegevens uit beide bronnen.

HKEY_USERS (HKU) - Bevat de omgevingsinstellingen voor elk van de geladen gebruikersprofielen, evenals het standaardprofiel. IN HKEY_USERS er is een geneste sectie \Standaard, evenals andere subsleutels die worden geïdentificeerd door de beveiligings-ID ( Beveiligings-ID, SID) van elke gebruiker.

HKEY_CURRENT USER (HKCU) - bevat de omgevingsinstellingen voor de gebruiker die momenteel is aangemeld bij het systeem (omgevingsvariabelen, bureaubladinstellingen, netwerkinstellingen, applicaties en aangesloten apparaten).

Deze sectie dupliceert informatie in HKEY_USERS\gebruikers-SID, waar gebruikers-SID- de beveiligings-ID van de gebruiker die momenteel is aangemeld bij het systeem (u kunt de SID van de huidige gebruiker achterhalen door in de opdrachtregel te typen whoami /gebruiker).

HKEY_CURRENT_CONFIG (HKCC) - bevat instellingen voor het huidige hardwareprofiel. Het huidige hardwareprofiel bevat een reeks wijzigingen die zijn aangebracht in de standaardapparaatconfiguratie zoals gespecificeerd in de subsecties Software En Systeem root partitie HKEY LOCAL_MACHINE. IN HKEY_CURRENT_CONFIG alleen wijzigingen worden weergegeven. Bovendien bevindt de informatie in deze sectie zich in: HKEY_LOCAL_MACHINE\System\CurrentControlSet\HardwareProfiles\Current.

Gegevens in het register worden opgeslagen als parameters in registersleutels. Elke parameter wordt gekenmerkt door een naam, gegevenstype en waarde.

Belangrijkste gegevenstypen die in het register worden gebruikt

REG_DWORD - 32-bits nummer. Dit gegevenstype wordt door veel apparaatstuurprogramma's en service-instellingen gebruikt. Register-editors kunnen deze gegevens in binair, hexadecimaal en decimaal formaat weergeven.

REG_SZ - Tekstreeks in voor mensen leesbare indeling. Waarden die beschrijvingen van componenten zijn, krijgen meestal dit gegevenstype toegewezen.

REG_EXPAND_SZ - Uitbreidbare gegevensreeks. Deze tekenreeks is een tekst die een variabele bevat die kan worden vervangen wanneer deze door de toepassing wordt aangeroepen, bijvoorbeeld om omgevingsvariabelen te schrijven.

REG_MULTI_SZ - Veld met meerdere regels. Waarden die eigenlijk lijsten met tekststrings zijn in een voor mensen leesbaar formaat hebben meestal dit datatype. De regels worden gescheiden door het NULL-teken.

REG_BINARY - Binaire gegevens. De meeste hardwarecomponenten gebruiken informatie die is opgeslagen als binaire gegevens. Register-editors geven deze informatie weer in hexadecimaal formaat.

REG_RESOURCE_LIST - Lijst met hardwarebronnen. Geldt alleen voor filialen HKEY_LOCAL_MACHINE\HARDWARE.

U kunt soms ook dit soort registergegevens vinden:

REG_RESOURCE_REQUIREMENTS_LIST- Lijst met benodigde hardwarebronnen. Geldt alleen voor filialen HKEY_LOCAL_MACHINE\HARDWARE.

REG_FULL_RESOURCE_ DESCRIPTOR - Descriptor (descriptor) van de hardwarebron. Geldt alleen voor filialen HKEY_LOCAL_MACHINE\HARDWARE.

REG_QWORD - 64-bits nummer.

REG_DWORD_LITTLE_ENDIAN - 32-bit little-endian equivalent REG_DWORD.

REG_DWORD_BIG_ENDIAN - 32-bits getal in "big-endian"-indeling.

REG_QWORD_LITTLE_ENDIAN - Een 64-bits getal in "spiky" formaat. Equivalent REG_QWORD.

REG_NONE - De parameter heeft geen gedefinieerd gegevenstype.

Interactie van het register met het besturingssysteem

Wanneer de computer opstart, wordt de hardwareherkenning ( hardware herkenning) plaatst een lijst met gevonden apparaten in het register. Normaal gesproken wordt hardwareherkenning gedaan door software. ntdetect.com en besturingssysteemkernel Ntoskrnl.exe

Wanneer het systeem opstart, haalt de systeemkernel informatie uit het register op over de apparaatstuurprogramma's die moeten worden geladen en de volgorde waarin ze worden geladen. Daarnaast is het programma Ntoskrnl.exe verzendt informatie over zichzelf (bijv. versienummer) naar het register.

Tijdens het opstarten van het systeem wisselen apparaatstuurprogramma's opstartparameters en configuratiegegevens uit met het register. Het apparaatstuurprogramma meldt de systeembronnen die het gebruikt, inclusief hardware-onderbrekingen ( IRQ) en geheugentoegangskanalen ( DMA) zodat het systeem deze gegevens in het register kan opnemen. Overigens kunt u met het register meerdere hardwareprofielen maken. Hardwareprofiel ( hardware profiel) is een set instructies die kan worden gebruikt om het besturingssysteem te vertellen welke apparaatstuurprogramma's moeten worden geladen wanneer de computer opstart. Standaard maakt het systeem een ​​standaard hardwareprofiel aan dat informatie bevat over alle hardware die op de computer is gevonden.

Wanneer een gebruiker inlogt, worden gebruikersprofielen geladen ( gebruikersprofielen). Alle informatie met betrekking tot een bepaalde gebruikersnaam en de bijbehorende rechten wordt opgeslagen in het register. Een gebruikersprofiel definieert individuele systeeminstellingen (beeldschermresolutie, netwerkverbindingsinstellingen, aangesloten apparaten en meer). Gebruikersprofielinformatie wordt ook opgeslagen in het register.

Bij het installeren van applicaties. Elke keer dat u het installatieprogramma uitvoert, worden nieuwe configuratiegegevens aan het register toegevoegd. Alle installatieprogramma's moeten registerinformatie lezen om te bepalen of de componenten die ze nodig hebben op het systeem aanwezig zijn wanneer ze met hun werk beginnen. Bovendien kunnen applicaties via het systeemregister configuratie-informatie delen, waardoor ze meer mogelijkheden hebben om te communiceren. De toepassing moet het register actief en correct gebruiken en in staat zijn om de installatie op een elegante manier te verwijderen zonder dat dit gevolgen heeft voor componenten die door andere programma's (bibliotheken, programmamodules, enz.) kunnen worden gebruikt. Deze informatie wordt ook opgeslagen in het register.

Bij het beheren van het systeem. Wanneer een gebruiker wijzigingen aanbrengt in de systeemconfiguratie met behulp van systeembeheertools (bijvoorbeeld met Controle panelen of snap MMC), worden alle wijzigingen onmiddellijk weergegeven in het systeemregister. In feite zijn de beheertools de handigste en veiligste manier om het register aan te passen. Trouwens, de register-editor kan ook worden toegeschreven aan de administratieve tools ( regedit.exe), omdat alle wijzigingen aan het systeem direct kunnen worden gemaakt door het register te bewerken.

■ Tijdens het laden en de werking van het besturingssysteem worden registergegevens voortdurend benaderd, zowel voor lezen als voor schrijven. Registerbestanden veranderen voortdurend, omdat niet alleen het systeem, maar ook individuele applicaties het register kunnen gebruiken om hun eigen gegevens, instellingen en instellingen op te slaan. Met andere woorden, toegang tot het register is een van de meest voorkomende handelingen. Zelfs als de gebruiker niet op de computer werkt, worden registeraanroepen nog steeds uitgevoerd door systeemservices, stuurprogramma's en toepassingen.

■ Schending van de integriteit van de registerbestanden (schending van de datastructuur) of een onjuiste waarde van bepaalde kritische parameters kan leiden tot een systeemcrash. Zorg daarom, voordat u met het register gaat experimenteren, voor de mogelijkheid om het op te slaan en te herstellen.

Het Windows-register is een van de meest mysterieuze onderdelen van het besturingssysteem waarmee u bijna elk aspect van Windows kunt aanpassen en wijzigen. Sommige mensen werken de hele tijd met het register, maar de meeste mensen hebben er slechts een vaag idee van en weten niet precies hoe ze aangepaste sleutels en instellingen moeten maken. Laten we dus proberen uit te zoeken wat het Windows-register is.

Wat is het Windows-register?

Het Windows-register is niets meer dan een verzameling van verschillende systeemconfiguraties en instellingen.

Het kan worden gezien als een database waarin bijna alle belangrijke informatie wordt opgeslagen. Deze informatie omvat alles met betrekking tot het hardwaresysteem, applicatie-instellingen, geïnstalleerde programma's, gebruikersprofielen, enzovoort. Windows heeft voortdurend toegang tot het register, omdat, zoals eerder vermeld, alle belangrijke informatie erin wordt opgeslagen, en het besturingssysteem veel sneller en gemakkelijker alles vanaf één plek kan beheren dan te prutsen met individuele configuratiebestanden die zich op verschillende plaatsen bevinden.

Windows-registercomponenten

Het Windows 10-register bestaat uit drie hoofdcomponenten: sleutels op rootniveau, sleutels en instellingen.

Sleutels op hoofdniveau bevatten secties met hun eigen set opties.

Er zijn vijf verschillende sleutels op hoofdniveau, en ze hebben allemaal hun eigen specifieke doeleinden. Hier is hun kern:

  • HKEY_CLASSES_ROOT (HKCR): deze sleutel wordt gebruikt voor het koppelen en insluiten van objecten (OLE) en het koppelen van bestandstypen. Dit is de sleutel waar Windows bestanden koppelt aan hun respectievelijke programma's, zodat de gebruiker ze kan openen en ermee kan communiceren.
  • HKEY_HUIDIGE_GEBRUIKER(HKCU): deze Windows-registersleutel slaat alle gegevens, instellingen op gebruikersniveau en configuraties op die zijn gekoppeld aan de aangemelde gebruiker. Niet alleen Windows, maar ook andere programma's slaan hier gegevens op die betrekking hebben op de huidige gebruiker.
  • HKEY_LOCAL_MACHINE(HKLM): ongeacht de gebruikersstatus, deze sleutel bevat alle systeempartities, inclusief alle hardware-instellingen, software-instellingen, enz. Omdat HKLM de meeste systeeminformatie bevat, is het een van de meest openbare Windows-rootsleutels.
  • HKEY_USERS(HKU): zoals de naam al doet vermoeden, bevat deze root-sleutel instellingen voor alle gebruikers, inclusief ingelogde en uitgelogde, dus verwar deze sleutel niet met HKCU.
  • HKEY_CURRENT_CONFIG (HKCC): in eenvoudige bewoordingen is dit een pseudo-rootsleutel, omdat het een directe link is naar de huidige hardwareprofielinstellingen in de HKLM-rootsleutel.

Sectie Opties

Elk van deze grondsleutels heeft zijn eigen secties en elke sectie heeft zijn eigen instellingen. In elke sectie kunnen 6 verschillende soorten parameters worden gemaakt, en de waarden van deze parameters zijn volledig afhankelijk van het doelprogramma en/of configuratie-eisen.

Over het algemeen zijn er vier hoofdgegevenstypen die worden gebruikt in de Windows-registereditor van elke versie - 7.8 of 10:

  • Stringparameter: bestaat uit duidelijke, leesbare tekst en is een van de meest gebruikte instellingen in het Windows-register.
  • Binaire parameter: zoals de naam al doet vermoeden, bevat deze parameter alleen binaire gegevens (0, 1). Vaak gebruikt om een ​​specifieke functie in of uit te schakelen.
  • ParameterDWORD (32-bits): vergelijkbaar met een binaire parameter, maar in staat om elk geheel getal in het bereik van 32 bits op te slaan. Ontworpen om te werken met 32-bits systemen, maar wordt ook gebruikt op 64-bits systemen voor achterwaartse compatibiliteit.
  • ParameterQWORD (64 bits): deze parameter lijkt bijna op een DWORD, maar kan elk geheel getal in het bereik van 64 bits dragen. We kunnen zeggen dat QWORD is ontworpen om te werken met 64-bits systemen.

Hoe de Windows Register-editor te openen

Deze manier om het register te openen werkt ongeacht de geïnstalleerde versie van Windows - 7.8 of 10:

Druk op toets + R-toets om het venster Uitvoeren te openen. Typ of en druk op Enter of OK. Als het venster Gebruikersaccountbeheer (UAC) verschijnt, klikt u op Ja.

Het uitvoerbare bestand van de register-editor bevindt zich in de map C:\Windows. U kunt deze map dus openen en direct regedit.exe uitvoeren, of u kunt gewoon een snelkoppeling naar regedit.exe maken op een locatie naar keuze.

Register-editor: voor 64-bits en 32-bits Windows

Het register in 64-bits versies van Windows bestaat uit 32-bits en 64-bits secties. Veel van de 32-bits partities hebben dezelfde namen als hun 64-bits tegenhangers en vice versa.

64-bits (standaard) (regedit.exe) geeft zowel 64-bits als 32-bits partities weer. In de 64-bits versie van de Register-editor verschijnen 32-bits sleutels in de volgende registersleutel:

HKEY_LOCAL_MACHINE\Software\WOW6432Node

U kunt 64-bits en 32-bits secties en instellingen bekijken en bewerken met de 64-bits versie van de editor. Om 64-bits sleutels te bekijken of te bewerken, moet u de 64-bits versie van de Register-editor (regedit.exe) gebruiken. U kunt 32-bits sleutels en waarden ook bewerken en bekijken met behulp van de 32-bits versie (%systemroot\%Syswow64). Volg deze stappen om de 32-bits versie van de Register-editor te openen:

  • Open het dialoogvenster Uitvoeren.
  • Binnenkomen %systemroot%\syswow64\regedit en klik op OK.

Opmerking

Voordat u de 32-bits versie opent, moet u de 64-bits versie van de Register-editor sluiten (en vice versa). U kunt echter een tweede exemplaar van de Register-editor openen. Als de 64-bits versie van de editor bijvoorbeeld al actief is, typt u de opdracht %systemroot%\syswow64\regedit -m om de 32-bits versie van de editor te starten.

Nieuwe secties en instellingen maken

Het maken van secties en parameters is heel eenvoudig. Maar voordat u iets doet, moet u een back-up van uw Windows-register maken, aangezien onjuiste instellingen of het verwijderen van belangrijke elementen kritieke fouten kunnen veroorzaken.

Om een ​​back-up te maken, klikt u in het editorvenster op "Bestand -> Exporteren", voert u een bestandsnaam in en slaat u deze op een veilige plaats op.

Om een ​​nieuwe partitie aan te maken, klikt u met de rechtermuisknop op de sleutel op rootniveau en selecteert u Nieuw -> Partitie. De nieuwe partitie ziet eruit als een map en krijgt standaard de naam "Nieuwe partitie #1". Je kunt een sectie natuurlijk altijd hernoemen. Dezelfde procedure is van toepassing wanneer een nieuwe subsleutel moet worden gemaakt.

Om een ​​nieuwe parameter aan te maken, klikt u met de rechtermuisknop in een leeg gebied in het rechterdeelvenster van de editor en selecteert u de gewenste parameter. De aangemaakte parameter moet een naam krijgen; de naam hangt volledig af van de specifieke vereisten.

Om een ​​waarde aan een parameter toe te kennen, dubbelklikt u erop en voert u een waarde in. Nogmaals, de waarde is afhankelijk van het programma of specifieke instellingen.

Toegangsrechten tot registersleutels

Naar analogie met de rechten en machtigingen voor bepaalde objecten in het NTFS-bestandssysteem, wordt dezelfde bescherming geboden voor registersleutels.

Sinds de dagen van Windows Vista is een groot aantal OS-specifieke registersleutels die Windows-instellingen opslaan, beschermd door Windows Resource Protection, dus u kunt ze niet zomaar nemen en verwijderen of wijzigen. U kunt dit niet doen zonder hun eigenaar te worden en zonder hen machtigingen (toegangsrechten) in te stellen. Gelukkig staat het besturingssysteem dit ook toe, maar de handmatige methode is te saai, dus het is beter om een ​​eenvoudig hulpprogramma te gebruiken dat dit hele proces automatiseert.

Dat is alles! Ik hoop dat het bovenstaande u heeft geholpen om het Windows-register en de belangrijkste componenten ervan beter te begrijpen. Deel uw mening en ervaringen in de reacties hieronder!

Een fijne dag verder!

Dus vandaag zullen we het hebben over een onderwerp dat niet erg belangrijk lijkt, maar in feite zeer noodzakelijk is voor elke Windows-gebruiker (en de overgrote meerderheid van hen) - over wat het register is, waar het uit bestaat, waarom het nodig is en hoe ze het in hun bakken kunnen bewaren. Dus wat is een register eigenlijk? In wezen is dit een enorme, hiërarchisch opgebouwde database die werkt op gebruikersverzoeken. Deze database is nodig om gegevens over het systeem te ordenen en de toegang ertoe te optimaliseren. Het register bevat veel uiteenlopende informatie, zowel over de gebruikelijke instellingen van het besturingssysteem als over verschillende fijnafstemmingen - inclusief beveiligingsinstellingen en het werken met programma's op laag niveau, evenals stuurprogramma's.

Het register is geen extern programma, het maakt deel uit van het besturingssysteem. Ntdetect zoekt naar registerbestanden wanneer het systeem opstart en laadt de parameters van deze opstart vanaf daar. kennis van de registersleutels en kennis van hun betekenis is essentieel voor effectief systeembeheer. En in ieder geval ook voor een elementaire diagnose van 'waarom het niet zo werkt'. Het register is een boom-achtig waarde/sleutel-directorysysteem. Die verantwoordelijk zijn voor bepaalde instellingen. Bovendien moet er rekening mee worden gehouden dat verschillende sleutels een ander type kunnen hebben - van logisch tot string.

Demonstratieve anatomie.

Het is dus de moeite waard om te vertellen waar het register fysiek uit bestaat en hoe het werkt. Het is het vermelden waard meteen. Dat in de vorm waarin het register aan de gebruiker wordt gepresenteerd, het nergens wordt opgeslagen en dat er speciale programma's nodig zijn om het te bewerken - register-editors. De standaard regedit.exe en regedit32.exe zijn prima. Tijdens het opzetten en installeren van het systeem wordt een deel van de registergegevens gevormd en een ander deel tijdens de werking van het systeem. Als gevolg hiervan wordt, wanneer het systeem opstart, een REGISTRY\ virtueel object gevormd, namelijk het register. Registervertakkingen zijn beschikbaar voor het bewerken, bekijken en bestuderen van het register met behulp van standaard Windows-tools (regedit.exe en regedt32.exe-programma's). Na het bewerken van het register en/of het aanbrengen van wijzigingen worden deze wijzigingen direct weggeschreven naar de bestanden die onderdeel zijn van het register. Dit zijn, in Windows 95 en Windows 98, user.dat en system.dat; in Windows ME - gebruiker.dat, klassen.dat en systeem.dat. In latere versies van het systeem verscheen een veel groter aantal benodigde bestanden.

Over de tekortkomingen en hoe oplichters geld verdienen aan deze tekortkomingen.

In feite is het systeem vrij complex, maar behoorlijk betrouwbaar. Vanwege de buitensporige complexiteit zijn er problemen met de fragmentatie van het register, en dus met de snelheid van zijn werk. Ook heeft het register de neiging om extreem "dik" te worden als gevolg van de accumulatie van gegevens over een lange periode, wat ook de werking ervan bemoeilijkt. Dit probleem wordt opgelost met behulp van speciale programma's voor het optimaliseren en opschonen van het register. Wanneer u dit probleem alleen aanpakt, moet u onthouden dat u niets uit het register moet verwijderen als u niet weet wat het doel is - dit kan het systeem ernstig beschadigen of zelfs helemaal uitschakelen. Bovendien proberen oplichters rijk te worden van deze problemen - het netwerk staat vol met aanbiedingen om "een registeroptimalisatieprogramma te downloaden, waarna de computer 30% sneller zal werken na installatie." Meestal wordt een dergelijk aanbod gevolgd door een formulier voor het verzenden van sms, dat eerdere vermoedens bevestigt. Je moet geen aandacht schenken aan zulke dingen, en nog meer, geloof ze - dan verlies je geen geld of zenuwen.

De belangrijkste takken van het register, hun betekenis en doel.

HKEY_CLASSES_ROOT is een link naar de sleutel HKEY_LOCAL_MACHINE\Software\Classes. De informatie die hier wordt opgeslagen, zorgt ervoor dat het vereiste programma wordt gestart wanneer het bestand wordt geopend met Verkenner. Dit gedeelte bevat koppelingen tussen toepassingen en bestandstypen, evenals informatie over OLE.

HKEY_USERS - deze sectie bevat instellingen voor alle gebruikers van de computer.

HKEY_CURRENT_USER - Deze tak is een link naar een specifieke HKEY_USERS interne subsleutel. Alle instellingen worden ingesteld op basis van welke gebruiker momenteel is aangemeld bij het systeem (d.w.z. welke sessie actief is).

HKEY_LOCAL_MACHINE - bevat bijna de instellingen en opties die bij deze computer horen, inclusief hardware-instellingen, hardwareconfiguratie en gebruikersprofielen.

HKEY_CURRENT_CONFIG is in feite slechts een verwijzing naar HKEY_LOCAL_MACHINE\SYSTEEM\CurrentControlSet\Hardwareprofielen\Current. Er zijn alle inkomende hardware-instellingen die nodig zijn om het systeem te starten.

De belangrijkste standaardsecties die hierboven zijn geschreven, kunnen niet worden verwijderd of hernoemd. Sommige registersleutels zijn vluchtig en worden in geen enkel bestand opgeslagen. Het besturingssysteem maakt en beheert deze partities volledig in RAM zonder ze op de harde schijf op te slaan, dus ze zijn tijdelijk van aard. Het systeem maakt elke keer dat het opstart vluchtige partities. HKEY_LOCAL_MACHINE \HARDWARE is bijvoorbeeld een registersleutel die informatie opslaat over hardwareapparaten en hun toegewezen bronnen. Elke keer dat het systeem opstart, vinden resourcetoewijzing en hardwaredetectie plaats, dus het is logisch dat deze gegevens niet permanent op de harde schijf hoeven te worden opgeslagen.

Hoe "reeds verworven" op te slaan.

Soms is het handig om een ​​back-up (back-upkopie) te maken van het systeemregister - uit angst het te beschadigen. Dit kan gebeuren als gevolg van mislukte experimenten met het register, onjuiste installatie van stuurprogramma's en tientallen andere redenen. Ja, en het "voor het geval dat" kan ook geen kwaad. Om dit niet elke keer handmatig te doen, kun je een van de vele auto-backup programma's gebruiken, bijvoorbeeld Comodo Backup.