MiCreateMemoryEventSD
INT64 __stdcall MiCreateMemoryEventSD(PSECURITY_DESCRIPTOR SecurityDescriptor){
int Acl;
int v3;
int v4;
int v5;
int v6;
UINT32 v7;
struct _ACL *v8;
ACL *v9;
Acl = RtlCreateSecurityDescriptor(SecurityDescriptor, 1ui64);
if( Acl >= 0 )
{
v3 = RtlLengthSid(SeAllRestrictedAppPackagesSid);
v4 = RtlLengthSid(SeAllAppPackagesSid) + v3;
v5 = RtlLengthSid(SeWorldSid) + v4;
v6 = RtlLengthSid(SeAliasAdminsSid) + v5;
v7 = v6 + RtlLengthSid(SeLocalSystemSid) + 68;
LODWORD(v8) = MiAllocatePool((struct _SLIST_ENTRY *)0x100);
v9 = v8;
if( v8 )
{
Acl = RtlCreateAcl(v8, v7, 2u);
if( Acl >= 0 )
{
Acl = RtlpAddKnownAce(v9, 2ui64, 0i64, 0x120001ui64, SeWorldSid, 0);
if( Acl >= 0 )
{
Acl = RtlpAddKnownAce(v9, 2ui64, 0i64, 0x1F0003ui64, SeAliasAdminsSid, 0);
if( Acl >= 0 )
{
Acl = RtlpAddKnownAce(v9, 2ui64, 0i64, 0x1F0003ui64, SeLocalSystemSid, 0);
if( Acl >= 0 )
{
Acl = RtlpAddKnownAce(v9, 2ui64, 0i64, 0x120001ui64, SeAllAppPackagesSid, 0);
if( Acl >= 0 )
{
Acl = RtlpAddKnownAce(v9, 2ui64, 0i64, 0x120001ui64, SeAllRestrictedAppPackagesSid, 0);
if( Acl >= 0 )
{
Acl = RtlSetDaclSecurityDescriptor(SecurityDescriptor, 1u, v9, 0);
if( Acl >= 0 )
{
v9 = 0i64;
Acl = 0;
}
}
}
}
}
}
}
if( v9 )
ExFreePoolWithTag(v9, 0);
}
}
return(unsigned int)Acl;
}Referenced by:
MiInitializeMemoryEvents