public static SMB1Message GetSMB1Message(byte[] buffer)
 {
     if (!SMB1Header.IsValidSMB1Header(buffer))
     {
         throw new InvalidDataException("Invalid SMB header signature");
     }
     return(new SMB1Message(buffer));
 }
Exemple #2
0
        public SMB1Message(byte[] buffer)
        {
            Header = new SMB1Header(buffer);
            SMB1Command command = SMB1Command.ReadCommand(buffer, SMB1Header.Length, Header.Command, Header);

            Commands.Add(command);
            while (command is SMBAndXCommand smbAndXCommand)
            {
                if (smbAndXCommand.AndXCommand == CommandName.SMB_COM_NO_ANDX_COMMAND)
                {
                    break;
                }
                command = SMB1Command.ReadCommand(buffer, smbAndXCommand.AndXOffset, smbAndXCommand.AndXCommand, Header);
                Commands.Add(command);
            }
        }
Exemple #3
0
        public static SMB1Command ReadCommand(byte[] buffer, int offset, CommandName commandName, SMB1Header header)
        {
            if ((header.Flags & HeaderFlags.Reply) > 0)
            {
                return(ReadCommandResponse(buffer, offset, commandName, header.UnicodeFlag));
            }

            return(ReadCommandRequest(buffer, offset, commandName, header.UnicodeFlag));
        }
 public SMB1Message()
 {
     Header = new SMB1Header();
 }