Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: patilanz en 14 Diciembre 2014, 17:02 pm



Título: RegOpenKeyEx HKEY_LOCAL_MACHINE acceso denegado 5 (Solucionado)
Publicado por: patilanz en 14 Diciembre 2014, 17:02 pm
Hola tengo una aplicación que tiene que iniciar se con windows. Funciona perfectamente en windows 8.1 que es el ordenador donde la compilo de forma estática con visual studio 2013. Pero luego si la paso por usb a otros dos portátiles también con windows 8.1 64 bits recibo el error 5 al intentar:

Código
  1. HKEY key;
  2. int error = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", 0, KEY_SET_VALUE, &key);
  3. if (error== ERROR_SUCCESS){
  4. char msg[80];
  5. sprintf_s(msg, "RegOpenKey: %u", error);
  6. MessageBox(0, msg, "Error", MB_ICONERROR);
  7. return 0;
  8. }
En el ordenador de compilar tengo avg 2014 activado y no tengo problemas. En el primer portátil tengo windows defender desactivado y en el segundo activado pero esto no afecta. Por lo tanto no creo que es por el antivirus. La aplicación la ejecuto con permisos de asInvoker (/level='asInvoker') los defaults.

Si lo abro como administrador funciona.

Como lo soluciono ?

Saludos


Título: Re: RegOpenKeyEx HKEY_LOCAL_MACHINE acceso denegado 5
Publicado por: Danyfirex en 14 Diciembre 2014, 17:12 pm
Hola.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384232(v=vs.85).aspx

verifica que tengas derechos de administrador.


Saludos


Título: Re: RegOpenKeyEx HKEY_LOCAL_MACHINE acceso denegado 5
Publicado por: patilanz en 14 Diciembre 2014, 17:20 pm
Si lo hago con derechos de administrador funciona pero normalmente para currentVersion\Run no hace falta tenerlos.

El Registry Redirector ya lo conozco y me lo mueve a wow64 o algo así con permisos.


Título: Re: RegOpenKeyEx HKEY_LOCAL_MACHINE acceso denegado 5
Publicado por: Danyfirex en 14 Diciembre 2014, 17:37 pm
para CurrentVersion\\Run hace falta derechos de administrador.



Título: Re: RegOpenKeyEx HKEY_LOCAL_MACHINE acceso denegado 5
Publicado por: x64core en 14 Diciembre 2014, 17:45 pm
Si la función obtiene un handle entonces  el valor de retorno es ERROR_SUCCESS, en tu código escribes:
Código:
	if (error== ERROR_SUCCESS){
Además para escribir en HKEY_LOCAL_MACHINE se necesitará privilegios de administrador si la UAC está habilitado.
-> HKEY_CURRENT_USER No necesita privilegios, lo importante es el root en dónde se escribirá.


Título: Re: RegOpenKeyEx HKEY_LOCAL_MACHINE acceso denegado 5
Publicado por: patilanz en 15 Diciembre 2014, 07:58 am
Gracias que despiste  :o
Perdón por el tema estúpido. Solucionado.