И в чем проблема? http://www.osronline.com/ddkx/kmarch/k111_4omq.htm http://www.osronline.com/ddkx/kmarch/k111_55pu.htm
а как определить какой текущий? я пытался использовать ключ Users\.DEFAULT, но данные в HKEY_CURRENT_USER не появляются
Зависит от того, где именно и в каком контексте тебе это нужно. Читай документацию уже, всё написано в MSDN, ссылку выше давал. Документация первична, а не форум, когда же дойдёт это до вас.
Код (Text): .data CCOUNTED_UNICODE_STRING "\\Registry\\User\\.DEFAULT\\Software\\Mkkm", g_usUserKeyName, 4 CCOUNTED_UNICODE_STRING "KeyData", KeyDataValueName, 4 CCOUNTED_UNICODE_STRING "\\Registry\\User\\.DEFAULT\\Software\\Mkkm", g_usUserKeyName, 4 CCOUNTED_UNICODE_STRING "KeyData", KeyDataValueName, 4 .code QueryValueKey proc local oa:OBJECT_ATTRIBUTES local hKey:HANDLE LOCAL ppi:PKEY_VALUE_PARTIAL_INFORMATION lea ecx, oa InitializeObjectAttributes ecx, offset g_usUserKeyName, OBJ_CASE_INSENSITIVE, NULL, NULL invoke ZwOpenKey, addr hKey, KEY_QUERY_VALUE, ecx invoke ZwQueryValueKey, hKey, addr KeyDataValueName, \ KeyValuePartialInformation, NULL, 0, addr cb .if cb != 0 invoke ExAllocatePool, PagedPool, cb .if eax != NULL mov ppi, eax invoke ZwQueryValueKey, hKey, addr KeyDataValueName, \ KeyValuePartialInformation, ppi, cb, addr cb mov eax, ppi mov zlpRegScanCode, eax sub cb, 12 .endif .endif invoke ZwClose, hKey ret QueryValueKey endp