SepCheckCreateLowBox
NTSTATUS __stdcall SepCheckCreateLowBox(PVOID PackageSid){
int IsParentOfChildAppContainer;
char v3;
void *ClientToken;
struct _SECURITY_SUBJECT_CONTEXT SubjectContext;
IsParentOfChildAppContainer = 0;
memset(&SubjectContext, 0, sizeof(SubjectContext));
v3 = 1;
SeCaptureSubjectContext(&SubjectContext);
ClientToken = SubjectContext.ClientToken;
if( SubjectContext.ClientToken )
{
if( SubjectContext.ImpersonationLevel < SecurityImpersonation )
{
v3 = 0;
goto LABEL_4;
}
}
else
{
ClientToken = SubjectContext.PrimaryToken;
}
IsParentOfChildAppContainer = *((_DWORD *)ClientToken + 50) & 0x2000;
LABEL_4:
if( !IsParentOfChildAppContainer && v3 && (*((_DWORD *)ClientToken + 50) & 0x4000) != 0 )
IsParentOfChildAppContainer = RtlIsParentOfChildAppContainer(*((VOID **)ClientToken + 98), PackageSid);
SeReleaseSubjectContext(&SubjectContext);
return IsParentOfChildAppContainer == 0 ? 0xC0000022 : 0;
}Referenced by:
NtCreateLowBoxToken