public override void Unmarshal(NdrBuffer buffer) { if (buffer == null) { throw new ArgumentNullException(nameof(buffer)); } this.LogonTime = buffer.ReadStruct <RpcFileTime>(); this.LogoffTime = buffer.ReadStruct <RpcFileTime>(); this.KickOffTime = buffer.ReadStruct <RpcFileTime>(); this.PwdLastChangeTime = buffer.ReadStruct <RpcFileTime>(); this.PwdCanChangeTime = buffer.ReadStruct <RpcFileTime>(); this.PwdMustChangeTime = buffer.ReadStruct <RpcFileTime>(); this.UserName = buffer.ReadStruct <RpcString>(); this.UserDisplayName = buffer.ReadStruct <RpcString>(); this.LogonScript = buffer.ReadStruct <RpcString>(); this.ProfilePath = buffer.ReadStruct <RpcString>(); this.HomeDirectory = buffer.ReadStruct <RpcString>(); this.HomeDrive = buffer.ReadStruct <RpcString>(); this.LogonCount = buffer.ReadInt16LittleEndian(); this.BadPasswordCount = buffer.ReadInt16LittleEndian(); this.UserId = buffer.ReadUInt32LittleEndian(); this.GroupId = buffer.ReadUInt32LittleEndian(); var groupCount = buffer.ReadInt32LittleEndian(); buffer.ReadDeferredStructArray <GroupMembership>(groupCount, v => this.GroupIds = v); this.UserFlags = (UserFlags)buffer.ReadInt32LittleEndian(); this.UserSessionKey = buffer.ReadMemory(16); this.ServerName = buffer.ReadStruct <RpcString>(); this.DomainName = buffer.ReadStruct <RpcString>(); buffer.ReadConformantStruct <RpcSid>(v => this.DomainId = v); this.Reserved1 = buffer.ReadFixedPrimitiveArray <int>(2).ToArray(); this.UserAccountControl = (UserAccountControlFlags)buffer.ReadInt32LittleEndian(); this.SubAuthStatus = buffer.ReadInt32LittleEndian(); this.LastSuccessfulILogon = buffer.ReadStruct <RpcFileTime>(); this.LastFailedILogon = buffer.ReadStruct <RpcFileTime>(); this.FailedILogonCount = buffer.ReadInt32LittleEndian(); this.Reserved3 = buffer.ReadInt32LittleEndian(); var extraSidsCount = buffer.ReadInt32LittleEndian(); buffer.ReadDeferredStructArray <RpcSidAttributes>(extraSidsCount, v => this.ExtraIds = v); buffer.ReadConformantStruct <RpcSid>(v => this.ResourceDomainId = v); var resourceGroupCount = buffer.ReadInt32LittleEndian(); buffer.ReadDeferredStructArray <GroupMembership>(resourceGroupCount, v => this.ResourceGroupIds = v); }
public void Unmarshal(NdrBuffer buffer) { if (buffer == null) { throw new ArgumentNullException(nameof(buffer)); } this.IdentifierAuthority = buffer.ReadMemory(6); }
public override void Unmarshal(ReadOnlyMemory <byte> bytes) { var stream = new NdrBuffer(bytes); Version = stream.ReadInt32LittleEndian(); EncryptionType = (EncryptionType)stream.ReadInt32LittleEndian(); SerializedData = stream.ReadMemory(stream.BytesAvailable); }
public override void Unmarshal(NdrBuffer buffer) { LogonTime = buffer.ReadStruct <RpcFileTime>(); LogoffTime = buffer.ReadStruct <RpcFileTime>(); KickOffTime = buffer.ReadStruct <RpcFileTime>(); PwdLastChangeTime = buffer.ReadStruct <RpcFileTime>(); PwdCanChangeTime = buffer.ReadStruct <RpcFileTime>(); PwdMustChangeTime = buffer.ReadStruct <RpcFileTime>(); UserName = buffer.ReadStruct <RpcString>(); UserDisplayName = buffer.ReadStruct <RpcString>(); LogonScript = buffer.ReadStruct <RpcString>(); ProfilePath = buffer.ReadStruct <RpcString>(); HomeDirectory = buffer.ReadStruct <RpcString>(); HomeDrive = buffer.ReadStruct <RpcString>(); LogonCount = buffer.ReadInt16LittleEndian(); BadPasswordCount = buffer.ReadInt16LittleEndian(); UserId = buffer.ReadInt32LittleEndian(); GroupId = buffer.ReadInt32LittleEndian(); var groupCount = buffer.ReadInt32LittleEndian(); buffer.ReadDeferredStructArray <GroupMembership>(groupCount, v => GroupIds = v); UserFlags = (UserFlags)buffer.ReadInt32LittleEndian(); UserSessionKey = buffer.ReadMemory(16); ServerName = buffer.ReadStruct <RpcString>(); DomainName = buffer.ReadStruct <RpcString>(); buffer.ReadConformantStruct <RpcSid>(v => DomainId = v); Reserved1 = buffer.ReadFixedPrimitiveArray <int>(2).ToArray(); UserAccountControl = (UserAccountControlFlags)buffer.ReadInt32LittleEndian(); SubAuthStatus = buffer.ReadInt32LittleEndian(); LastSuccessfulILogon = buffer.ReadStruct <RpcFileTime>(); LastFailedILogon = buffer.ReadStruct <RpcFileTime>(); FailedILogonCount = buffer.ReadInt32LittleEndian(); Reserved3 = buffer.ReadInt32LittleEndian(); var extraSidsCount = buffer.ReadInt32LittleEndian(); buffer.ReadDeferredStructArray <RpcSidAttributes>(extraSidsCount, v => ExtraIds = v); buffer.ReadConformantStruct <RpcSid>(v => ResourceDomainId = v); var resourceGroupCount = buffer.ReadInt32LittleEndian(); buffer.ReadDeferredStructArray <GroupMembership>(resourceGroupCount, v => ResourceGroupIds = v); }
private static (int length, ReadOnlyMemory <byte> value) ReadData(NdrBuffer buffer) { /* * data ::= * length (32 bits) * value (length bytes) */ var length = buffer.ReadInt32BigEndian(); var value = buffer.ReadMemory(length); return(length, value); }
private void ReadHeader(NdrBuffer buffer) { var headerLength = buffer.ReadInt16BigEndian(); int headerRead = 0; do { var tag = (Krb5CredentialCacheTag)buffer.ReadInt16BigEndian(); var length = buffer.ReadInt16BigEndian(); var value = buffer.ReadMemory(length); this.Header[tag] = value; headerRead += 4 + length; }while (headerRead < headerLength); }
public override void Unmarshal(ReadOnlyMemory <byte> bytes) { var stream = new NdrBuffer(bytes); this.Type = (ChecksumType)stream.ReadInt32LittleEndian(); this.SignaturePosition = stream.Offset; if (!this.Ignored) { this.Signature = SetSignatureValue(this.Type, size => stream.ReadFixedPrimitiveArray <byte>(size).ToArray()); this.Validator = CryptoService.CreateChecksum(this.Type, this.Signature, this.SignatureData); if (stream.BytesAvailable > 0) { this.RODCIdentifier = stream.ReadInt16LittleEndian(); } } else { this.Signature = stream.ReadMemory(stream.BytesAvailable).ToArray(); } }
public void Unmarshal(NdrBuffer buffer) { IdentifierAuthority = buffer.ReadMemory(6); }