diff --git a/SMBLibrary/SMB1/Commands/NTCreateAndXRequest.cs b/SMBLibrary/SMB1/Commands/NTCreateAndXRequest.cs index 6b803eb..d964bf7 100644 --- a/SMBLibrary/SMB1/Commands/NTCreateAndXRequest.cs +++ b/SMBLibrary/SMB1/Commands/NTCreateAndXRequest.cs @@ -25,7 +25,7 @@ namespace SMBLibrary.SMB1 //ushort NameLength; // in bytes public NTCreateFlags Flags; public uint RootDirectoryFID; - public DesiredAccess DesiredAccess; + public FileAccessMask DesiredAccess; public ulong AllocationSize; public ExtendedFileAttributes ExtFileAttributes; public ShareAccess ShareAccess; @@ -46,7 +46,7 @@ namespace SMBLibrary.SMB1 ushort nameLength = LittleEndianConverter.ToUInt16(this.SMBParameters, 5); Flags = (NTCreateFlags)LittleEndianConverter.ToUInt32(this.SMBParameters, 7); RootDirectoryFID = LittleEndianConverter.ToUInt32(this.SMBParameters, 11); - DesiredAccess = (DesiredAccess)LittleEndianConverter.ToUInt32(this.SMBParameters, 15); + DesiredAccess = (FileAccessMask)LittleEndianConverter.ToUInt32(this.SMBParameters, 15); AllocationSize = LittleEndianConverter.ToUInt64(this.SMBParameters, 19); ExtFileAttributes = (ExtendedFileAttributes)LittleEndianConverter.ToUInt32(this.SMBParameters, 27); ShareAccess = (ShareAccess)LittleEndianConverter.ToUInt32(this.SMBParameters, 31); diff --git a/SMBLibrary/SMB1/Enums/NTCreate/DesiredAccess.cs b/SMBLibrary/SMB1/Enums/NTCreate/DesiredAccess.cs deleted file mode 100644 index 2307f92..0000000 --- a/SMBLibrary/SMB1/Enums/NTCreate/DesiredAccess.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; - -namespace SMBLibrary.SMB1 -{ - [Flags] - public enum DesiredAccess : uint - { - FILE_READ_DATA = 0x0001, - FILE_WRITE_DATA = 0x0002, - FILE_APPEND_DATA = 0x0004, - FILE_READ_EA = 0x0008, - FILE_WRITE_EA = 0x0010, - FILE_EXECUTE = 0x0020, - FILE_READ_ATTRIBUTES = 0x0080, - FILE_WRITE_ATTRIBUTES = 0x0100, - DELETE = 0x00010000, - READ_CONTROL = 0x00020000, - WRITE_DAC = 0x00040000, - WRITE_OWNER = 0x00080000, - SYNCHRONIZE = 0x00100000, - ACCESS_SYSTEM_SECURITY = 0x01000000, - MAXIMUM_ALLOWED = 0x02000000, - GENERIC_ALL = 0x10000000, - GENERIC_EXECUTE = 0x20000000, - GENERIC_WRITE = 0x40000000, - } -} diff --git a/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactCreateRequest.cs b/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactCreateRequest.cs index 3b2d096..8f0c532 100644 --- a/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactCreateRequest.cs +++ b/SMBLibrary/SMB1/NTTransactSubcommands/NTTransactCreateRequest.cs @@ -20,7 +20,7 @@ namespace SMBLibrary.SMB1 // Parameters: public NTCreateFlags Flags; public uint RootDirectoryFID; - public DesiredAccess DesiredAccess; + public FileAccessMask DesiredAccess; public ulong AllocationSize; public ExtendedFileAttributes ExtFileAttributes; public ShareAccess ShareAccess; @@ -45,7 +45,7 @@ namespace SMBLibrary.SMB1 int parametersOffset = 0; Flags = (NTCreateFlags)LittleEndianReader.ReadUInt32(parameters, ref parametersOffset); RootDirectoryFID = LittleEndianReader.ReadUInt32(parameters, ref parametersOffset); - DesiredAccess = (DesiredAccess)LittleEndianReader.ReadUInt32(parameters, ref parametersOffset); + DesiredAccess = (FileAccessMask)LittleEndianReader.ReadUInt32(parameters, ref parametersOffset); AllocationSize = LittleEndianReader.ReadUInt64(parameters, ref parametersOffset); ExtFileAttributes = (ExtendedFileAttributes)LittleEndianReader.ReadUInt32(parameters, ref parametersOffset); ShareAccess = (ShareAccess)LittleEndianReader.ReadUInt32(parameters, ref parametersOffset); diff --git a/SMBLibrary/SMBLibrary.csproj b/SMBLibrary/SMBLibrary.csproj index 7727ddf..fd41d43 100644 --- a/SMBLibrary/SMBLibrary.csproj +++ b/SMBLibrary/SMBLibrary.csproj @@ -248,7 +248,6 @@ - diff --git a/SMBLibrary/Server/SMB1/NTCreateHelper.cs b/SMBLibrary/Server/SMB1/NTCreateHelper.cs index 5fbecc7..d1610f8 100644 --- a/SMBLibrary/Server/SMB1/NTCreateHelper.cs +++ b/SMBLibrary/Server/SMB1/NTCreateHelper.cs @@ -326,21 +326,21 @@ namespace SMBLibrary.Server.SMB1 } } - public static FileAccess ToFileAccess(DesiredAccess desiredAccess) + public static FileAccess ToFileAccess(FileAccessMask desiredAccess) { - if ((desiredAccess & DesiredAccess.GENERIC_ALL) > 0 || - ((desiredAccess & DesiredAccess.FILE_READ_DATA) > 0 && (desiredAccess & DesiredAccess.FILE_WRITE_DATA) > 0) || - ((desiredAccess & DesiredAccess.FILE_READ_DATA) > 0 && (desiredAccess & DesiredAccess.FILE_APPEND_DATA) > 0)) + if ((desiredAccess & FileAccessMask.GENERIC_ALL) > 0 || + ((desiredAccess & FileAccessMask.FILE_READ_DATA) > 0 && (desiredAccess & FileAccessMask.FILE_WRITE_DATA) > 0) || + ((desiredAccess & FileAccessMask.FILE_READ_DATA) > 0 && (desiredAccess & FileAccessMask.FILE_APPEND_DATA) > 0)) { return FileAccess.ReadWrite; } - else if ((desiredAccess & DesiredAccess.GENERIC_WRITE) > 0 || - (desiredAccess & DesiredAccess.FILE_WRITE_DATA) > 0 || - (desiredAccess & DesiredAccess.FILE_APPEND_DATA) > 0) + else if ((desiredAccess & FileAccessMask.GENERIC_WRITE) > 0 || + (desiredAccess & FileAccessMask.FILE_WRITE_DATA) > 0 || + (desiredAccess & FileAccessMask.FILE_APPEND_DATA) > 0) { return FileAccess.Write; } - else if ((desiredAccess & DesiredAccess.FILE_READ_DATA) > 0) + else if ((desiredAccess & FileAccessMask.FILE_READ_DATA) > 0) { return FileAccess.Read; }