Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: patilanz en 7 Junio 2014, 23:31 pm



Título: RegSetValueEx devuelve 6 y no hay resultado
Publicado por: patilanz en 7 Junio 2014, 23:31 pm
Hola estoy agregar un registro en windows pero no funciona. Elegi el de run solo por probar:

Código
  1. int main(){
  2. HKEY clave;
  3. RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_ALL_ACCESS,&clave);
  4. unsigned char data[255]="La data";
  5. RegSetValueEx(clave,"valor",0,REG_SZ,data,sizeof(data));
  6. RegCloseKey(clave);
  7. getchar();
  8. }

Me pueden ayudar?

Saludos


Título: Re: RegSetValueEx devuelve 6 y no hay resultado
Publicado por: Eternal Idol en 7 Junio 2014, 23:55 pm
ERROR_INVALID_HANDLE6 (0x6)
The handle is invalid.

¿Que devuelve RegOpenKeyEx? Tu programa deberia comprobar eso antes de intentar llamar a RegSetValueEx.

ERROR_ACCESS_DENIED5 (0x5)
Access is denied.

Ejecutalo como administrador si es el caso.


Título: Re: RegSetValueEx devuelve 6 y no hay resultado
Publicado por: Drewermerc en 8 Junio 2014, 06:49 am
hola.
bueno pues yo para crear key's en el reguistro uso RegCreateKye la cualalmacceno en una variable int para despues hacer la comprovacion con un if endonde hay pongo RegSetValueEx
y bueno si no me equivoco en RegSetValueEx donde pones dataa debes psar la ruta del programa que quieres agrgar peroen constante byte algo asi (BYTE*)data.

bueno si me equivoque en algo corriganme porfavor.
bueno espero que te ayude con tu problema.
Saludos.
Drewermerc.


Título: Re: RegSetValueEx devuelve 6 y no hay resultado
Publicado por: Eternal Idol en 8 Junio 2014, 08:33 am
La clave ya existe asi que no es necesario usar RegCreateKey/Ex y BYTE es un typedef de unsigned char asi que no habria ninguna diferencia.

El codigo original funciona con los permisos necesarios ...


Título: Re: RegSetValueEx devuelve 6 y no hay resultado
Publicado por: patilanz en 8 Junio 2014, 11:54 am
Si era esto no tenia permisos de administrador. Siempre que quiero agregar mi programa para que se inicie con windows tengo que tener permisos de administrador?
Y otra pregunta. Yo abro la clave

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
pero me lo guarda en

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run

Lo mismo me pasa al leer.

Gracias


Título: Re: RegSetValueEx devuelve 6 y no hay resultado
Publicado por: Eternal Idol en 8 Junio 2014, 12:40 pm
Si.

Eso pasa al usar un programa de 32 bits en un S.O. de 64 bits.

Registry Redirector (http://msdn.microsoft.com/en-gb/library/aa384232%28VS.85%29.aspx).


Título: Re: RegSetValueEx devuelve 6 y no hay resultado
Publicado por: Drewermerc en 8 Junio 2014, 17:02 pm
hola Eternal Idol.
Bueno gracias por el dato.
Y  bueno una consulta mas yo uso para poner el numero de caracteres srtlen y veo que tambien se puede usar sizeof hay alguna diferencia o los dos funcionan igual.

Saludos.
Drewermerc.


Título: Re: RegSetValueEx devuelve 6 y no hay resultado
Publicado por: Eternal Idol en 8 Junio 2014, 17:06 pm
Drewermerc no funcionan igual, busca la referencia de ambas y escribi codigo que las use para comprender la diferencia.


Título: Re: RegSetValueEx devuelve 6 y no hay resultado
Publicado por: patilanz en 8 Junio 2014, 22:23 pm
Hola el redictor creo que tambien es para archivos porque copie un archivo exe en system32 y me apareció en syswow64. Ya me entere por que pasa gracias por link pero si quiero poner lo justo en system32 que hago?

Saludos


Título: Re: RegSetValueEx devuelve 6 y no hay resultado
Publicado por: Eternal Idol en 9 Junio 2014, 00:17 am
File System Redirector (http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs.85).aspx).