MCPcopy Index your code
hub / github.com/secdev/scapy / SMB2_Create_Context

Class SMB2_Create_Context

scapy/layers/smb2.py:3000–3106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2998
2999
3000class SMB2_Create_Context(_NTLMPayloadPacket):
3001 name = "SMB2 CREATE CONTEXT"
3002 OFFSET = 16
3003 _NTLM_PAYLOAD_FIELD_NAME = "Buffer"
3004 fields_desc = [
3005 LEIntField("Next", None),
3006 XLEShortField("NameBufferOffset", None),
3007 LEShortField("NameLen", None),
3008 ShortField("Reserved", 0),
3009 XLEShortField("DataBufferOffset", None),
3010 LEIntField("DataLen", None),
3011 _NTLMPayloadField(
3012 "Buffer",
3013 OFFSET,
3014 [
3015 PadField(
3016 StrLenField("Name", b"", length_from=lambda pkt: pkt.NameLen),
3017 8,
3018 ),
3019 # Must be padded on 8-octet alignment
3020 PacketLenField(
3021 "Data", None, conf.raw_layer, length_from=lambda pkt: pkt.DataLen
3022 ),
3023 ],
3024 force_order=["Name", "Data"],
3025 ),
3026 StrLenField(
3027 "pad",
3028 b"",
3029 length_from=lambda x: (
3030 (
3031 x.Next
3032 - max(
3033 x.DataBufferOffset + x.DataLen, x.NameBufferOffset + x.NameLen
3034 )
3035 )
3036 if x.Next
3037 else 0
3038 ),
3039 ),
3040 ]
3041
3042 def post_dissect(self, s):
3043 if not self.DataLen:
3044 return s
3045 try:
3046 if isinstance(self.parent, SMB2_Create_Request):
3047 data_cls = {
3048 b"DHnQ": SMB2_CREATE_DURABLE_HANDLE_REQUEST,
3049 b"DHnC": SMB2_CREATE_DURABLE_HANDLE_RECONNECT,
3050 b"AISi": SMB2_CREATE_ALLOCATION_SIZE,
3051 b"MxAc": SMB2_CREATE_QUERY_MAXIMAL_ACCESS_REQUEST,
3052 b"TWrp": SMB2_CREATE_TIMEWARP_TOKEN,
3053 b"QFid": SMB2_CREATE_QUERY_ON_DISK_ID,
3054 b"RqLs": SMB2_CREATE_REQUEST_LEASE,
3055 b"DH2Q": SMB2_CREATE_DURABLE_HANDLE_REQUEST_V2,
3056 b"DH2C": SMB2_CREATE_DURABLE_HANDLE_RECONNECT_V2,
3057 # 3.1.1 only

Callers 2

create_requestMethod · 0.90

Calls 8

LEIntFieldClass · 0.90
XLEShortFieldClass · 0.90
LEShortFieldClass · 0.90
ShortFieldClass · 0.90
_NTLMPayloadFieldClass · 0.90
PadFieldClass · 0.90
StrLenFieldClass · 0.90
PacketLenFieldClass · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…