SeAuditBootConfiguration
void __fastcall SeAuditBootConfiguration(__int64 a1){
_QWORD *PrimaryToken;
void *ClientToken;
WCHAR v4;
unsigned __int16 Length;
ULONG_PTR v6;
ULONG_PTR v7;
ULONG_PTR v8;
ULONG_PTR v9;
ULONG_PTR v10;
WCHAR v11;
__int16 v12;
unsigned __int16 v13;
ULONG_PTR v14;
struct _UNICODE_STRING DestinationString;
struct _UNICODE_STRING v16;
struct _SECURITY_SUBJECT_CONTEXT SubjectContext;
_SE_ADT_PARAMETER_ARRAY Src;
SubjectContext.ImpersonationLevel = 0x80000000;
memset(&SubjectContext.ImpersonationLevel + 1, 0, 20);
SubjectContext.ClientToken = 0i64;
memset((INT64)&Src, 0i64);
Src.CategoryId = 6;
DestinationString = 0i64;
*(_DWORD *)&Src.FlatSubCategoryId = 524432;
v16 = 0i64;
Src.AuditId = 4826;
SeCaptureSubjectContext(&SubjectContext);
PrimaryToken = SubjectContext.PrimaryToken;
ClientToken = SubjectContext.PrimaryToken;
Src.Parameters[0].Type = SeAdtParmTypeSid;
if( SubjectContext.ClientToken )
ClientToken = SubjectContext.ClientToken;
Src.Parameters[1].Type = SeAdtParmTypeString;
if( SubjectContext.ClientToken )
PrimaryToken = SubjectContext.ClientToken;
Src.Parameters[1].Length = 32;
Src.Parameters[2].Type = SeAdtParmTypeLogonId;
Src.Parameters[2].Length = 8;
Src.Parameters[0].Address = (PVOID)**((_QWORD **)ClientToken + 19);
Src.Parameters[0].Length = 4 * *((unsigned __int8 *)Src.Parameters[0].Address + 1) + 8;
Src.Parameters[1].Address = &SeSubsystemName;
Src.Parameters[2].Data[0] = PrimaryToken[3];
if( (int)BcdUtilGetBootOptionString(a1, 0x12000030ui64) >= 0 && (Length = DestinationString.Length) != 0 )
{
if( DestinationString.Length == DestinationString.MaximumLength )
{
Length = DestinationString.Length - 2;
DestinationString.Length -= 2;
}
}
else
{
RtlInitUnicodeString(&DestinationString, L"-", v4);
Length = DestinationString.Length;
}
Src.Parameters[3].Type = SeAdtParmTypeString;
Src.Parameters[3].Length = Length + 16;
Src.Parameters[3].Address = &DestinationString;
BcdUtilGetBootOptionBoolean(a1, 0x16000040ui64);
Src.Parameters[4].Length = 4;
Src.Parameters[4].Type = SeAdtParmTypeMessage;
Src.Parameters[4].Data[0] = 1843i64;
BcdUtilGetBootOptionInteger(a1, 0x15000047ui64);
Src.Parameters[5].Type = SeAdtParmTypeMessage;
Src.Parameters[5].Length = 4;
Src.Parameters[5].Data[0] = 1846i64;
BcdUtilGetBootOptionBoolean(a1, 0x26000141ui64);
Src.Parameters[6].Type = SeAdtParmTypeMessage;
Src.Parameters[6].Length = 4;
Src.Parameters[6].Data[0] = v6;
BcdUtilGetBootOptionBoolean(a1, 0x260000A0ui64);
Src.Parameters[7].Type = SeAdtParmTypeMessage;
Src.Parameters[7].Length = 4;
Src.Parameters[7].Data[0] = v7;
BcdUtilGetBootOptionInteger(a1, 0x25000142ui64);
Src.Parameters[8].Type = SeAdtParmTypeMessage;
Src.Parameters[8].Length = 4;
Src.Parameters[8].Data[0] = 1848i64;
BcdUtilGetBootOptionBoolean(a1, 0x16000049ui64);
Src.Parameters[9].Type = SeAdtParmTypeMessage;
Src.Parameters[9].Length = 4;
Src.Parameters[9].Data[0] = v8;
BcdUtilGetBootOptionBoolean(a1, 0x1600007Eui64);
Src.Parameters[10].Type = SeAdtParmTypeMessage;
Src.Parameters[10].Length = 4;
Src.Parameters[10].Data[0] = v9;
BcdUtilGetBootOptionBoolean(a1, 0x16000048ui64);
Src.Parameters[11].Type = SeAdtParmTypeMessage;
Src.Parameters[11].Length = 4;
Src.Parameters[11].Data[0] = v10;
if( (int)BcdUtilGetBootOptionString(a1, 0x22000117ui64) >= 0 && (v13 = v16.Length) != 0 )
{
if( v16.Length == v16.MaximumLength )
DestinationString.Length = v12 - 2;
}
else
{
RtlInitUnicodeString(&v16, L"-", v11);
v13 = v16.Length;
}
Src.Parameters[12].Type = SeAdtParmTypeString;
Src.Parameters[12].Length = v13 + 16;
Src.Parameters[12].Address = &v16;
BcdUtilGetBootOptionInteger(a1, 0x250000F0ui64);
Src.Parameters[13].Type = SeAdtParmTypeMessage;
Src.Parameters[13].Length = 4;
Src.Parameters[13].Data[0] = 1848i64;
BcdUtilGetBootOptionBoolean(a1, 0x260000F2ui64);
Src.Parameters[14].Type = SeAdtParmTypeMessage;
Src.Parameters[14].Length = 4;
Src.ParameterCount = 15;
Src.Parameters[14].Data[0] = v14;
SepAdtLogAuditRecord(&Src);
SeReleaseSubjectContext(&SubjectContext);
}Referenced by:
IoInitSystemPreDrivers