|
Claves del Registro de windows
HKEY_CLASSES_ROOT: Aquí tenemos registradas todas las
extensiones, tipos de archivo. HKEY_CURRENT_USER: Detallado de las configuraciones del
usuario actual. HKEY_LOCAL_MACHINE: Configuraciones de nuestro PC
tales como dónde está nuestro software y dónde los drivers instalados.
HKEY_USERS:
Las configuraciones de los usuarios de ese PC (urls visitadas,
aplicaciones favoritas...). HKEY_CURRENT_CONFIG:
Una especie de especificación de LOCAL_MACHINE, más detalles de
la configuración actual. HKEY_DYNAMIC_DATA: La información "dinámica", se "forma" al encender el ordenador y desaparece al apagarlo. Podemos considerar lo anterior como grandes árboles, al abrir cualquiera de las anteriores ramas nos encontramos montones de hojas llenas de información, a continuación un detallado de cada una de estas ramas... HKEY_CLASSES_ROOT
(HKCR) En
el GUI "graphic user interface" de Windows todo (cada archivo, directorio,
disco, etc.) es considerado como un objeto, cada objeto tiene asociadas
unas propiedades, esta rama ("Key") del registro contiene un listado de
los objetos y de sus propiedades, por ejemplo *.mid, todos sabemos que son
archivos de sonido, pues al abrir HKCR y la "Subkey" .mid veríamos lo
siguiente: Nombre: Datos: (predeterminado) "midfile" Content Type "audio/mid" Pues tenemos un objeto "midfile" con propiedades "audio/mid", es
decir, midfile está asociado a audio/mid, un cambio de este "Value" nos
dejaría sin poder escuchar la macarena en los bonitos scripts de mIRC...
vale la pena cambiarla? Las
principales funciones de estas claves son: 1º Asociar la extensión de un archivo a un tipo de objeto.
2º Asociar un icono a un tipo de objeto.
3º Asociar una serie de acciones de la línea de comandos a un tipo
de objeto. 4º Asociar las opciones de los menús contextuales (desplegables) a
un tipo de objeto. 5º Definir lo que aparecerá en la ventana de propiedades
(right-clickàpropiedades) para cada tipo de objeto.
Como habréis deducido cambiando un "Value" podemos asociar un tipo
de archivo a un determinado programa, cambiar el icono de un tipo de
archivo, añadir o quitar nuevos tipos de archivos, etc. Etc.
Dentro de KCR distinguimos tres tipos de "Subkeys":
Al abrir el registro con nuestro regedit.exe y echar un vistazo a
KCR nos encontramos que dentro de muchas de las "Subkeys" hay otras
"Subkeys" tales como:
[HKEY_CLASSES_ROOT\midfile\shell]
@="Play"
[HKEY_CLASSES_ROOT\midfile\shell\open]
@="Abrir"
[HKEY_CLASSES_ROOT\midfile\shell\open\command]
@="C:\\WINDOWS\\rundll32.exe
C:\\WINDOWS\\SYSTEM\\amovie.ocx,RunDll /open %1" [HKEY_CLASSES_ROOT\midfile\shell\play]
@="Reproducir"
[HKEY_CLASSES_ROOT\midfile\shell\play\command]
@="C:\\WINDOWS\\rundll32.exe
C:\\WINDOWS\\SYSTEM\\amovie.ocx,RunDll /play /close %1"
HKEY_CURRENT_USER
(HKCU) Las
"Subkeys" de esta "Key" contienen las configuraciones del actual usuario,
en caso de ser una máquina con un único usuario esta clave es casi
idéntica al .DEFAULT de HKEY_USERS. Lo que en ella tenemos es todas las
preferencias que en algún momento hayamos puesto añadidas a todas las
configuraciones por defecto. Contiene toda la información sobre el sistema
que no tiene HKEY_LOCAL_MACHINE, esto es, configuraciones del software y
preferencias del usuario. Es una parte del registro que podemos cambiar
casi sin riesgo de causar un estropicio, casi todas las opciones
contenidas en esta clave son modificables desde algún "peso pesado" del
Windows, como el panel de control, la barra de tareas, cualquier menú de
propiedades... Dentro
de esta "Key" y con la vista puesta en el cracking la clave \Software
es de los más jugosa, en ella encontramos desde números de serie hasta que
nos imposibilitan registrar la aplicación.
En esta "Key" nos encontramos con:
Persistent:
define los dispositivos y unidades que defines al dejar marcada la opción
de "reconectar al desconectar" (valga la redundancia...) las claves
contienen información como tu navegador, tu nombre de usuario,etc. Estas
claves aparecen como iconos en "Mi Pc". Recent:
las últimas conexiones de red que has realizado sin la opción de
reconectar chequeada, aparecen en menús desplegables cuando vas a realizar
una conexión de red (Path).
Addresses:
contiene una definición en binario de cada conexión que tengas montada en
"acceso telefónico a redes". Profile:
que se divide a su vez en una rama para cada conexión, en estas ramas
encontramos los valores de IP, dominio, nombre de usuario, etc. De cada
conexión.
El
contenido de las ramas que podemos encontrar suele ser muy parecido,
preferencias del usuario, direcciones de archivos guardados y lo más
interesante fechas de instalación, nombres de usuario/números de serie y
claves que determinan si el programa está o no registrado, más adelante
tocaremos un poco más este temita tan interesante. HKEY_LOCAL_MACHINE
(HKLM)
Las
diferentes entradas de esta "Key" definen el estado físico de nuestro PC,
incluyendo datos sobre el BUS, la memoria del sistema y las
configuraciones de nuestro hardware y software (registrado / no registrado
p.ej.). Contiene 7 "Subkeys" que son:
HKEY_USERS
(HKU) Aquí
se definen las configuraciones de cada usuario y las configuraciones que
por defecto se le otorgan a los nuevos usuarios, \.Default y
\nombredeusuario respectivamente. Las estructuras de cada una de estas "Subkeys" es semejante a HKCU,
al efectuar el "login" se copiarán en HKCU las configuraciones contenidas
en su \nombredeusuario. HKEY_CURRENT_CONFIG
(HKCC) Los
contenidos de esta "Key" se toman al iniciar el ordenata de las
configuaciones alojadas en cada perfil de usuario en
\Local_Machine\Config. Aquí
nos encontramos con tres "Subkeys":
HKEY_DYN_DATA
(HKDD) En
esta "Key" tenemos la información de nuestro sistema detectada al
iniciarlo, esta información como su nombre indica es dinámica y por lo
tanto susceptible de cambiar en cualquier momento lo que hace que parezca
que esta clave no se guarda. Dentro de HKDD nos topamos con:
Restaurar
el Registro. Como
más vale prevenir que curar antes de enseñaros cómo urgar en el registro
vamos a ver cómo podemos recuperar el registro por si las moscas se nos va
la pinza y conseguimos que o bien nuestro Windows no cargue o bien alguna
aplicación parece ausente... Los pasos para recuperar el registro antiguo son los siguientes:
1 Haga clic en el botón "Inicio" y, después, en Apagar el sistema.
2 Haga clic en Reiniciar el equipo en modo MS-DOS y, después, haga
clic en "Sí". 3 Cambie al directorio de Windows. Por ejemplo, si su directorio de
Windows es C:\Windows, deberá escribir: cd c:\windows 4 Escriba los siguientes comandos y presione ENTRAR después de cada
uno. (Observe que System.da0 y User.da0 contienen el número cero). attrib
-h -r -s system.dat attrib
-h -r -s system.da0 copy
system.da0 system.dat attrib
-h -r -s user.dat attrib
-h -r -s user.da0 copy
user.da0 user.dat 5
Reinicie su equipo. Con esto conseguiremos restaurar el último registro que cargó
correctamente nuestra pcera. Almacenamiento
de datos en el registro. No
podemos guardar lo que gustemos en el registro, hay unos límites técnicos
y físicos al tipo y tamaño de datos que una aplicación puede guardar en el
registro, existen ciertas líneas maestras a seguir para promover la
eficiencia del sistema. Una aplicación puede almacenar información sobre
configuraciones y de inicialización en el registro pero otros tipos de
datos deben ser guardados en otro sitio. Generalmente los datos consistentes en más de 2KB deben guardarse
como un archivo usando una "Key" que se refiera a la localización de estos
datos, este mismo proceso debe seguirse para evitar duplicar grandes
cantidades de datos en el registro. Nunca se debe guardar en el registro código binario ejecutable.
Un "Value" ocupa mucho menos espacio que una "Key", por esto y para
economizar espacio una aplicación puede agrupar datos de carácter similar
y guardar la estructura como un "Value" mejor que guardarla en "Keys"
separadas, si se usa este método es aconsejable pasar los datos a binario
para evitar incompatibilidades. Además y para guardar un orden diferenciaremos, a la hora de meter
un dato al registro, entre dos categorías de datos, información de la
computadora e información del usuario, gracias a esta diferenciación una
aplicación puede soportar múltiples usuarios, localizar información acerca
de un usuario específico a través de una red y usar la información
personalizada en distintas localizaciones permitiendo así que la
localización del perfil de un usuario sea totalmente independiente.
Por ejemplo cuando una aplicación es instalada puede guardar los
datos referentes al ordenata bajo HKEY_LOCAL_MACHINE. Puede crear
"Subkeys" para el nombre de la compañía, nombre del producto, versión,
etc. : HKEY_LOCAL_MACHINE\Software\NakarkoSoft\Expediente\3.0 La apliación puede guardar la información referente al usuario bajo
la "Key" HKEY_CURRENT_USER, como en el ejemplo siguiente:
HKEY_CURRENT_USER\Software\NakarkoSoft\Expediente\3.0\User\karlitoxZ\ Hands
On ;P Modificando el registro manualmente. Esto
es muy sencillito, tanto como cambiar de nombre a una carpeta mediante el
"Explorador" o cambiar las propiedades de un archivo con el menú
contextual. Como esto se hace más fácil de entender gráficamente os pongo un
ejemplito pero antes de nada tened muy en cuenta qué es lo que váis a
modificar, nunca modifiquéis algo que no sabéis para qué sirve o de lo
contrario... las claves que menos peligro tienen son las claves que
encontramos dentro de las "Subkeys" \Software por lo que ahí va un
ejemplillo con una de ellas: [HKEY_CURRENT_USER\Software\NukeNabber
2.0\Options] {keys y Subkeys} "savewindowpos"="0"
{values, 1=True 0=False} "runminimized"="1"
"usesystray"="1"
"stayontop"="0"
"killportscan"="1"
"client"="1"
"Services0"="mirc"
"langdesc"="Spanish"
"langnum"="4"
En esta ramita nos encontramos con opciones del NukeNabber
personalizables a través de sus menús, un 1 nos indica que la opción está
"encendida" y un 0 pues lo contrario. Tenemos marcada la opción de
"runminimized" con lo que el programa trabaja minimizado, tenéis aquí un
ejemplo de "Value" en binario que inmediatamente vamos a cambiar para que
el programa no curre minimizado. El tema sería de la siguiente manera:
1 Abrimos el Regedit.exe alojado en C:\Windows.
2 Click en HKCUà Software à NukeNabber2.0 à Options.
3 Doble-Click en el "Value" a cambiar, en este caso "runminimized".
4 Nos aparece una ventanita donde tenemos nombre de valor e
información del valor, pulsamos en lo segundo e introducimos un 0 para
anular esa opción y le damos al Enter. 5 Pulsamos F5 para actualizar el registro. Sencillo no? Pues a jugar un poquito... Cambiar de nombre a una
"Subkey" es todavía más sencillo, idéntico proceso al de cambiar de nombre
a una carpeta en el "Explorador". Se me había olvidado, también podemos modificar la información del
registro a través de archivos *.reg, haciendo doble-click sobre ellos,
dando al menú contextual y eligiendo "Combinar" o abriendo el Regedit.exe
y pulsando en el menú "Registro" à "Importar archivo del registro" la
información que el *.reg contiene se introducirá en nuestro registro.
Cómo
modificar el registro mediante una aplicación (para programadores).
Antes
de meter información al registro una aplicación debe abrir o crear una
"Subkey" apoyándose en las "Keys" predefinidas, los proggies usan las
funciones RegOpenKey o RegOpenKeyEx para abrir una "Key" o "Subkey" y las
funciones RegCreateKey o RegCreateKeyEx para crear una "Subkey".
Una apliación puede usar la función RegCloseKey para cerrar una
"Subkey" y escribir los datos en el registro, el proceso de escribir los
datos puede no ser inmediato y los datos pueden estar en caché unos
segundo antes de ser volcados al disco duro, para un volcado inmediato se
usa la función RegFlushKey, lo malo es que esta función chupa muchos
recursos y debe ser usada sólo en caso de que sea absolutamente necesario.
Para
escribir
los datos de un "Value" dentro de una "Sub/Key" una aplicación puede usar
las funciones RegSetValue o RegSetValueEx, la primera de las funciones
sólo trabaja con cadenas ("Values" de tipo REG_SZ), la segunda por el
contrario puede escribir "Values" con cualquier tipo de datos. Estas dos
funciones pueden crear una "Subkey" y su o sus "Values" al mismo tiempo.
Para borrar un "Value" de una "Sub/Key" usamos la función
RegDeleteValue, para borrar una "Sub/Key" usamos la función RegDeleteKey,
no se pueden introducir "Values" o "Subkeys" dentro de una "Key" borrada
como es lógico... Para cambiar la información sobre la seguridad de una "Sub/Key"
podemos usar la función RegSetKeySecurity. Obtener
información del registro manualmente. Sencillito
sencillito, basta con darse un rutecillo por el registro con el
Regedit.exe y ver qué es lo que tenemos en cada rama, como darse una vueta
por algún ftpwarez con el CuteFtp. Una buena cosa que nos permite el Regedit es "exportar archivo del
registro" (menú registro), gracias a esta opción podemos coger cualquier
rama de nuestro registro, pasarla a un archivo *.reg y compartir esta
ramita con nuestros compis, esto de la exportación es muy interesante
sobre todo si te das una vuelta por las "Subkeys" de Software y compartes
tus registered con los demás, vamos a ver un ejemplito y así comparto algo
con vosotros...que amar es compartir.... 1 Abrimos el Regedit.exe y nos colocamos en la rama del registro
que queremos enficherar. 2 En el menú de Registro, Exportar archivo del Registro.
3 Se nos abre una ventanita de esas de Save As, en ella elegimos
dónde y con qué nombre vamos a guardar nuestra ramita, además en la parte
inferior de la ventana tenemos la opción "Rango de Exportación", si
elegimos "Todo" haremos una copia de todo el registro, en cambio si
elegimos rama seleccionada pues eso, copiamos sólo la rama que queremos
copiar. 4 Ya está todo guardadito, ahora vamos a ver qué tiene el *.reg,
estos archivos son modificables mediante cualquier editor de textos
(notepad p.ej.). Aquí tenéis un ejemplo de lo que se ve al hacer esto, seguro que os
sirve de algo ;P REGEDIT4 [HKEY_CURRENT_USER\Software\Nico
Mak Computing\WinZip\WinIni] "win32_version"="7.0"
"Name"="karlitoxZ
(PNK)" "SN"="EA461EF8"
Por
si hay algún despistado esto es el registro del Winzip 7.0...
Obtener información del registro mediante una aplicación (para
programadores) Una aplicación para coger información del registro va
recorriendo todas las "Subkeys" de una "Key" hasta que encuentra la que
busca y recoge los datos del "Value" o de los "Values" asociados al
primero. Una aplicación puede usar las funciones RegEnumKey o RegEnumKeyEx
para enumerar las "Subkeys" de una "Key" determinada, la primera función
nos devuelve sólo la "Subkey" mientras que la segunda nos devuelve también
sus componentes. Para obtener datos concretos de una "Key" determinada recurrimos a
la función RegQueryInfoKey. Con la función RegGetKeySecurity obtendremos una descripción de las
características de seguridad de esa clave. La función RegEnumValue nos sirve para enumerar los "Values" de una
"Key" dada y las funciones RegQueryValue y RegQueryValueEx nos darán el
contenido del "Value" de una "Key" determinada.
RegEnumValue es llamada para determinar los nombres de los "Values"
y RegQueryValueEx para obtener los datos contenidos en los "Values" de
nombre sacado con RegQueryValue. Cuando una aplicación guarda parte de la información del registro
en un archivo separado de éste nos encontramos con el problema de cargar
esta información desde el registro cuando sea necesario, para este proceso
nos encontramos con RegSaveKey que nos permite guardar una "Key" con sus
"Subkeys" y "Values" en un archivo *.reg y con las funciones RegLoadKey
para pasar el contenido del archivo *.reg al registro (RegUnLoadKey nos
sirve para devolver el registro al estado anterior al RegLoadKey),
RegReplaceKey que modifica una rama del registro según defina el archivo
*.reg y RegRestoreKey que devuelve a una rama del registro los valores que
determina el fichero *.reg. Poca cosa más sobre este tema, para hacer esto más tragable he
omitido las estructuras de cada una de las funciones, si para alguien son
de interés y no tiene posibilidad de obtenerlas que me emaile y se las
envío ASAP. Algunos
detallitos de Windows modificables gracias al registro.
Aquí
tenéis unos cuantos trukillos para que esto funcione mejor o debería decir
que funcione menos mal? Y algunas tonterías que por lo menos a mi hacen
que algunas cosas de w95 me molesten un poquito menos...
|
webmaster: Walter Damian Cabrera |
||
Derechos Reservados © 2003 |