public ObjectIDBufferType1(byte[] buffer) { ObjectId = LittleEndianConverter.ToGuid(buffer, 0); BirthVolumeId = LittleEndianConverter.ToGuid(buffer, 16); BirthObjectId = LittleEndianConverter.ToGuid(buffer, 32); DomainId = LittleEndianConverter.ToGuid(buffer, 48); }
private Guid GetPropertySetGuid(int indexHint) { if (indexHint == 0) { return(Guid.Empty); } else if (indexHint == 1) { return(PropertySetGuid.PS_MAPI); } else if (indexHint == 2) { return(PropertySetGuid.PS_PUBLIC_STRINGS); } else { int propertySetGuidIndex = indexHint - 3; if (PropertySetGuidStreamCache == null) { PSTNode node = m_file.GetNode((uint)InternalNodeName.NID_NAME_TO_ID_MAP); PropertySetGuidStreamCache = node.PC.GetBytesProperty(PropertyID.PidTagNameidStreamGuid); } int offset = propertySetGuidIndex * 16; Guid guid = LittleEndianConverter.ToGuid(PropertySetGuidStreamCache, offset); return(guid); } }
public GuidPartitionEntry(byte[] buffer, int offset) { PartitionTypeGuid = LittleEndianConverter.ToGuid(buffer, offset + 0); PartitionGuid = LittleEndianConverter.ToGuid(buffer, offset + 16); FirstLBA = LittleEndianConverter.ToUInt64(buffer, offset + 32); LastLBA = LittleEndianConverter.ToUInt64(buffer, offset + 40); AttributeFlags = LittleEndianConverter.ToUInt64(buffer, offset + 48); PartitionName = UnicodeEncoding.Unicode.GetString(ByteReader.ReadBytes(buffer, offset + 56, 72)).TrimEnd('\0'); }
public ConversationIndexHeader(byte[] buffer) { if (buffer[0] != 0x01) { throw new InvalidPropertyException("Invalid Conversation Index Header"); } // we want the most significant byte from current DateTime byte[] temp = BigEndianConverter.GetBytes(DateTime.Now.ToFileTimeUtc()); temp[6] = 0; temp[7] = 0; Array.Copy(buffer, 1, temp, 1, 5); FileTime = DateTime.FromFileTimeUtc(BigEndianConverter.ToInt64(temp, 0)); Guid = LittleEndianConverter.ToGuid(buffer, 6); }
public NegotiateRequest(byte[] buffer, int offset) : base(buffer, offset) { StructureSize = LittleEndianConverter.ToUInt16(buffer, offset + SMB2Header.Length + 0); DialectCount = LittleEndianConverter.ToUInt16(buffer, offset + SMB2Header.Length + 2); SecurityMode = (SecurityMode)LittleEndianConverter.ToUInt16(buffer, offset + SMB2Header.Length + 4); Reserved = LittleEndianConverter.ToUInt16(buffer, offset + SMB2Header.Length + 6); Capabilities = (ServerCapabilities)LittleEndianConverter.ToUInt32(buffer, offset + SMB2Header.Length + 8); ClientGuid = LittleEndianConverter.ToGuid(buffer, offset + SMB2Header.Length + 12); ClientStartTime = DateTime.FromFileTimeUtc(LittleEndianConverter.ToInt64(buffer, offset + SMB2Header.Length + 28)); for (int index = 0; index < DialectCount; index++) { SMB2Dialect dialect = (SMB2Dialect)LittleEndianConverter.ToUInt16(buffer, offset + SMB2Header.Length + 36 + index * 2); Dialects.Add(dialect); } }
public GuidPartitionTableHeader(byte[] buffer) { Signature = ByteReader.ReadAnsiString(buffer, 0, 8); Revision = LittleEndianConverter.ToUInt32(buffer, 8); HeaderSize = LittleEndianConverter.ToUInt32(buffer, 12); CRC32 = LittleEndianConverter.ToUInt32(buffer, 16); CurrentLBA = LittleEndianConverter.ToUInt64(buffer, 24); BackupLBA = LittleEndianConverter.ToUInt64(buffer, 32); FirstUsableLBA = LittleEndianConverter.ToUInt64(buffer, 40); LastUsableLBA = LittleEndianConverter.ToUInt64(buffer, 48); DiskGuid = LittleEndianConverter.ToGuid(buffer, 56); PartitionEntriesLBA = LittleEndianConverter.ToUInt64(buffer, 72); NumberOfPartitionEntries = LittleEndianConverter.ToUInt32(buffer, 80); SizeOfPartitionEntry = LittleEndianConverter.ToUInt32(buffer, 84); PartitionArrayCRC32 = LittleEndianConverter.ToUInt32(buffer, 88); }
public NegotiateResponseExtended(byte[] buffer, int offset) : base(buffer, offset, false) { DialectIndex = LittleEndianConverter.ToUInt16(this.SMBParameters, 0); SecurityMode = (SecurityMode)ByteReader.ReadByte(this.SMBParameters, 2); MaxMpxCount = LittleEndianConverter.ToUInt16(this.SMBParameters, 3); MaxNumberVcs = LittleEndianConverter.ToUInt16(this.SMBParameters, 5); MaxBufferSize = LittleEndianConverter.ToUInt32(this.SMBParameters, 7); MaxRawSize = LittleEndianConverter.ToUInt32(this.SMBParameters, 11); SessionKey = LittleEndianConverter.ToUInt32(this.SMBParameters, 15); Capabilities = (Capabilities)LittleEndianConverter.ToUInt32(this.SMBParameters, 19); SystemTime = FileTimeHelper.ReadFileTime(this.SMBParameters, 23); ServerTimeZone = LittleEndianConverter.ToInt16(this.SMBParameters, 31); ChallengeLength = ByteReader.ReadByte(this.SMBParameters, 33); ServerGuid = LittleEndianConverter.ToGuid(this.SMBData, 0); SecurityBlob = ByteReader.ReadBytes(this.SMBData, 16, this.SMBData.Length - 16); }
public NegotiateResponse(byte[] buffer, int offset) : base(buffer, offset) { StructureSize = LittleEndianConverter.ToUInt16(buffer, offset + SMB2Header.Length + 0); SecurityMode = (SecurityMode)LittleEndianConverter.ToUInt16(buffer, offset + SMB2Header.Length + 2); DialectRevision = (SMB2Dialect)LittleEndianConverter.ToUInt16(buffer, offset + SMB2Header.Length + 4); NegotiateContextCount = LittleEndianConverter.ToUInt16(buffer, offset + SMB2Header.Length + 6); ServerGuid = LittleEndianConverter.ToGuid(buffer, offset + SMB2Header.Length + 8); Capabilities = (Capabilities)LittleEndianConverter.ToUInt32(buffer, offset + SMB2Header.Length + 24); MaxTransactSize = LittleEndianConverter.ToUInt32(buffer, offset + SMB2Header.Length + 28); MaxReadSize = LittleEndianConverter.ToUInt32(buffer, offset + SMB2Header.Length + 32); MaxWriteSize = LittleEndianConverter.ToUInt32(buffer, offset + SMB2Header.Length + 36); SystemTime = DateTime.FromFileTimeUtc(LittleEndianConverter.ToInt64(buffer, offset + SMB2Header.Length + 40)); ServerStartTime = DateTime.FromFileTimeUtc(LittleEndianConverter.ToInt64(buffer, offset + SMB2Header.Length + 48)); SecurityBufferOffset = LittleEndianConverter.ToUInt16(buffer, offset + SMB2Header.Length + 56); SecurityBufferLength = LittleEndianConverter.ToUInt16(buffer, offset + SMB2Header.Length + 58); NegotiateContextOffset = LittleEndianConverter.ToUInt32(buffer, offset + SMB2Header.Length + 60); SecurityBuffer = ByteReader.ReadBytes(buffer, offset + SecurityBufferOffset, SecurityBufferLength); NegotiateContextList = NegotiateContext.ReadNegotiateContextList(buffer, (int)NegotiateContextOffset, NegotiateContextCount); }
private int GetPropertySetGuidIndex(Guid propertySetGuid) { PSTNode node = m_file.GetNode((uint)InternalNodeName.NID_NAME_TO_ID_MAP); byte[] buffer = node.PC.GetBytesProperty(PropertyID.PidTagNameidStreamGuid); if (buffer.Length % 16 > 0) { throw new InvalidPropertyException("Invalid NameidStreamGuid"); } for (int index = 0; index < buffer.Length; index += 16) { Guid guid = LittleEndianConverter.ToGuid(buffer, index); if (guid == propertySetGuid) { return(index / 16); } } return(-1); }
public SyntaxID(byte[] buffer, int offset) { InterfaceUUID = LittleEndianConverter.ToGuid(buffer, offset + 0); InterfaceVersion = LittleEndianConverter.ToUInt32(buffer, offset + 16); }
public FileFsObjectIdInformation(byte[] buffer, int offset) { LittleEndianConverter.ToGuid(buffer, offset + 0); ExtendedInfo = ByteReader.ReadBytes(buffer, offset + 16, 48); }