Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: someRandomCode en 2 Noviembre 2014, 22:48 pm



Título: [C/C++]No puedo leer MachineGuid (solucionado)
Publicado por: someRandomCode en 2 Noviembre 2014, 22:48 pm
Hola muchachos, saben que no me puedo dar cuenta por que me dice que no encuentra la llave, estoy llamandolo asi:
Código:
char * IDInstalacion() 
{
HKEY llave;
BYTE * retornar = NULL;
long resultado;
resultado = FuncionRegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Cryptography",0,KEY_QUERY_VALUE,&llave);
if (resultado != ERROR_SUCCESS) {
FuncionMessageBox(NULL,"Error al abrir la llave de registro","Pruebas",MB_OK);
}
DWORD largo = 0;
resultado = FuncionRegQueryValueEx(llave,TEXT("MachineGuid"),NULL,NULL,NULL,&largo);
retornar = (BYTE*)HeapAlloc(GetProcessHeap(),sizeof(TCHAR),largo+1);
resultado = FuncionRegQueryValueEx(llave,TEXT("MachineGuid"),NULL,NULL,retornar,&largo);
char codigo_de_error[512];
_ltoa_s(resultado,codigo_de_error,10);
if (resultado != ERROR_SUCCESS){
FuncionMessageBox(NULL,codigo_de_error,"Pruebas",MB_OK);
}
return (char*)retornar;
}

Llamo dos veces a RegQueryValueEx (si, la van a ver como FuncionRegQueryValueEx porque en realidad esta usando un puntero a funcion, la historia es laaaarga pero la resumo: me estoy peleando con otro programa que hace de "control de jefe") una para sacar el largo del valor, y la otra para sacar el valor en si..

Aparte me gustaria que me recomendaran si es mejor usar algun otro Alloc (ajustandose siempre a la WinAPI)

PD: feos los casteos pero bueno jeje
Saludos!

EDIT typo!

EDIT2: Dios, siempre me como el OSOO del WOW64, le agregue la clave de SAM KEY_WOW64_64KEY para poderlo trabajar con todo (menos Windows 2000)