Показать сообщение отдельно

Подмена значения в реестре.
  #1  
Старый 08.09.2007, 23:43
idef
Новичок
Регистрация: 07.09.2007
Сообщений: 2
С нами: 9829145

Репутация: 0
По умолчанию Подмена значения в реестре.

Нужно подменить значение в реестре.Где-то читал, что значения перечисляются функцией NtEnumerateValueKey, но при подмене параметра Name никаких изменений не произошло(выводится старое значение).
Код:
static NTSTATUS WINAPI xNtEnumerateValueKey(
                HANDLE KeyHandle,
                ULONG Index,
                KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
                PVOID KeyValueInformation,
                ULONG KeyValueInformationLength,
                PULONG ResultLength
        )
{
WCHAR regstr[]    = L"NameValue";
WCHAR teststr[]  = L"Val02";
NTSTATUS ns;KEY_VALUE_FULL_INFORMATION *kvfi = NULL;
kvfi = (KEY_VALUE_FULL_INFORMATION*)KeyValueInformation;
ns=NtEnumerateValueKey(KeyHandle,Index,KeyValueInformationClass,KeyValueInformation,KeyValueInformationLength,ResultLength);
if(ns==STATUS_SUCCESS & kvfi->Type==REG_SZ)
{
if(RtlCompareMemory((PVOID)&kvfi->Name[0],(PVOID)&regstr[0],9)==9)
{
RtlCopyMemory((PVOID)&kvfi->Name[4],(PVOID)&teststr[0],4);
}
}
return ns;
}
Как правильно подменить значение?
 
Ответить с цитированием