Expand description
SMB2 protocol types, parsing, and serialization.
Implements the subset of MS-SMB2 needed for mount_smbfs / SMB clients: NEGOTIATE, SESSION_SETUP, TREE_CONNECT, CREATE, CLOSE, READ, WRITE, QUERY_DIRECTORY (FIND), QUERY_INFO, SET_INFO, LOGOFF, TREE_DISCONNECT.
Structs§
Constants§
- DELETE
- FILE_
ALL_ INFORMATION - FILE_
APPEND_ DATA - FILE_
ATTRIBUTE_ ARCHIVE - FILE_
ATTRIBUTE_ DIRECTORY - FILE_
ATTRIBUTE_ HIDDEN - FILE_
ATTRIBUTE_ NORMAL - FILE_
ATTRIBUTE_ READONLY - FILE_
ATTRIBUTE_ TAG_ INFORMATION - FILE_
BASIC_ INFORMATION - FILE_
BOTH_ DIRECTORY_ INFORMATION - FILE_
CREATE - FILE_
DIRECTORY_ FILE - FILE_
DIRECTORY_ INFORMATION - FILE_
DISPOSITION_ INFORMATION - FILE_
EA_ INFORMATION - FILE_
FULL_ DIRECTORY_ INFORMATION - FILE_
ID_ BOTH_ DIRECTORY_ INFORMATION - FILE_
ID_ FULL_ DIRECTORY_ INFORMATION - FILE_
INTERNAL_ INFORMATION - FILE_
LIST_ DIRECTORY - FILE_
NETWORK_ OPEN_ INFORMATION - FILE_
NON_ DIRECTORY_ FILE - FILE_
OPEN - FILE_
OPEN_ IF - FILE_
OVERWRITE - FILE_
OVERWRITE_ IF - FILE_
POSITION_ INFORMATION - FILE_
READ_ ATTRIBUTES - FILE_
READ_ DATA - FILE_
READ_ EA - FILE_
RENAME_ INFORMATION - FILE_
SHARE_ DELETE - FILE_
SHARE_ READ - FILE_
SHARE_ WRITE - FILE_
STANDARD_ INFORMATION - FILE_
STREAM_ INFORMATION - FILE_
SUPERSEDE - FILE_
WRITE_ ATTRIBUTES - FILE_
WRITE_ DATA - FILE_
WRITE_ EA - FS_
ATTRIBUTE_ INFORMATION - FS_
FULL_ SIZE_ INFORMATION - FS_
SECTOR_ SIZE_ INFORMATION - FS_
SIZE_ INFORMATION - FS_
VOLUME_ INFORMATION - GENERIC_
ALL - GENERIC_
READ - GENERIC_
WRITE - MAXIMUM_
ALLOWED - READ_
CONTROL - SMB1_
MAGIC - SMB2_
0_ INFO_ FILE - SMB2_
0_ INFO_ FILESYSTEM - SMB2_
0_ INFO_ SECURITY - SMB2_
CLOSE - SMB2_
CREATE - SMB2_
DIALECT_ 202 - SMB2_
DIALECT_ 210 - SMB2_
DIALECT_ 300 - SMB2_
DIALECT_ 302 - SMB2_
DIALECT_ 311 - SMB2_
FLAGS_ SERVER_ TO_ REDIR - SMB2_
FLUSH - SMB2_
HEADER_ SIZE - SMB2_
IOCTL - SMB2_
LOCK - SMB2_
LOGOFF - SMB2_
MAGIC - SMB2_
NEGOTIATE - SMB2_
QUERY_ DIRECTORY - SMB2_
QUERY_ INFO - SMB2_
READ - SMB2_
SESSION_ SETUP - SMB2_
SET_ INFO - SMB2_
TREE_ CONNECT - SMB2_
TREE_ DISCONNECT - SMB2_
WRITE - STATUS_
ACCESS_ DENIED - STATUS_
END_ OF_ FILE - STATUS_
INVALID_ DEVICE_ REQUEST - STATUS_
INVALID_ PARAMETER - STATUS_
MORE_ PROCESSING - STATUS_
NOT_ SUPPORTED - STATUS_
NO_ MORE_ FILES - STATUS_
NO_ SUCH_ FILE - STATUS_
OBJECT_ NAME_ COLLISION - STATUS_
OBJECT_ NAME_ NOT_ FOUND - STATUS_
OBJECT_ PATH_ NOT_ FOUND - STATUS_
SUCCESS - SYNCHRONIZE
Functions§
- asn1_
context - asn1_
octet_ string - asn1_
sequence - asn1_
write_ length - build_
smb1_ to_ smb2_ negotiate_ response - Build an SMB2 NEGOTIATE response to an SMB1 negotiate request. This tells the client to upgrade from SMB1 to SMB2. Per MS-SMB2 3.3.5.3.1: the server responds with an SMB2 NEGOTIATE response with DialectRevision = 0x02FF (wildcard) to indicate that the client should re-negotiate using SMB2.
- build_
spnego_ negotiate_ token - Build a SPNEGO negTokenInit containing the NTLMSSP OID and the mechListMIC “not_defined_in_RFC4178@please_ignore”, matching the exact 74-byte blob that Samba sends in its negotiate responses.
- filetime_
to_ unix - Unix timestamp from Windows FILETIME.
- from_
utf16le - Decode a UTF-16LE string from SMB wire format.
- hex_
dump - Format a hex dump of the first
max_bytesbytes of data (for debug logging). - is_
smb1_ negotiate - Check if the given message bytes are an SMB1 negotiate request (magic \xFF SMB).
- read_
message - Read an SMB message from a TCP stream (NetBIOS framing). Returns the raw message bytes (without the 4-byte length prefix).
- read_
u16_ le - read_
u32_ le - read_
u64_ le - spnego_
accept_ complete - Final SPNEGO accept-complete token.
- to_
utf16le - Encode a UTF-16LE string (for SMB wire format).
- unix_
to_ filetime - Windows FILETIME (100-ns intervals since 1601-01-01) from Unix timestamp.
- wrap_
ntlmssp_ in_ spnego - Wrap NTLMSSP in a GSS/SPNEGO blob for SESSION_SETUP response.