Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Message ¶
type Message struct {
Header *header.Header
Command command_interface.CommandInterface
}
SMBMessage represents an SMB message Source: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-cifs/4d330f4c-151c-4d79-b207-40bd4f754da9
func NewMessage ¶
func NewMessage() *Message
NewMessage creates a new SMB message Source: https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-cifs/4d330f4c-151c-4d79-b207-40bd4f754da9
func (*Message) AddCommand ¶
func (m *Message) AddCommand(command command_interface.CommandInterface)
AddCommand adds a command to the message If the command is an AndX, it will add the command and the next command If the command is not an AndX, it will add the command
func (*Message) Marshal ¶
Marshal serializes the Message into a byte slice.
This method marshals the message's components in the following order:
- Header - Contains protocol identifier, command code, status, flags, etc.
- Parameters and Data blocks - For each ParameterDataBlock in the message: a. Parameters - Contains command-specific parameters b. Data - Contains command-specific data
The marshalled data follows the SMB protocol format as specified in MS-CIFS. For AndX messages, multiple parameter-data blocks will be marshalled sequentially.
Returns: - A byte slice containing the marshalled message - An error if marshalling any component fails
func (*Message) Unmarshal ¶
Unmarshal deserializes a byte slice into the Message structure.
This method reads the binary representation of the Message structure from the input byte slice according to the SMB protocol format. It processes the components in the following order:
- Header - Reads protocol identifier, command code, status, flags, etc.
- Parameters and Data blocks - For each ParameterDataBlock in the message: a. Parameters - Reads command-specific parameters b. Data - Reads command-specific data
For AndX messages, multiple parameter-data blocks will be unmarshalled sequentially. The method will continue reading blocks until all data in the input slice is consumed.
Parameters: - marshalledData: The byte slice containing the serialized Message structure
Returns: - An error if unmarshalling any component fails, or nil if successful