Il registro ( RDB ) è un database utilizzato dal sistema operativo Windows . Contiene i dati di configurazione del sistema operativo e di altri software installati che desiderano utilizzarlo. Nel 2009, Microsoft ha invece utilizzato il termine Registro di sistema di Windows per fare riferimento a questo database.
Molto spesso, gli utenti modificano il registro in modo trasparente, tramite un'interfaccia grafica. Ci sono casi in cui non è prevista l'interfaccia grafica: è quindi necessario utilizzare lo strumento Regedit , ma in questo caso non c'è alcuna salvaguardia, il software non controlla nessuno dei parametri modificati dall'utente, il che può quindi danneggiare il sistema .
Il registro è apparso per la prima volta su Windows 3.x , ma poi era molto limitato ed è stato utilizzato esclusivamente per associare un file ( un'estensione di file ) all'applicazione che ne consente la modifica o la visualizzazione. Nel 1993, con la prima versione di NT , è stato esteso per includere un insieme di chiavi e valori gerarchici. Il registro è memorizzato in diversi file chiamati alveari ( alveari ). Il registro è stato poi rilevato in Windows 95 nel 1995. Questo database di configurazione sostituisce la maggior parte dei file multipli di estensione .ini in Windows 3.x e nei suoi predecessori (NB: nel 2005, l'eccezione più nota è boot.ini , ecc. ).
Una delle parti più importanti del registro in Windows NT e nei suoi successori è il SAM (Security Account Manager) . Contiene in particolare le password ; in Windows NT, per impostazione predefinita, le password non erano crittografate.
In Windows NT 4, il registro veniva utilizzato sia per gli utenti locali che per i controller di dominio. A partire da Windows 2000 , i controller di dominio si basano su Active Directory anziché su SAM.
La protezione SAM predefinita in Windows NT era particolarmente debole. A partire da Windows NT Pack 3, l'utilità "syskey" di Microsoft viene utilizzata per rafforzare la crittografia delle password.
L'hashing delle password era inizialmente basato su MD4 (Message Digest) , poi nelle versioni successive Microsoft è passato a MD5 .
Da Windows 2000 si attiva su tutte le installazioni ed è configurato per salvare la chiave di avvio nel registro.
Nel 2013 l'utilità "syskey" è ancora utile nelle ultime versioni di Windows ( Windows Server 2012 , Windows 8.1 , Windows 10 ) ed è ancora presente l'opzione di salvare la chiave di avvio su floppy disk & nbsp; sebbene Windows 10 non supporti più i dischi floppy.
Il rdisk.exe di Windows NT 4 ha permesso di salvare il registro su un floppy disk da 1,44 MB (solo uno ...).
Questa utilità non è più inclusa nelle versioni successive di Windows perché la dimensione del registro è aumentata rispetto alla dimensione del disco floppy.
Per eseguire il backup del registro è possibile utilizzare ntbackupMicrosoft (copyright Microsoft e Veritas Software Corporation), spuntando la casella "Tutte le informazioni su questo computer"; l'estensione del file è ".BKF" per il file di backup. Il dispositivo di output predefinito è il floppy disk (1,44 MB ), che è troppo piccolo; è necessario specificare un altro dispositivo ( chiave USB da 1 GB o altro).
Fino a Windows 2000 , c'erano 2 utilità leggermente diverse, regedit e regedt32, per modificare il registro. regedit era più user-friendly, mentre regedt32 consentiva modifiche più sofisticate.
Con Windows XP , Microsoft ha unificato le 2 utilità: ora, i 2 comandi chiamano lo stesso strumento.
L' attuale GUI regedit di Microsoft ti consente di:
L'impostazione di questo strumento per un utente è configurata principalmente in
Le utilità "regmaid" e "scanreg" di Microsoft sono state create per risolvere problemi specifici. Sono diventati a priori obsoleti con le ultime versioni di Windows.
Per impostazione predefinita, i seguenti file hive vengono archiviati nella directory% SystemRoot% \ System32 \ Config :
Le informazioni su un utente sono archiviate nella directory corrispondente alla variabile d'ambiente % UserProfile% . Ad esempio, per un utente il cui nome utente è "dupont", il valore % UserProfile% sarà per impostazione predefinita "C: \ Documents and settings \ dupont" nelle installazioni delle versioni Home o Pro di Windows XP; il nome della directory può tuttavia essere diverso perché le credenziali dell'utente possono cambiare o perché è stato migrato un account utente, o per limitazioni del file system utilizzato, o perché un amministratore di sistema ha deciso di memorizzare i profili utente in un'altra cartella o su un altro disco di rete o volume. È presente un file hive NTUSER.DAT per utente.
La directory% SystemRoot% \ repair contiene un backup del registro; è utilizzato da Windows per alcuni casi. Inoltre, in Windows XP, Ripristino configurazione di sistema li memorizza nella directory \ System Volume Information sul disco di sistema.
I file di registro (estensione .LOG) e di backup (estensione .SAV) vengono utilizzati internamente da Windows per compensare interruzioni di corrente indesiderate o qualsiasi altra forma di arresto improvviso. Le versioni più recenti di Windows aggiungono il monitoraggio delle transazioni e i file di convalida.
Le posizioni fisiche dei diversi alveari utilizzati durante l'ultimo avvio sono elencate sotto la chiave hivelist in [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \] .
Ecco un tipico esempio del contenuto di hivelist :
Nome | genere | Dati |
---|---|---|
\ REGISTRY \ MACHINE \ BCD00000000 | REG_SZ | \ Device \ HarddiskVolume1 \ EFI \ Microsoft \ Boot \ BCD |
\ REGISTRY \ MACHINE \ SYSTEM | REG_SZ | \ Device \ HarddiskVolume3 \ WINDOWS \ system32 \ config \ SYSTEM |
\ REGISTRY \ MACHINE \ SOFTWARE | REG_SZ | \ Device \ HarddiskVolume3 \ WINDOWS \ system32 \ config \ SOFTWARE |
\ REGISTRY \ MACHINE \ SECURITY | REG_SZ | \ Device \ HarddiskVolume3 \ WINDOWS \ system32 \ config \ SECURITY |
\ REGISTRY \ MACHINE \ SAM | REG_SZ | \ Device \ HarddiskVolume3 \ WINDOWS \ System32 \ config \ SAM |
\ REGISTRY \ MACHINE \ HARDWARE | REG_SZ | |
\ REGISTRY \ MACHINE \ DRIVERS | REG_SZ | \ Device \ HarddiskVolume3 \ WINDOWS \ System32 \ config \ DRIVERS |
\ REGISTRY \ MACHINE \ COMPONENTS | REG_SZ | \ Device \ HarddiskVolume3 \ WINDOWS \ System32 \ config \ COMPONENTS |
\ REGISTRY \ MACHINE \ Schema | REG_SZ | \ Device \ HarddiskVolume3 \ WINDOWS \ System32 \ SMI \ Store \ Machine \ SCHEMA.DAT |
\ REGISTRY \ USER \ .DEFAULT | REG_SZ | \ Device \ HarddiskVolume3 \ WINDOWS \ system32 \ config \ DEFAULT |
\ REGISTRY \ USER \ S-1-5-19 | REG_SZ | \ Device \ HarddiskVolume3 \ WINDOWS \ ServiceProfiles \ LocalService \ NTUSER.DAT |
\ REGISTRY \ USER \ S-1-5-20 | REG_SZ | \ Device \ HarddiskVolume3 \ WINDOWS \ ServiceProfiles \ NetworkService \ NTUSER.DAT |
\ REGISTRY \ USER \ S-1-5-21- numero-dominio-locale-unico -500 | REG_SZ | \ Device \ HarddiskVolume3 \ Documents and Settings \ Administrator \ NTUSER.DAT |
\ REGISTRY \ USER \ S-1-5-21- unique-number-domainelocal -500_Classes | REG_SZ | \ Device \ HarddiskVolume3 \ Documents and Settings \ Administrator \ Local Settings \ Application Data \ Microsoft \ Windows \ UsrClass.dat |
\ REGISTRY \ USER \ S-1-5-21- numero-univoco-domainelocal -1001 | REG_SZ | \ Device \ HarddiskVolume3 \ Users \ nomeutente1 \ NTUSER.DAT |
\ REGISTRY \ USER \ S-1-5-21- unique-number-domainelocal -1001_Classes | REG_SZ | \ Device \ HarddiskVolume3 \ Users \ nomeutente1 \ AppData \ Local \ Microsoft \ Windows \ UsrClass.dat |
\ REGISTRY \ USER \ S-1-5-21- numero-univoco-domainelocal -1002 | REG_SZ | \ Device \ HarddiskVolume3 \ Users \ nomeutente2 \ NTUSER.DAT |
\ REGISTRY \ USER \ S-1-5-21- unique-number-domainelocal -1002_Classes | REG_SZ | \ Device \ HarddiskVolume3 \ Users \ nomeutente2 \ AppData \ Local \ Microsoft \ Windows \ UsrClass.dat |
I file che contengono il registro sono User.dat e System.dat ; la loro directory predefinita è \ Windows.
I file che contengono il registro sono User.dat , System.dat e Classes.dat ; la loro directory predefinita è \ Windows.
Il registro è suddiviso in diverse sezioni logiche. Sono generalmente conosciuti con i nomi che li definiscono quando si accede tramite l'interfaccia grafica di Windows; i nomi iniziano tutti con "HKEY" (un'abbreviazione di Handle per KEY , gestore delle chiavi).
I due HKEY di base sono:
Gli altri 4 HKEY sono
Ciascuna di queste chiavi è suddivisa in sottochiavi, che possono contenere altre sottochiavi e così via, costituendo un'intera struttura ad albero.
Ogni chiave può contenere valori digitati: ci sono circa quindici possibili tipi di dati,
Un gran numero di chiavi e valori chiave vengono visualizzati da regedit in un formato simile a {3F2504E0-4F89-11D3-9A0C-0305E82C3301}. In effetti, è nel formato GUID (Globally Unique IDentifier) (16 byte).
winreg.h è la comprendono necessario usare il linguaggio C Registro di sistema .
Linguaggio C #Con il linguaggio C # è possibile leggere e modificare il registro; i diversi metodi sono
Le funzioni sono GetSetting , SaveSetting .
È anche possibile passare attraverso WSH ( Windows Scripting Host )
Linguaggio JavaLa portabilità del linguaggio Java significa che l'accesso al registro non è implementato direttamente in Java.
In generale, per interfacciare Java con un'API nativa specifica per un sistema operativo, è necessario passare attraverso JNI (Java Native Interface) .
Nel caso particolare del registro, c'è ad esempio la DLL ICE_JNIRegistry .
Alcune librerie non utilizzano JNI per accedere al registro. Questo era il caso di Java Registry Wrapper (sul vecchio sito "Java By Example | Registry, Xxx, Reg").
Contrariamente a quanto è normale in Windows, diversi casi di caratteri danno risultati diversi. Esempio: i valori "no" e "No" possono dare risultati molto diversi.
Il carattere spazio ("") può essere utilizzato nei nomi dei tasti, sebbene ciò sia raro (esempio: il tasto opzionale Usa ricerca asst ).
Durante gli aggiornamenti di Windows , viene eseguito automaticamente il backup del registro.
L'utilità rstrui.exe consente di visualizzare l'elenco dei backup; nella terminologia Microsoft, sono chiamati punti di ripristino del sistema.
Tra i servizi Windows, c'è un servizio " Accesso remoto al registro " ( RemoteRegistry ). Non solo ti permette di leggere, ma anche di modificare il registro da remoto. Per ragioni di sicurezza, si consiglia di impostare il parametro " Modalità avvio " al valore " Disabilitato "; gli altri 2 valori possibili sono sconsigliati: " Manuale " e " Automatico ".
Questo servizio fa parte dei servizi lanciati tramite il comando " svchost.exe -k LocalService " (Process SerViCe HOST per l'account corrispondente all'utente locale). Utilizza il servizio RPC (Remote Procedure Call) .
L' utilità syskey di Microsoft è consigliata se si desidera proteggersi da qualcuno con accesso fisico alla stanza in cui si trova il PC.
Il contenuto del registro in Windows corrisponde ai file delle directory ecc di Unix o Linux .
Il sistema Windows utilizza file indicizzati , che consentono un accesso ottimizzato alle informazioni del database. La struttura permette di creare una configurazione multiutente in modo trasparente.
Al contrario, Unix utilizza semplici file di testo che possono contenere spiegazioni per ogni parametro; possono essere modificati con qualsiasi editor di testo. Il problema di dare diritti a ciascun parametro per particolari utenti in Unix (che il registro di Windows consente poiché qualsiasi chiave è un oggetto con un ACL) viene affrontato in modo diverso; i software che accedono a risorse privilegiate generalmente gestiscono questi diritti secondo una logica loro specifica, sia utilizzando l'appartenenza a gruppi di utenti , sia specificando essi stessi particolari livelli di diritti.
La maggior parte dei parametri del registro ha un tipo intrinseco . Tuttavia, alcuni parametri sono codificati in esadecimale, il che nega il vantaggio e rende difficile la modifica. In Unix la configurazione avviene tramite un file di testo e quindi i parametri non hanno una tipizzazione intrinseca (ed è quindi possibile avere un errore di configurazione).
L'esplorazione del registro è in realtà piuttosto complessa e noiosa: ci sono molti parametri ma non vengono forniti commenti ad eccezione dei nomi più o meno significativi delle chiavi. È necessario cercare documentazione esterna per ottenere una spiegazione. Al contrario, i file di configurazione di Unix spesso abbondano di spiegazioni più o meno chiare, perché tutti questi file possono essere commentati. Sotto Unix, la dispersione dei file di configurazione specifici per ogni programma software rende difficile qualsiasi soluzione finalizzata alla loro amministrazione a livello globale; d'altra parte, un intervento sfortunato su uno di essi generalmente non ha effetto sugli altri.
Se il file del registro è danneggiato, è possibile ripristinare (se è stata implementata una strategia di ripristino ) tutte le impostazioni del registro contemporaneamente.
In caso di errori di configurazione, è possibile tornare indietro in Windows: Windows esegue automaticamente un backup del registro, chiamato punto di ripristino .
In Unix (o Linux), non esiste un backup automatico dei file di configurazione. Se l'utente commette un errore su uno dei suoi file di configurazione, dovrà eventualmente aggiornare al livello minimo di inizializzazione , quindi, in ogni caso, dovrà correggere i file di configurazione con un semplice editor di testo. Il solito è usare un editor che conserva una copia di backup dei file modificati, che è il caso generale. I comandi unix di base (cp, cmp o strumenti grafici) rendono molto facile copiare e confrontare tutto / ecc.
" dconf " è l'equivalente del registro di Windows per le applicazioni basate su GNOME (una delle interfacce grafiche open source ). I dati vengono archiviati in formato binario.
Nelle versioni precedenti di Linux, veniva utilizzato GConf ei dati erano in formato XML .
Il sistema operativo AIX utilizza anche un equivalente del registro, con il nome ODM (Object Data Manager) .
Il progetto Elektra di Avi Alkalay mira a centralizzare tutti i parametri di configurazione sotto Linux in un'unica struttura. È l'equivalente del registro in Linux.
I 2 possibili formati di archiviazione (il backend ) sono XML (stesso formato di GConf) o Berkeley DB . Le modifiche ai dati vengono apportate direttamente, senza passare attraverso un demone.
Il progetto Elektra è sotto la licenza BSD ; è ospitato da SourceForge.net .
Nelle versioni precedenti di Mac OS X , l'equivalente del registro è il database NetInfo (in) .
. È anche possibile utilizzare reg / export e reg / import dalla riga di comando.
. Erunt [1] fornisce uno strumento GUI semplice ed efficiente per il salvataggio / ripristino del registro, in particolare per scopi di generalizzazione. È anche l'unico a offrire un backup completo, incluso SAM.
Sotto XP e Seven è anche possibile creare " punti di ripristino del sistema ". Non è strettamente parlando un backup, ma ti consente di tornare allo stato precedente.
L' utilità della riga di comando REGINI.EXE di Microsoft consente di modificare il registro in base a un file in formato INI (modificabile con qualsiasi editor di testo come Blocco note ). Regini viene fornito nel Microsoft Resource Kit per Windows 2000 (a pagamento).
L' utilità REGEDIT di Microsoft può essere utilizzata anche dalla riga di comando con l'opzione "/ s"; in questo caso il file delle modifiche da apportare deve essere in formato .REG, che altro non è che un file in formato ANSI composto dall'intestazione "Windows Registry Editor Versione 5.00". Nota: l'utilità non può essere gestita dalla riga di comando perché non viene restituito alcun codice di errore. È nativo per tutte le workstation.
L'utilità REGSVR32.EXE consente di registrare e annullare la registrazione di una DLL nel registro. Non è strettamente parlando uno strumento per modificare il registro. È nativo per tutte le workstation.
L'utilità REG.EXE consente di eseguire tutti i tipi di operazioni sulle chiavi di registro, dalla riga di comando. È quindi perfettamente gestibile. È nativo per tutte le workstation.
Regalyzer è un freeware paragonabile a REGEDIT : offre un'interfaccia grafica per modificare il registro.
Offre funzionalità aggiuntive, in particolare sulla ricerca di stringhe di caratteri; esempi:
Il pannello di immissione dei criteri di ricerca offre anche molte opzioni come una ricerca con operatori booleani (AND, OR, NOT), l'uso di caratteri jolly : "*" e "? Oltre a una funzione di ricerca con distinzione tra maiuscole e minuscole. La ricerca può quindi essere un po 'lunga ... ma con risultato una tabella esaustiva delle occorrenze trovate senza la necessità di utilizzare poi il tasto F3 per ricercare una possibile nuova occorrenza come è prassi con Regedit. Per ogni occorrenza presentata nella tabella risultante, il software visualizza la chiave, il nome del valore e i dati contenuti.
Il software consente inoltre nella tabella risultante di effettuare selezioni (sono possibili diversi tipi di selezioni) per le esportazioni o per le cancellazioni. Consente inoltre di aprire il software Regedit direttamente sulla chiave selezionata. Una scheda "Sostituisci" consente inoltre di modificare chiavi o valori selezionati utilizzando criteri in modo da eseguire la stessa manipolazione contemporaneamente su tutte le chiavi o valori selezionati.
Una volta ottenuta la tabella dei risultati, il software si presenta sotto forma di due finestre: una finestra che comprende la tabella dei risultati, e una finestra che si comporta come Regedit presentando la struttura ad albero completa centrata sulla chiave selezionata. Quando viene eseguito un doppio clic su un'occorrenza nella finestra della tabella dei risultati, la finestra che mostra la struttura ad albero si aggiorna per riflettere la nuova selezione. E tutte le operazioni possibili con Regedit sono quindi possibili sulla chiave o valore selezionato (modificare dati, creare, rinominare o eliminare valori o chiavi, ecc.)
Vedi l'articolo sullo spyware .
Esistono anche utilità per rimuovere le voci inutilizzate dal registro. Queste utilità sono chiamate pulitori di registro .
Il software regclean di Microsoft è a priori obsoleto, risale aDicembre 1997.
Altri esempi di pulitori di registro:
NB : Queste utilità non sono convalidate da Microsoft e, per quanto rilevanti possano essere, non vi è alcuna garanzia che non interferiranno con il funzionamento del sistema, in quanto non vi è alcuna prova della loro presunta efficacia. L'utente resta l'unico responsabile per qualsiasi inconveniente subito.
La pulizia del registro si basa su diversi concetti generici:
Esempio:
Può essere utile registrare le modifiche nel registro,
Questo può essere utilizzato, ad esempio, per facilitare la distribuzione del software.
Esempio di software:
Alcuni emulatori di Windows consentono di eseguire test del registro. Esempio di emulatore:
Ad esempio, per testare un eseguibile di dubbia origine, lo eseguiamo su un emulatore e possiamo vedere quale parte del registro è stata modificata. Se l'eseguibile si rivela pericoloso, basta fermare e riavviare l'emulatore e tutto torna alla normalità.
I seguenti tre libri spiegano alcuni valori chiave utili da conoscere tra la moltitudine di quelli esistenti.