Coverage for /private/tmp/im/impacket/impacket/smb3structs.py : 97%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# SECUREAUTH LABS. Copyright 2018 SecureAuth Corporation. All rights reserved. # # This software is provided under under a slightly modified version # of the Apache Software License. See the accompanying LICENSE file # for more information. # # Author: Alberto Solino (@agsolino) # # Description: # SMB 2 and 3 Protocol Structures and constants [MS-SMB2] #
# Constants
# SMB Packet
# SMB Commands
# SMB Flags
# SMB Error SymLink Flags
# SMB2_NEGOTIATE # Security Modes
# Capabilities
# Dialects
# SMB2_SESSION_SETUP # Flags
# SMB2_TREE_CONNECT # Types
# Share Flags
# Capabilities
# SMB_CREATE # Oplocks
# Impersonation Level
# File Attributes
# Share Access
# Create Disposition
# Create Options
# File Access Mask / Desired Access
# Directory Access Mask
# Create Contexts
# Flags
# CreateAction
# SMB2_CREATE_REQUEST_LEASE states
# SMB2_CREATE_REQUEST_LEASE_V2 Flags
# SMB2_CREATE_DURABLE_HANDLE_REQUEST_V2 Flags
# SMB2_CLOSE # Flags
# SMB2_READ # Channel
# SMB2_WRITE # Flags
# Lease Break Notification
# SMB_LOCK # Flags
# SMB IOCTL # Control Codes
# Flags
# SRV_READ_HASH # Type
# Version
# Retrieval Type
# NETWORK_INTERFACE_INFO # Capabilities
# SMB2_QUERY_DIRECTORIES # Information Class
# Flags
# SMB2_CHANGE_NOTIFY # Flags
# Filters
# FILE_NOTIFY_INFORMATION # Actions
# SMB2_QUERY_INFO # InfoTypes
# File Information Classes
# File System Information Classes
# Additional information
# Flags
# TRANSFORM_HEADER
# STRUCtures # Represents a SMB2/3 Packet # Pad to 8 bytes and put the offset of another SMBPacket raise Exception('Implement This!')
('ProtocolID','"\xfeSMB'), ('StructureSize','<H=64'), ('CreditCharge','<H=0'), ('Status','<L=0'), ('Command','<H=0'), ('CreditRequestResponse','<H=0'), ('Flags','<L=0'), ('NextCommand','<L=0'), ('MessageID','<Q=0'), ('AsyncID','<Q=0'), ('SessionID','<Q=0'), ('Signature','16s=""'), ('Data',':=""'), )
('ProtocolID','"\xfeSMB'), ('StructureSize','<H=64'), ('CreditCharge','<H=0'), ('ChannelSequence','<H=0'), ('Reserved','<H=0'), ('Command','<H=0'), ('CreditRequestResponse','<H=0'), ('Flags','<L=0'), ('NextCommand','<L=0'), ('MessageID','<Q=0'), ('AsyncID','<Q=0'), ('SessionID','<Q=0'), ('Signature','16s=""'), ('Data',':=""'), )
('ProtocolID','"\xfeSMB'), ('StructureSize','<H=64'), ('CreditCharge','<H=0'), ('Status','<L=0'), ('Command','<H=0'), ('CreditRequestResponse','<H=0'), ('Flags','<L=0'), ('NextCommand','<L=0'), ('MessageID','<Q=0'), ('Reserved','<L=0'), ('TreeID','<L=0'), ('SessionID','<Q=0'), ('Signature','16s=""'), ('Data',':=""'), )
('ProtocolID','"\xfeSMB'), ('StructureSize','<H=64'), ('CreditCharge','<H=0'), ('ChannelSequence','<H=0'), ('Reserved','<H=0'), ('Command','<H=0'), ('CreditRequestResponse','<H=0'), ('Flags','<L=0'), ('NextCommand','<L=0'), ('MessageID','<Q=0'), ('Reserved','<L=0'), ('TreeID','<L=0'), ('SessionID','<Q=0'), ('Signature','16s=""'), ('Data',':=""'), )
('StructureSize','<H=9'), ('Reserved','<H=0'), ('ByteCount','<L=0'), ('_ErrorData','_-ErrorData','self["ByteCount"]'), ('ErrorData','"\xff'), )
('SymLinkLength','<L=0'), ('SymLinkErrorTag','<L=0'), ('ReparseTag','<L=0'), ('ReparseDataLenght','<H=0'), ('UnparsedPathLength','<H=0'), ('SubstituteNameOffset','<H=0'), ('SubstituteNameLength','<H=0'), ('PrintNameOffset','<H=0'), ('PrintNameLength','<H=0'), ('Flags','<L=0'), ('PathBuffer',':'), )
# SMB2_NEGOTIATE ('StructureSize','<H=36'), ('DialectCount','<H=0'), ('SecurityMode','<H=0'), ('Reserved','<H=0'), ('Capabilities','<L=0'), ('ClientGuid','16s=""'), ('ClientStartTime','<Q=0'), ('Dialects','*<H'), )
('StructureSize','<H=65'), ('SecurityMode','<H=0'), ('DialectRevision','<H=0'), ('Reserved','<H=0'), ('ServerGuid','16s=""'), ('Capabilities','<L=0'), ('MaxTransactSize','<L=0'), ('MaxReadSize','<L=0'), ('MaxWriteSize','<L=0'), ('SystemTime','<Q=0'), ('ServerStartTime','<Q=0'), ('SecurityBufferOffset','<H=0'), ('SecurityBufferLength','<H=0'), ('Reserved2','<L=0'), ('_AlignPad','_-AlignPad','self["SecurityBufferOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["SecurityBufferLength"]'), ('Buffer',':'), )
# SMB2_SESSION_SETUP ('StructureSize','<H=25'), ('Flags','<B=0'), ('SecurityMode','<B=0'), ('Capabilities','<L=0'), ('Channel','<L=0'), ('SecurityBufferOffset','<H=(self.SIZE + 64 + len(self["AlignPad"]))'), ('SecurityBufferLength','<H=0'), ('PreviousSessionId','<Q=0'), ('_AlignPad','_-AlignPad','self["SecurityBufferOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["SecurityBufferLength"]'), ('Buffer',':'), )
#self['AlignPad'] = '\x00' * ((8 - ((24 + SMB2_PACKET_SIZE) & 7)) & 7) #self['SecurityBufferOffset'] = 24 + SMB2_PACKET_SIZE +len(self['AlignPad']) #self['SecurityBufferLength'] += len(self['AlignPad'])
('StructureSize','<H=9'), ('SessionFlags','<H=0'), ('SecurityBufferOffset','<H=0'), ('SecurityBufferLength','<H=0'), ('_AlignPad','_-AlignPad','self["SecurityBufferOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["SecurityBufferLength"]'), ('Buffer',':'), )
# SMB2_LOGOFF ('StructureSize','<H=4'), ('Reserved','<H=0'), )
('StructureSize','<H=4'), ('Reserved','<H=0'), )
# SMB2_TREE_CONNECT ('StructureSize','<H=9'), ('Reserved','<H=0'), ('PathOffset','<H=(self.SIZE + 64 + len(self["AlignPad"]))'), ('PathLength','<H=0'), ('_AlignPad','_-AlignPad','self["PathOffset"] - (64 + self.SIZE - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["PathLength"]'), ('Buffer',':'), )
('StructureSize','<H=16'), ('ShareType','<B=0'), ('Reserved','<B=0'), ('ShareFlags','<L=0'), ('Capabilities','<L=0'), ('MaximalAccess','<L=0'), )
# SMB2_TREE_DISCONNECT ('StructureSize','<H=4'), ('Reserved','<H=0'), )
('StructureSize','<H=4'), ('Reserved','<H=0'), )
# SMB2_CREATE ('StructureSize','<H=57'), ('SecurityFlags','<B=0'), ('RequestedOplockLevel','<B=0'), ('ImpersonationLevel','<L=0'), ('SmbCreateFlags','<Q=0'), ('Reserved','<Q=0'), ('DesiredAccess','<L=0'), ('FileAttributes','<L=0'), ('ShareAccess','<L=0'), ('CreateDisposition','<L=0'), ('CreateOptions','<L=0'), ('NameOffset','<H=(self.SIZE + 64 + len(self["AlignPad"]))'), ('NameLength','<H=0'), ('CreateContextsOffset','<L=0'), ('CreateContextsLength','<L=0'), ('_AlignPad','_-AlignPad','self["NameOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["CreateContextsLength"]+self["NameLength"]'), ('Buffer',':'), )
('Next','<L=0'), ('NameOffset','<H=0'), ('NameLength','<H=0'), ('Reserved','<H=0'), ('DataOffset','<H=0'), ('DataLength','<L=0'), ('_Buffer','_-Buffer','self["DataLength"]+self["NameLength"]'), ('Buffer',':'), )
('Persistent','<Q=0'), ('Volatile','<Q=0'), )
('StructureSize','<H=89'), ('OplockLevel','<B=0'), ('Flags','<B=0'), ('CreateAction','<L=0'), ('CreationTime','<Q=0'), ('LastAccessTime','<Q=0'), ('LastWriteTime','<Q=0'), ('ChangeTime','<Q=0'), ('AllocationSize','<Q=0'), ('EndOfFile','<Q=0'), ('FileAttributes','<L=0'), ('Reserved2','<L=0'), ('FileID',':',SMB2_FILEID), ('CreateContextsOffset','<L=0'), ('CreateContextsLength','<L=0'), ('_AlignPad','_-AlignPad','self["CreateContextsOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["CreateContextsLength"]'), ('Buffer',':'), )
('NextEntryOffset','<L=0'), ('Flags','<B=0'), ('EaNameLength','<B=0'), ('EaValueLength','<H=0'), ('_EaName','_-EaName','self["EaNameLength"]'), ('EaName',':'), ('_EaValue','_-EaValue','self["EaValue"]'), ('EaValue',':'), )
('Data',':',SMB2_FILEID), )
('DurableRequest','16s=""'), )
('Reserved','<Q=0'), )
('Timestamp','<Q=0'), )
('QueryStatus','<L=0'), ('MaximalAccess','<L=0'), )
('AllocationSize','<Q=0'), )
('AllocationSize','<Q=0'), )
('LeaseKey','16s=""'), ('LeaseState','<L=0'), ('LeaseFlags','<L=0'), ('LeaseDuration','<Q=0'), )
('LeaseKey','16s=""'), ('LeaseState','<L=0'), ('Flags','<L=0'), ('LeaseDuration','<Q=0'), ('ParentLeaseKey','16s=""'), ('Epoch','<H=0'), ('Reserved','<H=0'), )
('Timeout','<L=0'), ('Flags','<L=0'), ('Reserved','8s=""'), ('CreateGuid','16s=""'), )
('Timeout','<L=0'), ('Flags','<L=0'), )
('FileID',':', SMB2_FILEID), ('CreateGuid','16s=""'), ('Flags','<L=0'), )
('StructureSize','<H=0'), ('Reserved','<H=0'), ('AppInstanceId','16s=""'), )
('DiskIDBuffer','32s=""'), )
# Todo: Add Classes for #SMB2_CREATE_SD_BUFFER
# SMB2_CLOSE ('StructureSize','<H=24'), ('Flags','<H=0'), ('Reserved','<L=0'), ('FileID',':', SMB2_FILEID), )
('StructureSize','<H=60'), ('Flags','<H=0'), ('Reserved','<L=0'), ('CreationTime','<Q=0'), ('LastAccessTime','<Q=0'), ('LastWriteTime','<Q=0'), ('ChangeTime','<Q=0'), ('AllocationSize','<Q=0'), ('EndofFile','<Q=0'), ('FileAttributes','<L=0'), )
# SMB2_FLUSH ('StructureSize','<H=24'), ('Reserved1','<H=0'), ('Reserved2','<L=0'), ('FileID',':',SMB2_FILEID), )
('StructureSize','<H=4'), ('Reserved','<H=0'), )
# SMB2_READ ('StructureSize','<H=49'), ('Padding','<B=0'), ('Reserved','<B=0'), ('Length','<L=0'), ('Offset','<Q=0'), ('FileID',':',SMB2_FILEID), ('MinimumCount','<L=0'), ('Channel','<L=0'), ('RemainingBytes','<L=0'), ('ReadChannelInfoOffset','<H=0'), ('ReadChannelInfoLength','<H=0'), ('_AlignPad','_-AlignPad','self["ReadChannelInfoOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["ReadChannelInfoLength"]'), ('Buffer',':="0"'), )
('StructureSize','<H=17'), ('DataOffset','<B=0'), ('Reserved','<B=0'), ('DataLength','<L=0'), ('DataRemaining','<L=0'), ('Reserved2','<L=0'), ('_AlignPad','_-AlignPad','self["DataOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["DataLength"]'), ('Buffer',':'), )
# SMB2_WRITE ('StructureSize','<H=49'), ('DataOffset','<H=(self.SIZE + 64 + len(self["AlignPad"]))'), ('Length','<L=0'), ('Offset','<Q=0'), ('FileID',':',SMB2_FILEID), ('Channel','<L=0'), ('RemainingBytes','<L=0'), ('WriteChannelInfoOffset','<H=0'), ('WriteChannelInfoLength','<H=0'), ('_AlignPad','_-AlignPad','self["DataOffset"] + self["WriteChannelInfoOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('Flags','<L=0'), ('_Buffer','_-Buffer','self["Length"]+self["WriteChannelInfoLength"]'), ('Buffer',':'), )
('StructureSize','<H=17'), ('Reserved','<H=0'), ('Count','<L=0'), ('Remaining','<L=0'), ('WriteChannelInfoOffset','<H=0'), ('WriteChannelInfoLength','<H=0'), )
('StructureSize','<H=24'), ('OplockLevel','<B=0'), ('Reserved','<B=0'), ('Reserved2','<L=0'), ('FileID',':',SMB2_FILEID), )
('StructureSize','<H=44'), ('NewEpoch','<H=0'), ('Flags','<L=0'), ('LeaseKey','16s=""'), ('CurrentLeaseState','<L=0'), ('NewLeaseState','<L=0'), ('BreakReason','<L=0'), ('AccessMaskHint','<L=0'), ('ShareMaskHint','<L=0'), )
('StructureSize','<H=36'), ('Reserved','<H=0'), ('Flags','<L=0'), ('LeaseKey','16s=""'), ('LeaseState','<L=0'), ('LeaseDuration','<Q=0'), )
# SMB2_LOCK ('Offset','<Q=0'), ('Length','<Q=0'), ('Flags','<L=0'), ('Reserved','<L=0'), )
('StructureSize','<H=48'), ('LockCount','<H=0'), ('LockSequence','<L=0'), ('FileID',':',SMB2_FILEID), ('_Locks','_-Locks','self["LockCount"]*24'), ('Locks',':'), )
('StructureSize','<H=4'), ('Reserved','<H=0'), )
# SMB2_ECHO ('StructureSize','<H=4'), ('Reserved','<H=0'), )
# SMB2_CANCEL` ('StructureSize','<H=4'), ('Reserved','<H=0'), )
# SMB2_IOCTL ('StructureSize','<H=57'), ('Reserved','<H=0'), ('CtlCode','<L=0'), ('FileID',':',SMB2_FILEID), ('InputOffset','<L=(self.SIZE + 64 + len(self["AlignPad"]))'), ('InputCount','<L=0'), ('MaxInputResponse','<L=0'), ('OutputOffset','<L=(self.SIZE + 64 + len(self["AlignPad"]) + self["InputCount"])'), ('OutputCount','<L=0'), ('MaxOutputResponse','<L=0'), ('Flags','<L=0'), ('Reserved2','<L=0'), #('_AlignPad','_-AlignPad','self["InputOffset"] + self["OutputOffset"] - (64 + self["StructureSize"] - 1)'), #('AlignPad',':=""'), ('_Buffer','_-Buffer','self["InputCount"]+self["OutputCount"]'), ('Buffer',':'), ) Structure.__init__(self,data) if data is None: self['AlignPad'] = ''
('Timeout','<q=0'), ('NameLength','<L=0'), ('TimeoutSpecified','<B=0'), ('Padding','<B=0'), ('_Name','_-Name','self["NameLength"]'), ('Name',':'), )
('SourceKey','24s=""'), ('ChunkCount','<L=0'), ('Reserved','<L=0'), ('_Chunks','_-Chunks', 'self["ChunkCount"]*len(SRV_COPYCHUNK)'), ('Chunks',':'), )
('SourceOffset','<Q=0'), ('TargetOffset','<Q=0'), ('Length','<L=0'), ('Reserved','<L=0'), )
('ChunksWritten','<L=0'), ('ChunkBytesWritten','<L=0'), ('TotalBytesWritten','<L=0'), )
('HashType','<L=0'), ('HashVersion','<L=0'), ('HashRetrievalType','<L=0'), ('Length','<L=0'), ('Offset','<Q=0'), )
('Timeout','<L=0'), ('Reserved','<L=0'), )
('Capabilities','<L=0'), ('Guid','16s=""'), ('SecurityMode','<H=0'), #('DialectCount','<H=0'), ('Dialects','<H*<H'), )
('Capabilities','<L=0'), ('Guid','16s=""'), ('SecurityMode','<H=0'), ('Dialect','<H'), )
('NumberOfSnapShots','<L=0'), ('NumberOfSnapShotsReturned','<L=0'), ('SnapShotArraySize','<L=0'), ('_SnapShots','_-SnapShots','self["SnapShotArraySize"]'), ('SnapShots',':'), )
('ResumeKey','24s=""'), ('ContextLength','<L=0'), ('_Context','_-Context','self["ContextLength"]'), ('Context',':'), )
('HashType','<L=0'), ('HashVersion','<L=0'), ('SourceFileChangeTime','<Q=0'), ('SourceFileSize','<Q=0'), ('HashBlobLength','<L=0'), ('HashBlobOffset','<L=0'), ('Dirty','<H=0'), ('SourceFileNameLength','<L=0'), ('_SourceFileName','_-SourceFileName','self["SourceFileNameLength"]',), ('SourceFileName',':'), )
('Offset','<Q=0'), ('BufferLength','<L=0'), ('Reserved','<L=0'), ('_Buffer','_-Buffer','self["BufferLength"]'), ('Buffer',':'), )
('FileDataOffset','<Q=0'), ('FileDataLength','<Q=0'), ('BufferLength','<L=0'), ('Reserved','<L=0'), ('_Buffer','_-Buffer','self["BufferLength"]'), ('Buffer',':'), )
('Next','<L=0'), ('IfIndex','<L=0'), ('Capability','<L=0'), ('Reserved','<L=0'), ('LinkSpeed','<Q=0'), ('SockAddr_Storage','128s=""'), )
("ReparseTag", "<L=0xA0000003"), ("ReparseDataLen", "<H=len(self['PathBuffer']) + 8"), ("Reserved", "<H=0"), ("SubstituteNameOffset", "<H=0"), ("SubstituteNameLength", "<H=0"), ("PrintNameOffset", "<H=0"), ("PrintNameLength", "<H=0"), ("PathBuffer", ":") )
("ReparseTag", "<L=0xA0000003"), ("ReparseDataLen", "<H=len(self['DataBuffer'])"), ("Reserved", "<H=0"), ("ReparseGuid", "16s=''"), ("DataBuffer", ":") )
('StructureSize','<H=49'), ('Reserved','<H=0'), ('CtlCode','<L=0'), ('FileID',':',SMB2_FILEID), ('InputOffset','<L=0'), ('InputCount','<L=0'), ('OutputOffset','<L=0'), ('OutputCount','<L=0'), ('Flags','<L=0'), ('Reserved2','<L=0'), ('_AlignPad','_-AlignPad','self["OutputOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["InputCount"]+self["OutputCount"]'), ('Buffer',':'), )
# SMB2_QUERY_DIRECTORY ('StructureSize','<H=33'), ('FileInformationClass','<B=0'), ('Flags','<B=0'), ('FileIndex','<L=0'), ('FileID',':',SMB2_FILEID), ('FileNameOffset','<H=(self.SIZE + 64 + len(self["AlignPad"]))'), ('FileNameLength','<H=0'), ('OutputBufferLength','<L=0'), ('_AlignPad','_-AlignPad','self["FileNameOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["FileNameLength"]'), ('Buffer',':'), )
('StructureSize','<H=9'), ('OutputBufferOffset','<H=0'), ('OutputBufferLength','<L=0'), ('_AlignPad','_-AlignPad','self["OutputBufferOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["OutputBufferLength"]'), ('Buffer',':'), )
# SMB2_CHANGE_NOTIFY ('StructureSize','<H=32'), ('Flags','<H=0'), ('OutputBufferLength','<L=0'), ('FileID',':',SMB2_FILEID), ('CompletionFilter','<L=0'), ('Reserved','<L=0'), )
('StructureSize','<H=9'), ('OutputBufferOffset','<H=0'), ('OutputBufferLength','<L=0'), ('_AlignPad','_-AlignPad','self["OutputBufferOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["OutputBufferLength"]'), ('Buffer',':'), )
('NextEntryOffset','<L=0'), ('Action','<L=0'), ('FileNameLength','<L=0'), ('_FileName','_-FileName','self["FileNameLength"]',), ('FileName',':'), )
# SMB2_QUERY_INFO ('StructureSize','<H=41'), ('InfoType','<B=0'), ('FileInfoClass','<B=0'), ('OutputBufferLength','<L=0'), ('InputBufferOffset','<H=(self.SIZE + 64 + len(self["AlignPad"]))'), ('Reserved','<H=0'), ('InputBufferLength','<L=0'), ('AdditionalInformation','<L=0'), ('Flags','<L=0'), ('FileID',':',SMB2_FILEID), ('_AlignPad','_-AlignPad','self["InputBufferOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["InputBufferLength"]'), ('Buffer',':'), )
('ReturnSingle','<B=0'), ('RestartScan','<B=0'), ('Reserved','<H=0'), ('SidListLength','<L=0'), ('StartSidLength','<L=0'), ('StartSidOffset','<L=0'), # ToDo: Check 2.2.37.1 here ('SidBuffer',':'), )
('StructureSize','<H=9'), ('OutputBufferOffset','<H=0'), ('OutputBufferLength','<L=0'), ('_AlignPad','_-AlignPad','self["OutputBufferOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["OutputBufferLength"]'), ('Buffer',':'), )
# SMB2_SET_INFO ('StructureSize','<H=33'), ('InfoType','<B=0'), ('FileInfoClass','<B=0'), ('BufferLength','<L=0'), ('BufferOffset','<H=(self.SIZE + 64 + len(self["AlignPad"]))'), ('Reserved','<H=0'), ('AdditionalInformation','<L=0'), ('FileID',':',SMB2_FILEID), ('_AlignPad','_-AlignPad','self["BufferOffset"] - (64 + self["StructureSize"] - 1)'), ('AlignPad',':=""'), ('_Buffer','_-Buffer','self["BufferLength"]'), ('Buffer',':'), )
('StructureSize','<H=2'), )
('ReplaceIfExists','<B=0'), ('Reserved','7s=""'), ('RootDirectory','<Q=0'), ('FileNameLength','<L=0'), ('_FileName','_-FileName','self["FileNameLength"]'), ('FileName',':'), )
('ProtocolID','"\xfdSMB'), ('Signature','16s=""'), ('Nonce','16s=""'), ('OriginalMessageSize','<L=0'), ('Reserved','<H=0'), ('EncryptionAlgorithm','<H=0'), ('SessionID','<Q=0'), )
# SMB2_FILE_INTERNAL_INFO ('IndexNumber','<q=0'), )
# SMB2_SEC_INFO_00 ('Revision','<h=1'), ('Type','<h=0'), ('OffsetToOwner','<I=0'), ('OffsetToGroup','<I=0'), ('OffsetToSACL','<I=0'), ('OffsetToDACL','<I=0'), ) |