*************SMB服务端代码实现****************************************************
*************SMB协议解析************************************************************
-------------------------------------------------------------------------
| TCP头 | NETBIOS头 | SMB头 | SMB COMMAND头 | 数据 |
-------------------------------------------------------------------------
1.TCP Header的长度为20字节
2.NETBIOS Header的长度为4字节(2-4字节定义smb包长度)
3.SMB Header的长度为32字节(第5个字节定义smb命令类型)
4.SMB COMMAND Header的长度不固定
*************SMB2协议过程************************************************************
1. Negotiate Protocol Request
在用户输入“\服务器名\”之后,首先要做的就是把服务器名解析为IP,可以通过DNS还是NetBIOS解析。
得到IP地址后,客户端就向服务器发送第一个SMB请求:“Negotiate Protocol Request”。这个请求包含了客户端所支持的各种 SMB Dialect。
2. Negotiate Protocol Response
服务器收到该请求后,选择一个它支持的最新版本(比如NT LM 0.12),再