Foro de elhacker.net

Sistemas Operativos => Windows => Mensaje iniciado por: WaAYa HaCK en 12 Junio 2011, 13:12 pm



Título: Guardar valor de las claves del Registro en .txt
Publicado por: WaAYa HaCK en 12 Junio 2011, 13:12 pm
Hola a todos! Básicamente es esto: ¿cómo se puede guardar el contenido o valor de una clave conocida del Registro en un archivo de texto? He leído un post donde Hendrix preguntaba algo parecido, pero no me vale.

Si tuviéramos una clave en el Registro:
HKCU\Control Panel\Desktop\ConvertedWallpaper

cuyo valor fuera:
C:\Wallpapers\mi_fondo.bmp

Qué forma hay para que en un archivo de texto aparezca
Código:
El valor de la clave "HKCU\Control Panel\Desktop\ConvertedWallpaper" es "C:\Wallpapers\mi_fondo.bmp"
??


¿Se puede hacer con un .bat? ¿Un VBScript? ¿En Python?
Gracias!

Waaya


Título: Re: Guardar valor de las claves del Registro en .txt
Publicado por: SuperDraco en 12 Junio 2011, 13:53 pm
para empezar puedes exportar la clave manualmente, y se guarda en .REG... pero supongo que eso ya lo sabes.

Para hacer más o menos lo que dices, pues con este batch mismo que te acabo de hacer:


Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3.  
  4. For /F "tokens=1,2,3*" %%a in ('reg query "HKCU\control panel\desktop" /v "Wallpaper"') do (
  5. Set clave=%%a
  6. set Tipo=%%b
  7. Set valor=%%c
  8. )
  9.  
  10. echo El valor de la clave "!clave!" de tipo "!tipo!" es "!valor!" >> clave.txt
  11. notepad clave.txt
  12. pause>nul




Otra forma de hacerlo sería exportando la clave... pero no lo aconsejo ya que las claves se importan con caracteres dobles y podria crear confusion.

Código
  1. @echo off
  2. set Clave=HKCU\control panel\desktop
  3.  
  4. reg export "%clave%" clave.reg /y >nul
  5. For /F "tokens=1,2* delims==" %%a in ('type clave.reg ^| findstr /r ^\""Wallpaper""=') do (
  6. echo El valor de la clave "%clave%" %%a es %%b
  7. del /Q clave.reg
  8. )
  9.  
  10. pause>nul


Resultado:
Código:
El valor de la clave "HKCU\control panel\desktop" "Wallpaper" es "C:\\Users\\Administrador\\AppData\\Roaming\\Microsoft\\Windows\\Themes\\TranscodedWallpaper.jpg"

Como ves las barras son dobles. se puede arreglar en el for, pero no merece la pena ya que hay muchos más caracteres que aparecen dobles al exportar, así que te recomiendo unicamente la primera opción.


Título: Re: Guardar valor de las claves del Registro en .txt
Publicado por: skapunky en 12 Junio 2011, 14:05 pm
Puedes usar ese batch, aunque también puedes hacerlo con otros lenguajes, por ejemplo en visual basic puedes utilizar el WMI, aquí ejemplo:

Código
  1.   1. 'Constantes para acceder a las difentes ramas de l registro  
  2.   2. Const HKEY_CLASSES_ROOT = &H80000000  
  3.   3. Const HKEY_CURRENT_USER = &H80000001  
  4.   4. Const HKEY_LOCAL_MACHINE = &H80000002  
  5.   5. Const HKEY_USERS = &H80000003  
  6.   6. Const HKEY_CURRENT_CONFIG = &H80000005  
  7.   7.  
  8.   8.  
  9.   9. Private Sub Command1_Click()  
  10.  10.  
  11.  11.     Dim Wmi As Object  
  12.  12.     Dim ret As Long  
  13.  13.  
  14.  14.     'Computadora local  
  15.  15.     Name_Computadora = "."  
  16.  16.      
  17.  17.      
  18.  18.     Set Wmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _  
  19.  19.                         & Name_Computadora & "\root\default:StdRegProv")  
  20.  20.  
  21.  21.      
  22.  22.     ' Ruta de la clave a leer  
  23.  23.     Path_clave = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"  
  24.  24.      
  25.  25.     ' Nombre del Valor a leer  
  26.  26.     Nombre_Valor = "SoundMax"  
  27.  27.      
  28.  28.     'Lee el dato de tipo cadena  
  29.  29.     ret = Wmi.GetStringValue(HKEY_LOCAL_MACHINE, Path_clave, Nombre_Valor, Valor)  
  30.  30.      
  31.  31.     'Muestra el valor devuelto en la variable " Valor "  
  32.  32.     MsgBox " Valor: " & Valor, vbInformation  
  33.  33.    
  34.  34.     Set Wmi = Nothing  
  35.  35.  
  36.  36. End Sub  

Mirar fuente mas información: Aquí (http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/310-acceder-a-registro-con-wmi.htm)

Eso lo cargas en un textbox o listbox y guardas el contenido en un txt.


Título: Re: Guardar valor de las claves del Registro en .txt
Publicado por: WaAYa HaCK en 12 Junio 2011, 14:43 pm
pitoloko, la verdad es que había usado reg export, pero no había pensado de hacerlo con reg query. Tu batch me va perfecto.

Skapunky, una pregunta: ¿cómo puedo cargar en un textbox el valor y guardarlo en un txt?  :-[ es que no sé una ***** de VB  :(

De todos modos, ¡gracias a los dos!
Waaya