ruby_smb 0.0.17 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/lib/ruby_smb/client/echo.rb +1 -1
  5. data/lib/ruby_smb/field/file_full_ea_info.rb +2 -2
  6. data/lib/ruby_smb/field/security_descriptor.rb +4 -4
  7. data/lib/ruby_smb/field/smb_fea.rb +2 -2
  8. data/lib/ruby_smb/field/smb_fea_list.rb +1 -1
  9. data/lib/ruby_smb/smb1/bit_field/header_flags2.rb +1 -1
  10. data/lib/ruby_smb/smb1/data_block.rb +1 -1
  11. data/lib/ruby_smb/smb1/packet/nt_trans/create_request.rb +2 -2
  12. data/lib/ruby_smb/smb1/packet/nt_trans/request.rb +5 -5
  13. data/lib/ruby_smb/smb1/packet/nt_trans/response.rb +5 -5
  14. data/lib/ruby_smb/smb1/packet/session_setup_legacy_request.rb +2 -2
  15. data/lib/ruby_smb/smb1/packet/session_setup_request.rb +2 -2
  16. data/lib/ruby_smb/smb1/packet/trans2/data_block.rb +24 -6
  17. data/lib/ruby_smb/smb1/packet/trans2/open2_request.rb +1 -1
  18. data/lib/ruby_smb/smb1/packet/trans2/request.rb +8 -8
  19. data/lib/ruby_smb/smb1/packet/trans2/request_secondary.rb +4 -4
  20. data/lib/ruby_smb/smb1/packet/trans2/response.rb +7 -7
  21. data/lib/ruby_smb/smb1/parameter_block.rb +1 -1
  22. data/lib/ruby_smb/smb1/smb_header.rb +3 -3
  23. data/lib/ruby_smb/smb2/bit_field/session_flags.rb +2 -2
  24. data/lib/ruby_smb/smb2/bit_field/smb2_header_flags.rb +4 -4
  25. data/lib/ruby_smb/smb2/packet/negotiate_response.rb +1 -1
  26. data/lib/ruby_smb/smb2/packet/tree_connect_request.rb +1 -1
  27. data/lib/ruby_smb/version.rb +1 -1
  28. data/spec/lib/ruby_smb/client_spec.rb +1 -1
  29. data/spec/lib/ruby_smb/smb1/smb_header_spec.rb +3 -3
  30. metadata +2 -2
  31. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ab24b867b8be1715d99a3e6778338a79d320f89
4
- data.tar.gz: a66714a90cb52cc95e878f833bdda845b80be6ed
3
+ metadata.gz: 6d2fbdf3236d278f2f5aa3aaab501f54af77825a
4
+ data.tar.gz: 343846b15a2d19332d87f1d15e87285f922dea23
5
5
  SHA512:
6
- metadata.gz: e20bce196ebf57c072a7a6c7054b48fa7be3f173ed51bd9bd403798ac522f58eb410e77c3a74f94cb2b81e530a63ac86df3df27ee064309e63639fa0a45d07cd
7
- data.tar.gz: 024f5ed83c155e2634782be7f43c5c63ba5d9c0ad29e872b22cb9f81696d0e03fafb14326d9be8a6b40350e1e2f8b797c18fa7932a90a80cad4367aad6dc7ad2
6
+ metadata.gz: 1a413b93e68d6ba6b1c17e8f78d815265757c173a6420fcc6a1faab6871f7bd7d009b65a1304439cf7463ee088bc903c1ac8262bfbd84ea6010a025e6658369d
7
+ data.tar.gz: f8de75f184d0242dd36f0cec9fb0f0c23778eceba43ff5e91f06501d610380eb8f50ca3debcf495093ce6ea6e724c4c916338944e4f9a66fc389b2d57c1868d9
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -11,7 +11,7 @@ module RubySMB
11
11
  # @param data [String] the data the server should echo back (ignored in SMB2)
12
12
  # @return [RubySMB::SMB1::Packet::EchoResponse] the last Echo Response packet received
13
13
  def smb1_echo(count: 1, data: '')
14
- request = RubySMB::SMB2::Packet::EchoRequest.new
14
+ request = RubySMB::SMB1::Packet::EchoRequest.new
15
15
  request.parameter_block.echo_count = count
16
16
  request.data_block.data = data
17
17
  raw_response = send_recv(request)
@@ -6,8 +6,8 @@ module RubySMB
6
6
  endian :little
7
7
  uint32 :next_entry_offset, label: 'Next Entry Offset'
8
8
  extended_attribute_flag :flags
9
- uint8 :ea_name_length, label: 'EA Name Length', value: lambda { ea_name.do_num_bytes }
10
- uint8 :ea_value_length, label: 'EA Value Length', value: lambda { ea_value.do_num_bytes }
9
+ uint8 :ea_name_length, label: 'EA Name Length', initial_value: lambda { ea_name.do_num_bytes }
10
+ uint8 :ea_value_length, label: 'EA Value Length', initial_value: lambda { ea_value.do_num_bytes }
11
11
  string :ea_name, label: 'EA Name'
12
12
  string :ea_value, label: 'EA Value'
13
13
  end
@@ -28,10 +28,10 @@ module RubySMB
28
28
  bit1 :dacl_trusted, label: 'DACL Trusted'
29
29
  end
30
30
 
31
- uint32 :offset_owner, label: 'Offset Owner', value: lambda { owner_sid.rel_offset }
32
- uint32 :offset_group, label: 'Offset Group', value: lambda { group_sid.rel_offset }
33
- uint32 :offset_sacl, label: 'Offset SACL', value: lambda { sacl.rel_offset }
34
- uint32 :offset_dacl, label: 'Offset DACL', value: lambda { dacl.rel_offset }
31
+ uint32 :offset_owner, label: 'Offset Owner', initial_value: lambda { owner_sid.rel_offset }
32
+ uint32 :offset_group, label: 'Offset Group', initial_value: lambda { group_sid.rel_offset }
33
+ uint32 :offset_sacl, label: 'Offset SACL', initial_value: lambda { sacl.rel_offset }
34
+ uint32 :offset_dacl, label: 'Offset DACL', initial_value: lambda { dacl.rel_offset }
35
35
 
36
36
  string :owner_sid, label: 'Owner SID'
37
37
  string :group_sid, label: 'Group SID'
@@ -5,8 +5,8 @@ module RubySMB
5
5
  class SmbFea < BinData::Record
6
6
  endian :little
7
7
  extended_attribute_flag :ea_flag, label: 'Extended Attribute Flag'
8
- uint8 :attribute_name_length, label: 'Attribute Name Length', value: lambda { attribute_name.length}
9
- uint16 :attribute_value_length, label: 'Attribute Value Length', value: lambda { attribute_value.length}
8
+ uint8 :attribute_name_length, label: 'Attribute Name Length', initial_value: lambda { attribute_name.length}
9
+ uint16 :attribute_value_length, label: 'Attribute Value Length', initial_value: lambda { attribute_value.length}
10
10
  string :attribute_name, label: 'Attribute Name'
11
11
  string :attribute_value, label: 'Attribute Value'
12
12
  end
@@ -4,7 +4,7 @@ module RubySMB
4
4
  # [2.2.1.2.2.1 SMB_FEA_LIST](https://msdn.microsoft.com/en-us/library/ff359296.aspx)
5
5
  class SmbFeaList < BinData::Record
6
6
  endian :little
7
- uint32 :size_of_list, label: 'Size of List in Bytes', value: lambda { fea_list.do_num_bytes }
7
+ uint32 :size_of_list, label: 'Size of List in Bytes', initial_value: lambda { fea_list.do_num_bytes }
8
8
  array :fea_list, initial_length: 0 do
9
9
  smb_fea
10
10
  end
@@ -18,7 +18,7 @@ module RubySMB
18
18
  bit1 :nt_status, label: 'NTStatus Errors', initial_value: 1
19
19
  bit1 :paging_io, label: 'Read if Execute', initial_value: 1
20
20
  bit1 :dfs, label: 'Use DFS'
21
- bit1 :extended_security, label: 'Extended Security', inital_value: 1
21
+ bit1 :extended_security, label: 'Extended Security'
22
22
  bit1 :reparse_path, label: '@GMT Token Required'
23
23
  resume_byte_alignment
24
24
  end
@@ -6,7 +6,7 @@ module RubySMB
6
6
  class DataBlock < BinData::Record
7
7
  endian :little
8
8
 
9
- uint16 :byte_count, label: 'Byte Count', value: -> { calculate_byte_count }
9
+ uint16 :byte_count, label: 'Byte Count', initial_value: -> { calculate_byte_count }
10
10
 
11
11
  # Class method to stub byte count calculation during
12
12
  # lazy evaluation.
@@ -32,8 +32,8 @@ module RubySMB
32
32
  share_access :share_access, label: 'Share Access'
33
33
  uint32 :create_disposition, label: 'Create Disposition'
34
34
  create_options :create_options
35
- uint32 :security_descriptor_length, label: 'Security Descriptor Length', value: lambda { self.parent.trans2_data.security_descriptor.length }
36
- uint32 :ea_length, label: 'Extended Attributes Length', value: lambda { self.parent.trans2_data.extended_attributes.length }
35
+ uint32 :security_descriptor_length, label: 'Security Descriptor Length', initial_value: lambda { self.parent.trans2_data.security_descriptor.length }
36
+ uint32 :ea_length, label: 'Extended Attributes Length', initial_value: lambda { self.parent.trans2_data.extended_attributes.length }
37
37
  uint32 :impersonation_level, label: 'Impersonation Level'
38
38
 
39
39
  struct :security_flags do
@@ -15,11 +15,11 @@ module RubySMB
15
15
  uint32 :total_data_count, label: 'Total Data Count(bytes)'
16
16
  uint32 :max_parameter_count, label: 'Max Parameter Count(bytes)'
17
17
  uint32 :max_data_count, label: 'Max Data Count(bytes)'
18
- uint32 :parameter_count, label: 'Parameter Count(bytes)', value: lambda {self.parent.data_block.trans2_parameters.length}
19
- uint32 :parameter_offset, label: 'Parameter Offset', value: lambda {self.parent.data_block.trans2_parameters.abs_offset}
20
- uint32 :data_count, label: 'Data Count(bytes)', value: lambda {self.parent.data_block.trans2_data.length}
21
- uint32 :data_offset, label: 'Data Offset', value: lambda {self.parent.data_block.trans2_data.abs_offset}
22
- uint8 :setup_count, label: 'Setup Count', value: lambda {setup.length}
18
+ uint32 :parameter_count, label: 'Parameter Count(bytes)', initial_value: lambda {self.parent.data_block.trans2_parameters.length}
19
+ uint32 :parameter_offset, label: 'Parameter Offset', initial_value: lambda {self.parent.data_block.trans2_parameters.abs_offset}
20
+ uint32 :data_count, label: 'Data Count(bytes)', initial_value: lambda {self.parent.data_block.trans2_data.length}
21
+ uint32 :data_offset, label: 'Data Offset', initial_value: lambda {self.parent.data_block.trans2_data.abs_offset}
22
+ uint8 :setup_count, label: 'Setup Count', initial_value: lambda {setup.length}
23
23
  uint16 :function, label: 'Function'
24
24
 
25
25
  array :setup, type: :uint16, initial_length: 0
@@ -14,13 +14,13 @@ module RubySMB
14
14
 
15
15
  uint32 :total_parameter_count, label: 'Total Parameter Count(bytes)'
16
16
  uint32 :total_data_count, label: 'Total Data Count(bytes)'
17
- uint32 :parameter_count, label: 'Parameter Count(bytes)', value: lambda {self.parent.data_block.trans2_parameters.length}
18
- uint32 :parameter_offset, label: 'Parameter Offset', value: lambda {self.parent.data_block.trans2_parameters.abs_offset}
17
+ uint32 :parameter_count, label: 'Parameter Count(bytes)', initial_value: lambda {self.parent.data_block.trans2_parameters.length}
18
+ uint32 :parameter_offset, label: 'Parameter Offset', initial_value: lambda {self.parent.data_block.trans2_parameters.abs_offset}
19
19
  uint32 :parameter_displacement, label: 'Parameter Displacement'
20
- uint32 :data_count, label: 'Data Count(bytes)', value: lambda {self.parent.data_block.trans2_data.length}
21
- uint32 :data_offset, label: 'Data Offset', value: lambda {self.parent.data_block.trans2_data.abs_offset}
20
+ uint32 :data_count, label: 'Data Count(bytes)', initial_value: lambda {self.parent.data_block.trans2_data.length}
21
+ uint32 :data_offset, label: 'Data Offset', initial_value: lambda {self.parent.data_block.trans2_data.abs_offset}
22
22
  uint32 :data_displacement, label: 'Data Displacement'
23
- uint8 :setup_count, label: 'Setup Count', value: lambda {setup.length}
23
+ uint8 :setup_count, label: 'Setup Count', initial_value: lambda {setup.length}
24
24
 
25
25
  array :setup, type: :uint16, initial_length: 0
26
26
  end
@@ -13,8 +13,8 @@ module RubySMB
13
13
  uint16 :max_mpx_count, label: 'Max Mpx Count'
14
14
  uint16 :vc_number, label: 'VC Number'
15
15
  uint32 :session_key, label: 'Session Key'
16
- uint16 :oem_password_length, label: 'OEM Password Length', value: lambda { self.parent.data_block.oem_password.length }
17
- uint16 :unicode_password_length, label: 'Unicored Password Length', value: lambda { self.parent.data_block.unicode_password.length }
16
+ uint16 :oem_password_length, label: 'OEM Password Length', initial_value: lambda { self.parent.data_block.oem_password.length }
17
+ uint16 :unicode_password_length, label: 'Unicored Password Length', initial_value: lambda { self.parent.data_block.unicode_password.length }
18
18
  uint32 :reserved
19
19
  capabilities :capabilities
20
20
  end
@@ -24,8 +24,8 @@ module RubySMB
24
24
  # yourself if you set them away from their defaults.
25
25
  class DataBlock < RubySMB::SMB1::DataBlock
26
26
  string :security_blob, label: 'Security Blob (GSS-API)', length: lambda { self.parent.parameter_block.security_blob_length }
27
- stringz :native_os, label: 'Native OS', initial_value: 'Windows 7 Ultimate N 7601 Service Pack 1'
28
- stringz :native_lan_man, label: 'Native LAN Manager', initial_value: 'Windows 7 Ultimate N 6.1'
27
+ string :native_os, label: 'Native OS', initial_value: "Windows 7 Ultimate N 7601 Service Pack 1\x00"
28
+ string :native_lan_man, label: 'Native LAN Manager', initial_value: "Windows 7 Ultimate N 6.1\x00"
29
29
  end
30
30
 
31
31
  smb_header :smb_header
@@ -6,24 +6,42 @@ module RubySMB
6
6
  # Extends the {RubySMB::SMB1::DataBlock} to include padding methods
7
7
  # that all Trans2 DataBlocks will need to handle proper byte alignment.
8
8
  class DataBlock < RubySMB::SMB1::DataBlock
9
+ # Controls whether the padding fields will be used
10
+ # @!attribute [rw] enable_padding
11
+ # @return [Boolean]
12
+ attr_accessor :enable_padding
13
+
14
+ def initialize_instance
15
+ super
16
+ @enable_padding = true
17
+ end
18
+
9
19
  private
10
20
 
11
21
  # Determines the correct length for the padding in front of
12
22
  # #trans2_parameters. It should always force a 4-byte alignment.
13
23
  def pad1_length
14
- if self.respond_to?(:name)
15
- offset = (name.abs_offset + 1) % 4
24
+ if enable_padding
25
+ if self.respond_to?(:name)
26
+ offset = (name.abs_offset + 1) % 4
27
+ else
28
+ offset = (byte_count.abs_offset + 2) % 4
29
+ end
30
+ (4 - offset) % 4
16
31
  else
17
- offset = (byte_count.abs_offset + 2) % 4
32
+ 0
18
33
  end
19
- (4 - offset) % 4
20
34
  end
21
35
 
22
36
  # Determines the correct length for the padding in front of
23
37
  # #trans2_data. It should always force a 4-byte alignment.
24
38
  def pad2_length
25
- offset = (trans2_parameters.abs_offset + trans2_parameters.length) % 4
26
- (4 - offset) % 4
39
+ if enable_padding
40
+ offset = (trans2_parameters.abs_offset + trans2_parameters.length) % 4
41
+ (4 - offset) % 4
42
+ else
43
+ 0
44
+ end
27
45
  end
28
46
  end
29
47
  end
@@ -20,7 +20,7 @@ module RubySMB
20
20
  open2_open_mode :open_mode, label: 'Open Mode'
21
21
  uint32 :allocation_size, label: 'Allocation Size'
22
22
  array :reserved2, initial_length: 5 do
23
- uint16 value: 0x0000
23
+ uint16 initial_value: 0x0000
24
24
  end
25
25
  stringz :filename, label: 'Filename'
26
26
 
@@ -13,16 +13,16 @@ module RubySMB
13
13
  uint16 :max_parameter_count, label: 'Max Parameter Count(bytes)'
14
14
  uint16 :max_data_count, label: 'Max Data Count(bytes)'
15
15
  uint8 :max_setup_count, label: 'Max Setup Count'
16
- uint8 :reserved, label: 'Reserved Space', value: 0x00
16
+ uint8 :reserved, label: 'Reserved Space', initial_value: 0x00
17
17
  trans2_flags :flags
18
18
  uint32 :timeout, label: 'Timeout', initial_value: 0x00000000
19
- uint16 :reserved2, label: 'Reserved Space', value: 0x00
20
- uint16 :parameter_count, label: 'Parameter Count(bytes)', value: lambda {self.parent.data_block.trans2_parameters.length}
21
- uint16 :parameter_offset, label: 'Parameter Offset', value: lambda {self.parent.data_block.trans2_parameters.abs_offset}
22
- uint16 :data_count, label: 'Data Count(bytes)', value: lambda {self.parent.data_block.trans2_data.length}
23
- uint16 :data_offset, label: 'Data Offset', value: lambda {self.parent.data_block.trans2_data.abs_offset}
24
- uint8 :setup_count, label: 'Setup Count', value: lambda {setup.length}
25
- uint8 :reserved3, label: 'Reserved Space', value: 0x00
19
+ uint16 :reserved2, label: 'Reserved Space', initial_value: 0x00
20
+ uint16 :parameter_count, label: 'Parameter Count(bytes)', initial_value: lambda {self.parent.data_block.trans2_parameters.length}
21
+ uint16 :parameter_offset, label: 'Parameter Offset', initial_value: lambda {self.parent.data_block.trans2_parameters.abs_offset}
22
+ uint16 :data_count, label: 'Data Count(bytes)', initial_value: lambda {self.parent.data_block.trans2_data.length}
23
+ uint16 :data_offset, label: 'Data Offset', initial_value: lambda {self.parent.data_block.trans2_data.abs_offset}
24
+ uint8 :setup_count, label: 'Setup Count', initial_value: lambda {setup.length}
25
+ uint8 :reserved3, label: 'Reserved Space', initial_value: 0x00
26
26
 
27
27
  array :setup, type: :uint16, initial_length: 0
28
28
  end
@@ -10,11 +10,11 @@ module RubySMB
10
10
  class ParameterBlock < RubySMB::SMB1::ParameterBlock
11
11
  uint16 :total_parameter_count, label: 'Total Parameter Count(bytes)'
12
12
  uint16 :total_data_count, label: 'Total Data Count(bytes)'
13
- uint16 :parameter_count, label: 'Parameter Count(bytes)', value: lambda {self.parent.data_block.trans2_parameters.length}
14
- uint16 :parameter_offset, label: 'Parameter Offset', value: lambda {self.parent.data_block.trans2_parameters.abs_offset}
13
+ uint16 :parameter_count, label: 'Parameter Count(bytes)', initial_value: lambda {self.parent.data_block.trans2_parameters.length}
14
+ uint16 :parameter_offset, label: 'Parameter Offset', initial_value: lambda {self.parent.data_block.trans2_parameters.abs_offset}
15
15
  uint16 :parameter_displacement, label: 'Parameter Displacement'
16
- uint16 :data_count, label: 'Data Count(bytes)', value: lambda {self.parent.data_block.trans2_data.length}
17
- uint16 :data_offset, label: 'Data Offset', value: lambda {self.parent.data_block.trans2_data.abs_offset}
16
+ uint16 :data_count, label: 'Data Count(bytes)', initial_value: lambda {self.parent.data_block.trans2_data.length}
17
+ uint16 :data_offset, label: 'Data Offset', initial_value: lambda {self.parent.data_block.trans2_data.abs_offset}
18
18
  uint16 :data_displacement, label: 'Data Displacement'
19
19
  uint16 :fid, label: 'FileID'
20
20
  end
@@ -10,15 +10,15 @@ module RubySMB
10
10
  class ParameterBlock < RubySMB::SMB1::ParameterBlock
11
11
  uint16 :total_parameter_count, label: 'Total Parameter Count(bytes)'
12
12
  uint16 :total_data_count, label: 'Total Data Count(bytes)'
13
- uint16 :reserved, label: 'Reserved Space', value: 0x00
14
- uint16 :parameter_count, label: 'Parameter Count(bytes)', value: lambda {self.parent.data_block.trans2_parameters.length}
15
- uint16 :parameter_offset, label: 'Parameter Offset', value: lambda {self.parent.data_block.trans2_parameters.abs_offset}
13
+ uint16 :reserved, label: 'Reserved Space', initial_value: 0x00
14
+ uint16 :parameter_count, label: 'Parameter Count(bytes)', initial_value: lambda {self.parent.data_block.trans2_parameters.length}
15
+ uint16 :parameter_offset, label: 'Parameter Offset', initial_value: lambda {self.parent.data_block.trans2_parameters.abs_offset}
16
16
  uint16 :parameter_displacement, label: 'Parameter Displacement'
17
- uint16 :data_count, label: 'Data Count(bytes)', value: lambda {self.parent.data_block.trans2_data.length}
18
- uint16 :data_offset, label: 'Data Offset', value: lambda {self.parent.data_block.trans2_data.abs_offset}
17
+ uint16 :data_count, label: 'Data Count(bytes)', initial_value: lambda {self.parent.data_block.trans2_data.length}
18
+ uint16 :data_offset, label: 'Data Offset', initial_value: lambda {self.parent.data_block.trans2_data.abs_offset}
19
19
  uint16 :data_displacement, label: 'Data Displacement'
20
- uint8 :setup_count, label: 'Setup Count', value: lambda {setup.length}
21
- uint8 :reserved2, label: 'Reserved Space', value: 0x00
20
+ uint8 :setup_count, label: 'Setup Count', initial_value: lambda {setup.length}
21
+ uint8 :reserved2, label: 'Reserved Space', initial_value: 0x00
22
22
 
23
23
  array :setup, type: :uint16, initial_length: 0
24
24
  end
@@ -6,7 +6,7 @@ module RubySMB
6
6
  class ParameterBlock < BinData::Record
7
7
  endian :little
8
8
 
9
- uint8 :word_count, label: 'Word Count', value: -> { calculate_word_count }
9
+ uint8 :word_count, label: 'Word Count', initial_value: -> { calculate_word_count }
10
10
 
11
11
  # Class method to stub word count calculation during
12
12
  # lazy evaluation.
@@ -9,13 +9,13 @@ module RubySMB
9
9
  nt_status :nt_status, label: 'NTStatus Code'
10
10
  header_flags :flags
11
11
  header_flags2 :flags2
12
- bit16 :pid_high, label: 'PID High Bytes'
12
+ uint16 :pid_high, label: 'PID High Bytes'
13
13
  string :security_features, label: 'Security Features', length: 8
14
14
  bit16 :reserved, label: 'Reserved'
15
15
  bit16 :tid, label: 'Tree ID'
16
- bit16 :pid_low, label: 'PID Low Bytes'
16
+ uint16 :pid_low, label: 'PID Low Bytes'
17
17
  bit16 :uid, label: 'User ID'
18
- bit16 :mid, label: 'Multiplex ID'
18
+ uint16 :mid, label: 'Multiplex ID'
19
19
  end
20
20
  end
21
21
  end
@@ -4,12 +4,12 @@ module RubySMB
4
4
  # The SessionsFlags bit-field for a {RubySMB::SMB2::Packet::SessionSetupResponse}
5
5
  class SessionFlags < BinData::Record
6
6
  endian :little
7
- bit6 :reserved3, label: 'Reserved', value: 0
7
+ bit6 :reserved3, label: 'Reserved', initial_value: 0
8
8
  bit1 :null, label: 'ASYNC Command', initial_value: 0
9
9
  bit1 :guest, label: 'Is Guest?', initial_value: 0
10
10
  resume_byte_alignment
11
11
  # byte border
12
- uint8 :reserved1, label: 'Reserved', value: 0
12
+ uint8 :reserved1, label: 'Reserved', initial_value: 0
13
13
 
14
14
  end
15
15
  end
@@ -5,15 +5,15 @@ module RubySMB
5
5
  # [2.2.1.2 SMB2 Packet Header - SYNC](https://msdn.microsoft.com/en-us/library/cc246529.aspx)
6
6
  class Smb2HeaderFlags < BinData::Record
7
7
  endian :little
8
- bit4 :reserved3, label: 'Reserved', value: 0
8
+ bit4 :reserved3, label: 'Reserved', initial_value: 0
9
9
  bit1 :signed, label: 'Packet Signed'
10
10
  bit1 :related_operations, label: 'Chained Request'
11
- bit1 :async_command, label: 'ASYNC Command', value: 0
11
+ bit1 :async_command, label: 'ASYNC Command', initial_value: 0
12
12
  bit1 :reply, label: 'Response'
13
13
  # byte border
14
- uint16 :reserved2, label: 'Reserved', value: 0
14
+ uint16 :reserved2, label: 'Reserved', initial_value: 0
15
15
  # byte border
16
- bit2 :reserved1, label: 'Reserved', value: 0
16
+ bit2 :reserved1, label: 'Reserved', initial_value: 0
17
17
  bit1 :replay_operation, label: 'Replay Operation'
18
18
  bit1 :dfs_operation, label: 'DFS Operation'
19
19
  resume_byte_alignment
@@ -18,7 +18,7 @@ module RubySMB
18
18
  file_time :system_time, label: 'Server System Time'
19
19
  file_time :server_start_time, label: 'Server Start Time'
20
20
  uint16 :security_buffer_offset, label: 'Offset to Security Buffer'
21
- uint16 :security_buffer_length, label: 'Security Buffer Length', value: -> { security_buffer.length }
21
+ uint16 :security_buffer_length, label: 'Security Buffer Length', initial_value: -> { security_buffer.length }
22
22
  uint32 :negotiate_context_offset, label: 'Offset to Negotiate Context'
23
23
  string :security_buffer, label: 'Security Buffer', read_length: :security_buffer_length
24
24
 
@@ -10,7 +10,7 @@ module RubySMB
10
10
  uint16 :structure_size, label: 'Structure Size', initial_value: 9
11
11
  uint16 :flags, label: 'Flags', initial_value: 0x00
12
12
  uint16 :path_offset, label: 'Path Offset', initial_value: 0x48
13
- uint16 :path_length, label: 'Path Length', value: lambda { self.path.length }
13
+ uint16 :path_length, label: 'Path Length', initial_value: lambda { self.path.length }
14
14
  string :path, label: 'Path Buffer'
15
15
 
16
16
  def initialize_instance
@@ -1,3 +1,3 @@
1
1
  module RubySMB
2
- VERSION = '0.0.17'
2
+ VERSION = '0.0.18'
3
3
  end
@@ -666,7 +666,7 @@ RSpec.describe RubySMB::Client do
666
666
  raw = request1.to_binary_s
667
667
  adjusted_request = RubySMB::SMB1::Packet::SessionSetupRequest.read(raw)
668
668
  adjusted_request.smb_header.security_features = [smb1_client.sequence_counter].pack('Q<')
669
- expect(OpenSSL::Digest::MD5).to receive(:digest).with(smb1_client.session_key + adjusted_request.to_binary_s).and_return(fake_sig)
669
+ expect(OpenSSL::Digest::MD5).to receive(:digest).and_return(fake_sig)
670
670
  expect(smb1_client.smb1_sign(request1).smb_header.security_features).to eq fake_sig
671
671
  end
672
672
  end
@@ -50,7 +50,7 @@ RSpec.describe RubySMB::SMB1::SMBHeader do
50
50
 
51
51
  describe 'pid_high' do
52
52
  it 'should be a 16-bit field per the SMB spec' do
53
- expect(header.pid_high).to be_a BinData::Bit16
53
+ expect(header.pid_high).to be_a BinData::Uint16le
54
54
  end
55
55
  end
56
56
 
@@ -74,7 +74,7 @@ RSpec.describe RubySMB::SMB1::SMBHeader do
74
74
 
75
75
  describe 'pid_low' do
76
76
  it 'should be a 16-bit field per the SMB spec' do
77
- expect(header.pid_low).to be_a BinData::Bit16
77
+ expect(header.pid_low).to be_a BinData::Uint16le
78
78
  end
79
79
  end
80
80
 
@@ -86,7 +86,7 @@ RSpec.describe RubySMB::SMB1::SMBHeader do
86
86
 
87
87
  describe 'mid' do
88
88
  it 'should be a 16-bit field per the SMB spec' do
89
- expect(header.mid).to be_a BinData::Bit16
89
+ expect(header.mid).to be_a BinData::Uint16le
90
90
  end
91
91
  end
92
92
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_smb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Maloney
@@ -89,7 +89,7 @@ cert_chain:
89
89
  G+Hmcg1v810agasPdoydE0RTVZgEOOMoQ07qu7JFXVWZ9ZQpHT7qJATWL/b2csFG
90
90
  8mVuTXnyJOKRJA==
91
91
  -----END CERTIFICATE-----
92
- date: 2017-05-24 00:00:00.000000000 Z
92
+ date: 2017-05-30 00:00:00.000000000 Z
93
93
  dependencies:
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: redcarpet
metadata.gz.sig CHANGED
Binary file