El Editor del Registro (REGEDIT) es una herramienta poderosa de Windows que permite ver y modificar la base de datos de configuración del sistema operativo. El registro contiene información que Windows referencia continuamente durante su operación.
Para abrir REGEDIT:
Win + R
regedit
El registro está organizado en una estructura jerárquica similar a las carpetas del sistema de archivos. Los componentes principales son:
HKEY | Descripción |
---|---|
HKEY_CLASSES_ROOT (HKCR) | Contiene asociaciones de archivos y configuración de COM/OLE |
HKEY_CURRENT_USER (HKCU) | Configuración del usuario actualmente logueado |
HKEY_LOCAL_MACHINE (HKLM) | Configuración del hardware y software para todos los usuarios |
HKEY_USERS (HKU) | Contiene configuraciones para todos los usuarios |
HKEY_CURRENT_CONFIG (HKCC) | Información sobre el perfil de hardware actual |
Tipo | Descripción |
---|---|
REG_SZ | Cadena de texto |
REG_MULTI_SZ | Múltiples cadenas de texto |
REG_EXPAND_SZ | Cadena con variables de entorno expandibles |
REG_DWORD | Número de 32 bits |
REG_QWORD | Número de 64 bits |
REG_BINARY | Datos binarios |
El registro se navega como el explorador de archivos, expandiendo las ramas con el símbolo +
o haciendo clic en las flechas.
Delete
o haga clic derecho → EliminarExportar:
Importar:
Puede usar el comando reg
en CMD o PowerShell:
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion" /v ProgramFilesDir
reg add "HKCU\Software\MyApp" /v SettingName /t REG_SZ /d "SettingValue"
reg delete "HKCU\Software\MyApp" /v SettingName
reg delete "HKCU\Software\MyApp" /f
Permite trabajar con partes del registro de otros usuarios o sistemas:
HKEY_USERS
o HKEY_LOCAL_MACHINE
Esta rama combina información de HKLM\Software\Classes
y HKCU\Software\Classes
, dando prioridad a la configuración del usuario.
Para cambiar el programa que abre archivos .txt:
HKCR\.txt
HKCR\txtfile\shell\open\command
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.myext] @="MyApp.File" [HKEY_CLASSES_ROOT\MyApp.File] @="Documento de Mi Aplicación" [HKEY_CLASSES_ROOT\MyApp.File\DefaultIcon] @="C:\\Program Files\\MyApp\\icon.ico" [HKEY_CLASSES_ROOT\MyApp.File\shell\open\command] @="\"C:\\Program Files\\MyApp\\app.exe\" \"%1\""
Contiene la configuración específica del usuario actual. Algunas subclaves importantes:
HKCU\Software
contiene configuraciones de aplicaciones para el usuario actual. Las aplicaciones suelen almacenar su configuración aquí en la estructura Vendedor\Aplicación
.
HKCU\Environment
contiene variables de entorno del usuario. Para modificarlas:
reg add "HKCU\Environment" /v TEMP /t REG_EXPAND_SZ /d "%%USERPROFILE%%\AppData\Local\Temp" /f
HKCU\Console
contiene configuraciones de la ventana de comandos (colores, tamaño, etc.).
HKCU\Keyboard Layout
contiene configuraciones del teclado.
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "NoViewContextMenu"=dword:00000001
Contiene configuraciones que afectan a todos los usuarios del sistema.
HKLM\Software
contiene configuraciones de aplicaciones para todos los usuarios.
HKLM\System
contiene configuraciones críticas del sistema:
CurrentControlSet\Control
: Configuraciones del sistemaCurrentControlSet\Services
: Configuración de serviciosCurrentControlSet\Hardware Profiles
: Perfiles de hardwareHKLM\Hardware
contiene información sobre el hardware detectado (se regenera en cada arranque).
Estas claves contienen información sensible de seguridad y cuentas de usuario. Normalmente no son accesibles incluso para administradores.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control] "Timeout"=dword:0000000a
Contiene perfiles de todos los usuarios que han iniciado sesión en el sistema. Cada usuario tiene una subclave identificada por su SID.
.DEFAULT
: Perfil usado antes del loginS-1-5-18
: Cuenta SYSTEMS-1-5-19
: Servicio LOCAL SERVICES-1-5-20
: Servicio NETWORK SERVICES-1-5-21-...
: Usuarios normalesWindows Registry Editor Version 5.00 [HKEY_USERS\.DEFAULT\Control Panel\Colors] "Background"="0 0 0" ; Fondo negro
Es un enlace a la configuración de hardware actual en HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current
.
Software
: Configuración de software específica del perfilSystem
: Configuración del sistema específica del perfilLos archivos .REG permiten automatizar cambios en el registro. Estructura básica:
Windows Registry Editor Version 5.00 [Ruta\Completa\De\La\Clave] "NombreDelValor"=tipo:datos
Puede usar herramientas como Process Monitor
de Sysinternals para ver qué cambios hacen las aplicaciones en el registro.
Desde C++ (WinAPI):
#include <windows.h> HKEY hKey; LONG lRes = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\MyApp", 0, KEY_ALL_ACCESS, &hKey); if (lRes == ERROR_SUCCESS) { DWORD dwValue = 1; RegSetValueEx(hKey, "SettingName", 0, REG_DWORD, (BYTE*)&dwValue, sizeof(dwValue)); RegCloseKey(hKey); }
Desde PowerShell:
# Crear clave New-Item -Path "HKCU:\Software\MyApp" -Force # Establecer valor Set-ItemProperty -Path "HKCU:\Software\MyApp" -Name "SettingName" -Value "SettingValue" # Leer valor Get-ItemProperty -Path "HKCU:\Software\MyApp" -Name "SettingName"
Método 1: Exportar todo el registro desde REGEDIT (Archivo → Exportar)
Método 2: Usar punto de restauración del sistema
Método 3: Copiar manualmente los archivos del registro (NTUSER.DAT, SAM, SECURITY, SOFTWARE, SYSTEM)
Problema | Solución |
---|---|
No se pueden guardar cambios: Permisos | Modificar permisos de la clave |
REGEDIT bloqueado por administrador | Usar PowerShell o CMD con derechos de admin |
Claves o valores dañados | Restaurar desde copia de seguridad |
Las aplicaciones comerciales suelen usar estas técnicas de protección:
Técnicas para encontrar donde una aplicación almacena su configuración:
Una vez identificada la clave, se pueden modificar valores como:
Algunas aplicaciones permiten cargar DLLs especificadas en el registro:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows] "AppInit_DLLs"="C:\\path\\to\\your.dll"
Para parchear aplicaciones que verifican valores del registro:
; Ejemplo de función que verifica una clave del registro ; Original (verificación fallida salta a fin) CMP EAX, 1 JZ loc_401234 ; Parche (siempre pasar verificación) NOP NOP
Técnica | Contramedida |
---|---|
Verificación de checksums | Deshabilitar verificaciones o parchear resultados |
Detección de depurador | Usar plugins anti-anti-debug |
Encriptación de valores | Analizar rutinas de desencriptado |
Busca en el registro con expresiones regulares y filtros avanzados.
Compara estados del registro antes y después de cambios.
Monitoriza en tiempo real accesos al registro, archivos y red.
Muestra cambios en el registro realizados por una aplicación específica.
Permite editar hives del registro sin cargarlos en el sistema activo.
El registro de Windows es una base de datos poderosa que controla casi todos los aspectos del sistema operativo. Dominar su estructura y manipulación permite un control sin precedentes sobre el comportamiento de Windows y las aplicaciones que ejecuta.