SepTokenIsOwner
UINT8 __stdcall SepTokenIsOwner(VOID *EffectiveToken, VOID *SecurityDescriptor, UINT8 TokenLocked){
char v3;
__int64 v5;
char *v6;
INT64 *v7;
if( *((__int16 *)SecurityDescriptor + 1) >= 0 )
{
v6 = (char *)*((_QWORD *)SecurityDescriptor + 1);
}
else
{
v5 = *((unsigned int *)SecurityDescriptor + 1);
if( (_DWORD)v5 )
v6 = (char *)SecurityDescriptor + v5;
else
v6 = 0i64;
}
if( v3 && v6 && RtlEqualSid(SeAliasAdminsSid, v6) )
return 0;
v7 = RtlSidHashLookup((INT64)EffectiveToken + 232, (UINT64 *)v6);
if( !v7 || (v7 != *((INT64 **)EffectiveToken + 30) || (v7[1] & 0x10) != 0) && (v7[1] & 4) == 0 )
return 0;
if( *((_DWORD *)EffectiveToken + 32) )
return SepSidInToken(EffectiveToken, 0i64, v6, 0, 1u, 0);
return 1;
}Referenced by:
SeAccessCheckByTypeWithAdminlessChecks
SeComputeCreatorDeniedRights
SepAccessCheckAndAuditAlarmWithAdminlessChecks
SepCommonAccessCheckExWithAdminlessChecks