MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / SMB2Message

Class SMB2Message

pager_lib/smb/smb2_structs.py:10–177  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8
9
10class SMB2Message:
11
12 HEADER_STRUCT_FORMAT = "<4sHHIHHI" # This refers to the common header part that is shared by both sync and async SMB2 header
13 HEADER_STRUCT_SIZE = struct.calcsize(HEADER_STRUCT_FORMAT)
14
15 ASYNC_HEADER_STRUCT_FORMAT = "<IQQQ16s"
16 ASYNC_HEADER_STRUCT_SIZE = struct.calcsize(ASYNC_HEADER_STRUCT_FORMAT)
17
18 SYNC_HEADER_STRUCT_FORMAT = "<IQIIQ16s"
19 SYNC_HEADER_STRUCT_SIZE = struct.calcsize(SYNC_HEADER_STRUCT_FORMAT)
20
21 HEADER_SIZE = 64
22
23 log = logging.getLogger('SMB.SMB2Message')
24 protocol = 2
25
26 def __init__(self, payload = None):
27 self.reset()
28 if payload:
29 self.payload = payload
30 self.payload.initMessage(self)
31
32 def __str__(self):
33 b = StringIO()
34 b.write('Command: 0x%02X (%s) %s' % ( self.command, SMB2_COMMAND_NAMES.get(self.command, '<unknown>'), os.linesep ))
35 b.write('Status: 0x%08X %s' % ( self.status, os.linesep ))
36 b.write('Flags: 0x%02X %s' % ( self.flags, os.linesep ))
37 b.write('PID: %d %s' % ( self.pid, os.linesep ))
38 b.write('MID: %d %s' % ( self.mid, os.linesep ))
39 b.write('TID: %d %s' % ( self.tid, os.linesep ))
40 b.write('Data: %d bytes %s%s %s' % ( len(self.data), os.linesep, str(binascii.hexlify(self.data)), os.linesep ))
41 return b.getvalue()
42
43 def reset(self):
44 self.raw_data = b''
45 self.command = 0
46 self.status = 0
47 self.flags = 0
48
49 self.next_command_offset = 0
50 self.mid = 0
51 self.session_id = 0
52 self.signature = b'\0'*16
53 self.payload = None
54 self.data = b''
55
56 # For async SMB2 message
57 self.async_id = 0
58
59 # For sync SMB2 message
60 self.pid = 0
61 self.tid = 0
62
63 # Not used in this class. Maintained for compatibility with SMBMessage class
64 self.flags2 = 0
65 self.uid = 0
66 self.security = 0
67 self.parameters_data = b''

Callers 15

connectSrvSvcMethod · 0.85
connectSrvSvcCBMethod · 0.85
rpcBindCBMethod · 0.85
rpcReadCBMethod · 0.85
sendReadRequestMethod · 0.85
closeFidMethod · 0.85
_listShares_SMB2Method · 0.85
sendCreateMethod · 0.85
sendQueryMethod · 0.85
_listPath_SMB2Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected