NtDisableLastKnownGood
INT64 __fastcall NtDisableLastKnownGood(){
int CachedContextBaseKey;
PVOID Data;
UINT64 DataSize;
struct _UNICODE_STRING ValueName;
int v5;
HANDLE KeyHandle;
PVOID BaseHandle;
v5 = 0;
*(_DWORD *)(&ValueName.MaximumLength + 1) = 0;
BaseHandle = 0i64;
KeyHandle = 0i64;
if( *((_BYTE *)KeGetCurrentThread() + 562) == 1 )
{
if( SeSinglePrivilegeCheck(*(_QWORD *)&SeTcbPrivilege, 1) )
{
CachedContextBaseKey = PnpCtxGetCachedContextBaseKey(PiPnpRtlCtx, 4, (__int64 *)&BaseHandle);
if( CachedContextBaseKey >= 0 )
{
LODWORD(Data) = 0;
ValueName.Buffer = (wchar_t *)L"Control\\Pnp";
*(_DWORD *)&ValueName.Length = 1572886;
CachedContextBaseKey = IopCreateRegistryKeyEx(
&KeyHandle,
BaseHandle,
&ValueName,
0xF003Fui64,
(UINT64)Data,
0i64);
if( CachedContextBaseKey >= 0 )
{
ValueName.Buffer = (wchar_t *)L"DisableLKG";
LODWORD(DataSize) = 4;
v5 = 1;
*(_DWORD *)&ValueName.Length = 1441812;
CachedContextBaseKey = ZwSetValueKey(KeyHandle, &ValueName, 0i64, 4ui64, &v5, DataSize);
}
if( KeyHandle )
ZwClose(KeyHandle);
}
}
else
{
return(unsigned int)-1073741727;
}
}
else
{
return(unsigned int)-1073741790;
}
return(unsigned int)CachedContextBaseKey;
}Referenced by:
No references.