Autor
|
Tema: Leer el valor de una key del registro de windows (Leído 7,023 veces)
|
extreme69
Desconectado
Mensajes: 178
Be BlackHat but don't forget your principles.
|
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 Un poco de ayuda me vendría excelente.
|
|
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
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
Mensajes: 178
Be BlackHat but don't forget your principles.
|
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.aspxEstuve por acá también viendo si antes necesitaba alguna otra cosa... http://msdn.microsoft.com/en-us/library/ms724875%28VS.85%29.aspxEl 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: 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. 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
Mensajes: 1.121
¡Este año voy a por todas! JMJ 2011
|
Si compila No lo he compilado pero compila xD Te dejo algo que puede te valga xD int registro () { HKEY hkey; RegOpenKeyEx (HKEY_CURRENT_USER,"Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows", 0, KEY_SET_VALUE, &hkey); RegSetValueEx(hkey,"run",0,REG_SZ,"C:\\Temp\\sys32.exe",50); RegCloseKey(hkey); }
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
Mensajes: 178
Be BlackHat but don't forget your principles.
|
Les juro que estoy probando pero no logro tener resultados... El problema básicamente es que entiendo apenas un 20% de los códigos 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
Mensajes: 502
|
De pasada porque estoy de salida, creo que quieres algo como esto: #include<stdio.h> #include<windows.h> //Uso VC++ el proyecto debe usar multibyte strings asi que en Propiedades del proyecto->General->Juego de caracteres //Utilizar juego de caracteres multibyte int leerRegistro(char *clave,char *valor) { unsigned char infoValor [1024]; unsigned char infocadena [1024]; HKEY hKey; LONG lStatus; DWORD dwType=REG_SZ; DWORD dwSize=1023; int i=0; lStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE,clave,0,KEY_READ,&hKey); if (lStatus == ERROR_SUCCESS) { lStatus = RegQueryValueEx(hKey,valor, 0,&dwType, (LPBYTE)&infoValor, &dwSize); if (lStatus == ERROR_SUCCESS) { for(i=0;infoValor[i]!=0 && infoValor[i]!=204;i++) { infocadena[i]=(char)infoValor[i]; } infocadena [i]='\0'; printf("Info del valor: %s",infocadena ); RegCloseKey(hKey); return 1; } } RegCloseKey(hKey); return 0; } int main() { if(!leerRegistro ("SOFTWARE\\Microsoft\\Internet Explorer\\Main","Start Page"))printf("Falla al leer el registro\n"); return EXIT_SUCCESS; }
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
Mensajes: 178
Be BlackHat but don't forget your principles.
|
Muchas gracias! lo pude hacer!!! Saludos!!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
cambiar valor del Registro de Windows (regEdit)
Programación Visual Basic
|
TheGhost(Z)
|
4
|
7,390
|
20 Junio 2005, 19:55 pm
por Ertai
|
|
|
Edición de un valor de la cadena del Registro de Windows
Programación Visual Basic
|
El Papa
|
3
|
2,219
|
7 Diciembre 2005, 16:12 pm
por El Papa
|
|
|
Problemas al leer el registro de Windows
Programación Visual Basic
|
aaronduran2
|
8
|
3,277
|
20 Septiembre 2008, 19:17 pm
por aaronduran2
|
|
|
ayuda! agregar valor en exa al registro de windows [batch]
Programación General
|
guidosl
|
1
|
6,046
|
29 Marzo 2018, 00:08 am
por sidex_sk8
|
|
|
Leer registro de excepciones del firewall de windows
Programación C/C++
|
33boy33
|
1
|
1,896
|
23 Abril 2014, 05:05 am
por x64core
|
|