MiSelectSessionAttachProcess
_EPROCESS *__stdcall MiSelectSessionAttachProcess(_MM_SESSION_SPACE *SessionGlobal){
char *v1;
char *i;
char *v3;
if( *((_QWORD *)SessionGlobal + 85) && (*((_DWORD *)SessionGlobal + 1) & 2) == 0 )
{
v1 = (char *)SessionGlobal + 16;
for( i = (char *)*((_QWORD *)SessionGlobal + 2); i != v1; i = *(char **)i )
{
v3 = i - 1184;
if( (i[665] & 1) == 0
&& (*((_DWORD *)v3 + 281) & 0xC00u) >= 0xC00
&& (v3[1851] & 0x60) != 64
&& ObReferenceObjectSafeWithTag((INT64)(i - 1184), 1953261124i64) )
{
return(_EPROCESS *)(i - 1184);
}
}
}
return 0i64;
}Referenced by:
MiGetNextSession
MiLockAndSelectSessionAttachProcess
MiReferenceOwningSession
MmGetSessionById