MiGenerateSecureCookie
NTSTATUS __stdcall MiGenerateSecureCookie(){
struct _KPRCB *CurrentPrcb;
unsigned __int64 v1;
unsigned __int64 v2;
unsigned __int64 v3;
CurrentPrcb = KeGetCurrentPrcb();
v1 = CurrentPrcb->KeSystemCalls ^ CurrentPrcb->InterruptTime ^ KUSER_SHARED_DATA.SystemTime.High1Time ^ __rdtsc() ^ ((unsigned __int64)KUSER_SHARED_DATA.SystemTime.LowPart << 32);
v2 = (unsigned __int64)(unsigned int)ExGenRandom(ExGenRandomDomainKernel) << 32;
v3 = (v2 | (unsigned int)ExGenRandom(ExGenRandomDomainKernel)) ^ v1;
if( !v3 )
LODWORD(v3) = 1;
return v3;
}Referenced by:
MiInitializeVadSecuring