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

Class SMB2_Write_Request

scapy/layers/smb2.py:3463–3523  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3461
3462
3463class SMB2_Write_Request(_SMB2_Payload, _NTLMPayloadPacket):
3464 name = "SMB2 WRITE Request"
3465 Command = 0x0009
3466 OFFSET = 48 + 64
3467 _NTLM_PAYLOAD_FIELD_NAME = "Buffer"
3468 fields_desc = [
3469 XLEShortField("StructureSize", 0x31),
3470 LEShortField("DataBufferOffset", None),
3471 LEIntField("DataLen", None),
3472 LELongField("Offset", 0),
3473 PacketField("FileId", SMB2_FILEID(), SMB2_FILEID),
3474 LEIntEnumField(
3475 "Channel",
3476 0,
3477 {
3478 0x00000000: "SMB2_CHANNEL_NONE",
3479 0x00000001: "SMB2_CHANNEL_RDMA_V1",
3480 0x00000002: "SMB2_CHANNEL_RDMA_V1_INVALIDATE",
3481 0x00000003: "SMB2_CHANNEL_RDMA_TRANSFORM",
3482 },
3483 ),
3484 LEIntField("RemainingBytes", 0),
3485 LEShortField("WriteChannelInfoBufferOffset", None),
3486 LEShortField("WriteChannelInfoLen", None),
3487 FlagsField(
3488 "Flags",
3489 0,
3490 -32,
3491 {
3492 0x00000001: "SMB2_WRITEFLAG_WRITE_THROUGH",
3493 0x00000002: "SMB2_WRITEFLAG_WRITE_UNBUFFERED",
3494 },
3495 ),
3496 _NTLMPayloadField(
3497 "Buffer",
3498 OFFSET,
3499 [
3500 StrLenField("Data", b"", length_from=lambda pkt: pkt.DataLen),
3501 StrLenField(
3502 "WriteChannelInfo",
3503 b"",
3504 length_from=lambda pkt: pkt.WriteChannelInfoLen,
3505 ),
3506 ],
3507 ),
3508 ]
3509
3510 def post_build(self, pkt, pay):
3511 # type: (bytes, bytes) -> bytes
3512 return (
3513 _SMB2_post_build(
3514 self,
3515 pkt,
3516 self.OFFSET,
3517 {
3518 "Data": 2,
3519 "WriteChannelInfo": 40,
3520 },

Callers 2

write_requestMethod · 0.90
sendMethod · 0.90

Calls 10

XLEShortFieldClass · 0.90
LEShortFieldClass · 0.90
LEIntFieldClass · 0.90
LELongFieldClass · 0.90
PacketFieldClass · 0.90
LEIntEnumFieldClass · 0.90
FlagsFieldClass · 0.90
_NTLMPayloadFieldClass · 0.90
StrLenFieldClass · 0.90
SMB2_FILEIDClass · 0.85

Tested by

no test coverage detected