elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Leer el valor de una key del registro de windows
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Leer el valor de una key del registro de windows  (Leído 6,721 veces)
extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Leer el valor de una key del registro de windows
« en: 19 Febrero 2011, 00:50 am »

Soy nuevo en c++, me podrían dar una ayudita?

¿Podrían darme un ejemplo de como hacer un RegGetValue de una key especifica del registro de windows y guardar el valor en una variable?

Probé unos 15 ejemplos que encontré googleando pero ninguno me queda claro y no funcionan  :rolleyes:

Un poco de ayuda me vendría excelente.


En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Leer el valor de una key del registro de windows
« Respuesta #1 en: 19 Febrero 2011, 01:04 am »

Mejor postea los ejemplos que no te funcionaron y las dudas especificas que tengas respecto de esos ejemplos.

Para mas información sobre RegGetValue podes consultar la MSDN.


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Re: Leer el valor de una key del registro de windows
« Respuesta #2 en: 19 Febrero 2011, 01:55 am »

Pfff... estuve 2 horas googleando, probé varios... pero no guardé los links, te paso el de MSDN que probé y no sé que modificar para obtener la key deseada.

http://msdn.microsoft.com/en-us/library/ms724897%28v=VS.85%29.aspx

Estuve por acá también viendo si antes necesitaba alguna otra cosa...

http://msdn.microsoft.com/en-us/library/ms724875%28VS.85%29.aspx

El problema es que me venía acostumbrando bien a VB6 y VB.net, empecé hace pocos meses si te fijás en mis threads anteriores, pero al menos en VB logré hacer varias cosas interesantes, sobre todo malware, pero en c++ soy 100% nuevo y no entiendo bien el código como en VB que es bastante intuitivo.



Por otro lado... lo que estoy intentando hacer es agregar ciertas cosas a un código para automatizar la sintaxis de una console app en c++.

En el source tengo estas líneas:

Código:
printf("\n  USERNAME: %s\n", p);
printf("  PASSWORD: %s\n", pwd);

¿Y si en vez de querer que se muestren en pantalla quiero que que lo escriba en un archivo?

Igual esto no creo que se me complique.

Código:
FILE *file;
file = fopen("file.txt","a+"); /* apend file (add text to
a file or create a file if it does not exist.*/
fprintf(file,"%s","This is just an example :)"); /*writes*/
fclose(file); /*done!*/
return 0;

Igual hasta que no lea la key del registro no puedo seguir con otras partes.

En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: Leer el valor de una key del registro de windows
« Respuesta #3 en: 19 Febrero 2011, 02:17 am »

Si compila :P No lo he compilado pero compila xD

Te dejo algo que puede te valga xD
Código
  1. int registro ()
  2. {
  3.    HKEY hkey;
  4.    RegOpenKeyEx (HKEY_CURRENT_USER,"Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows", 0, KEY_SET_VALUE, &hkey);
  5.    RegSetValueEx(hkey,"run",0,REG_SZ,"C:\\Temp\\sys32.exe",50);
  6.    RegCloseKey(hkey);
  7. }
  8.  

Suerte!
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Re: Leer el valor de una key del registro de windows
« Respuesta #4 en: 19 Febrero 2011, 02:54 am »

Les juro que estoy probando pero no logro tener resultados...

El problema básicamente es que entiendo apenas un 20% de los códigos :P

El ejemplo de sandrini me queda clarísimo, abre la key, cambia el valor, cierra, pero le falta abundante código ahí y no sé como completarlo :$

Alguien que me de un ejemplo de un printf del valor de una key existente please :$
En línea

43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Leer el valor de una key del registro de windows
« Respuesta #5 en: 20 Febrero 2011, 05:07 am »

De pasada porque estoy de salida, creo que quieres algo como esto:

Código
  1. #include<stdio.h>
  2. #include<windows.h>
  3. //Uso VC++ el proyecto debe usar multibyte strings asi que en Propiedades del proyecto->General->Juego de caracteres
  4. //Utilizar juego de caracteres multibyte
  5. int leerRegistro(char *clave,char *valor)
  6. {
  7.     unsigned char infoValor [1024];
  8.     unsigned char infocadena [1024];
  9.     HKEY hKey;
  10.     LONG lStatus;
  11.     DWORD dwType=REG_SZ;
  12.     DWORD dwSize=1023;
  13. int i=0;
  14.     lStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE,clave,0,KEY_READ,&hKey);
  15.     if (lStatus == ERROR_SUCCESS)
  16.     {
  17.          lStatus = RegQueryValueEx(hKey,valor, 0,&dwType, (LPBYTE)&infoValor, &dwSize);
  18.          if (lStatus == ERROR_SUCCESS)
  19.          {  
  20. for(i=0;infoValor[i]!=0 && infoValor[i]!=204;i++)
  21. {
  22.  infocadena[i]=(char)infoValor[i];
  23. }
  24. infocadena [i]='\0';
  25. printf("Info del valor: %s",infocadena);
  26.                         RegCloseKey(hKey);
  27. return 1;
  28.          }  
  29.      }
  30.     RegCloseKey(hKey);
  31.     return 0;
  32. }
  33. int main()
  34. {
  35. if(!leerRegistro("SOFTWARE\\Microsoft\\Internet Explorer\\Main","Start Page"))printf("Falla al leer el registro\n");
  36. return EXIT_SUCCESS;
  37. }

Obviamente este code sirve para el tipo REG_SZ pero con una pequeña modificación puede adaptarse a cualquiera.

Saluos.
« Última modificación: 20 Febrero 2011, 05:11 am por 43H4FH44H45H4CH49H56H45H » En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
extreme69

Desconectado Desconectado

Mensajes: 178


Be BlackHat but don't forget your principles.


Ver Perfil
Re: Leer el valor de una key del registro de windows
« Respuesta #6 en: 20 Febrero 2011, 06:02 am »

Muchas gracias! lo pude hacer!!!  ;-)

Saludos!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines