ruby_smb 0.0.20 → 0.0.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +2 -3
- data/examples/pipes.rb +45 -0
- data/lib/ruby_smb/client.rb +25 -3
- data/lib/ruby_smb/client/negotiation.rb +10 -3
- data/lib/ruby_smb/nbss/session_header.rb +3 -3
- data/lib/ruby_smb/smb1.rb +1 -0
- data/lib/ruby_smb/smb1/bit_field.rb +1 -0
- data/lib/ruby_smb/smb1/bit_field/trans_flags.rb +15 -0
- data/lib/ruby_smb/smb1/commands.rb +1 -0
- data/lib/ruby_smb/smb1/packet.rb +1 -0
- data/lib/ruby_smb/smb1/packet/trans.rb +16 -0
- data/lib/ruby_smb/smb1/packet/trans/data_block.rb +49 -0
- data/lib/ruby_smb/smb1/packet/trans/peek_nmpipe_request.rb +24 -0
- data/lib/ruby_smb/smb1/packet/trans/peek_nmpipe_response.rb +59 -0
- data/lib/ruby_smb/smb1/packet/trans/request.rb +50 -0
- data/lib/ruby_smb/smb1/packet/trans/response.rb +46 -0
- data/lib/ruby_smb/smb1/packet/trans/subcommands.rb +11 -0
- data/lib/ruby_smb/smb1/packet/trans2/find_next2_response.rb +1 -1
- data/lib/ruby_smb/smb1/pipe.rb +65 -0
- data/lib/ruby_smb/smb1/tree.rb +8 -1
- data/lib/ruby_smb/smb2.rb +1 -0
- data/lib/ruby_smb/smb2/file.rb +6 -6
- data/lib/ruby_smb/smb2/packet/tree_disconnect_request.rb +1 -0
- data/lib/ruby_smb/smb2/pipe.rb +69 -0
- data/lib/ruby_smb/smb2/tree.rb +11 -1
- data/lib/ruby_smb/version.rb +1 -1
- data/spec/lib/ruby_smb/nbss/session_header_spec.rb +4 -4
- data/spec/lib/ruby_smb/smb1/bit_field/trans_flags_spec.rb +26 -0
- data/spec/lib/ruby_smb/smb1/packet/trans/peek_nmpipe_request_spec.rb +47 -0
- data/spec/lib/ruby_smb/smb1/packet/trans/peek_nmpipe_response_spec.rb +31 -0
- data/spec/lib/ruby_smb/smb1/packet/trans/request_spec.rb +94 -0
- data/spec/lib/ruby_smb/smb1/packet/trans/response_spec.rb +85 -0
- data/spec/lib/ruby_smb/smb1/packet/trans2/open2_response_spec.rb +1 -1
- data/spec/lib/ruby_smb/smb1/pipe_spec.rb +65 -0
- data/spec/lib/ruby_smb/smb2/pipe_spec.rb +64 -0
- metadata +27 -2
- metadata.gz.sig +0 -0
@@ -0,0 +1,85 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe RubySMB::SMB1::Packet::Trans::Response do
|
4
|
+
subject(:packet) { described_class.new }
|
5
|
+
|
6
|
+
describe '#smb_header' do
|
7
|
+
subject(:header) { packet.smb_header }
|
8
|
+
|
9
|
+
it 'is a standard SMB Header' do
|
10
|
+
expect(header).to be_a RubySMB::SMB1::SMBHeader
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should have the command set to SMB_COM_NEGOTIATE' do
|
14
|
+
expect(header.command).to eq RubySMB::SMB1::Commands::SMB_COM_TRANSACTION
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should have the response flag set' do
|
18
|
+
expect(header.flags.reply).to eq 1
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe '#parameter_block' do
|
23
|
+
subject(:parameter_block) { packet.parameter_block }
|
24
|
+
|
25
|
+
it 'is a standard ParameterBlock' do
|
26
|
+
expect(parameter_block).to be_a RubySMB::SMB1::ParameterBlock
|
27
|
+
end
|
28
|
+
|
29
|
+
it { is_expected.to respond_to :total_parameter_count }
|
30
|
+
it { is_expected.to respond_to :total_data_count }
|
31
|
+
it { is_expected.to respond_to :parameter_count }
|
32
|
+
it { is_expected.to respond_to :parameter_offset }
|
33
|
+
it { is_expected.to respond_to :parameter_displacement }
|
34
|
+
it { is_expected.to respond_to :data_count }
|
35
|
+
it { is_expected.to respond_to :data_offset }
|
36
|
+
it { is_expected.to respond_to :parameter_displacement }
|
37
|
+
it { is_expected.to respond_to :setup_count }
|
38
|
+
|
39
|
+
describe 'parameter_count' do
|
40
|
+
it 'is a count of bytes in the data_block trans_parameters field' do
|
41
|
+
packet.data_block.trans_parameters = "\x00\x01\x02\x03"
|
42
|
+
expect(parameter_block.parameter_count).to eq 4
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe 'parameter_offset' do
|
47
|
+
it ' contains the absolute_offset to the data_block trans_parameters field' do
|
48
|
+
expect(parameter_block.parameter_offset).to eq packet.data_block.trans_parameters.abs_offset
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe 'data_count' do
|
53
|
+
it 'is a count of bytes in the data_block trans_data field' do
|
54
|
+
packet.data_block.trans_data = "\x00\x01\x02\x03"
|
55
|
+
expect(parameter_block.data_count).to eq 4
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe 'data_offset' do
|
60
|
+
it 'contains the absolute_offset to the data_block trans_data field' do
|
61
|
+
expect(parameter_block.data_offset).to eq packet.data_block.trans_data.abs_offset
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
describe '#data_block' do
|
67
|
+
subject(:data_block) { packet.data_block }
|
68
|
+
|
69
|
+
it 'is a Trans DataBlock' do
|
70
|
+
expect(data_block).to be_a RubySMB::SMB1::Packet::Trans::DataBlock
|
71
|
+
end
|
72
|
+
|
73
|
+
it { is_expected.to respond_to :trans_parameters }
|
74
|
+
it { is_expected.to respond_to :trans_data }
|
75
|
+
|
76
|
+
it 'should keep #trans_parameters 4-byte aligned' do
|
77
|
+
expect(data_block.trans_parameters.abs_offset % 4).to eq 0
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should keep #trans_data 4-byte aligned' do
|
81
|
+
data_block.trans_parameters = 'a'
|
82
|
+
expect(data_block.trans_data.abs_offset % 4).to eq 0
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -10,7 +10,7 @@ RSpec.describe RubySMB::SMB1::Packet::Trans2::Open2Response do
|
|
10
10
|
expect(header).to be_a RubySMB::SMB1::SMBHeader
|
11
11
|
end
|
12
12
|
|
13
|
-
it 'should have the command set to
|
13
|
+
it 'should have the command set to SMB_COM_TRANSACTION2' do
|
14
14
|
expect(header.command).to eq RubySMB::SMB1::Commands::SMB_COM_TRANSACTION2
|
15
15
|
end
|
16
16
|
|
@@ -0,0 +1,65 @@
|
|
1
|
+
RSpec.describe RubySMB::SMB1::Pipe do
|
2
|
+
|
3
|
+
let(:peek_nmpipe_response) {
|
4
|
+
packet = RubySMB::SMB1::Packet::Trans::PeekNmpipeResponse.new
|
5
|
+
packet.data_block.trans_parameters.read("\x10\x20\x00\x00\x03\x00")
|
6
|
+
packet
|
7
|
+
}
|
8
|
+
|
9
|
+
describe RubySMB::SMB1::Pipe do
|
10
|
+
it { expect(described_class).to be < RubySMB::SMB1::File }
|
11
|
+
end
|
12
|
+
|
13
|
+
let(:dispatcher) { RubySMB::Dispatcher::Socket.new(double('socket')) }
|
14
|
+
let(:client) { RubySMB::Client.new(dispatcher, username: 'msfadmin', password: 'msfadmin') }
|
15
|
+
let(:connect_response) {
|
16
|
+
packet = RubySMB::SMB1::Packet::TreeConnectResponse.new
|
17
|
+
packet.smb_header.tid = 2051
|
18
|
+
packet.parameter_block.guest_access_rights.read("\xff\x01\x1f\x00")
|
19
|
+
packet.parameter_block.access_rights.read("\xff\x01\x1f\x01")
|
20
|
+
packet
|
21
|
+
}
|
22
|
+
let(:tree) { RubySMB::SMB1::Tree.new(client: client, share: '\\1.2.3.4\IPC$', response: connect_response) }
|
23
|
+
let(:nt_create_andx_response) {
|
24
|
+
response = RubySMB::SMB1::Packet::NtCreateAndxResponse.new
|
25
|
+
response.parameter_block.ext_file_attributes = { normal: 1 }
|
26
|
+
response.parameter_block.fid = 0x4000
|
27
|
+
response.parameter_block.last_access_time = DateTime.parse("2017-09-20T1:1:1")
|
28
|
+
response.parameter_block.last_change_time = DateTime.parse("2017-09-22T2:2:2")
|
29
|
+
response.parameter_block.last_write_time = DateTime.parse("2017-09-25T3:3:3")
|
30
|
+
response.parameter_block.end_of_file = 53
|
31
|
+
response.parameter_block.allocation_size = 4096
|
32
|
+
response
|
33
|
+
}
|
34
|
+
let(:filename) { 'msf-pipe' }
|
35
|
+
|
36
|
+
subject(:pipe) {
|
37
|
+
described_class.new(tree: tree, response: nt_create_andx_response, name: filename)
|
38
|
+
}
|
39
|
+
|
40
|
+
describe '#peek_available' do
|
41
|
+
it 'reads the correct number of bytes available' do
|
42
|
+
allow(pipe).to receive(:peek) { peek_nmpipe_response }
|
43
|
+
allow(pipe).to receive(:peek_available) { pipe.peek.data_block.trans_parameters.read_data_available }
|
44
|
+
expect(pipe.peek_available).to eq(0x2010)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe '#peek_state' do
|
49
|
+
it 'reads the correct state of the pipe' do
|
50
|
+
allow(pipe).to receive(:peek) { peek_nmpipe_response }
|
51
|
+
allow(pipe).to receive(:peek_state) { pipe.peek.data_block.trans_parameters.pipe_state }
|
52
|
+
expect(pipe.peek_state).to eq(RubySMB::SMB1::Pipe::STATUS_OK)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe '#is_connected?' do
|
57
|
+
it 'identifies that the pipe is connected from the status' do
|
58
|
+
allow(pipe).to receive(:peek) { peek_nmpipe_response }
|
59
|
+
allow(pipe).to receive(:peek_state) { pipe.peek.data_block.trans_parameters.pipe_state }
|
60
|
+
allow(pipe).to receive(:is_connected?) { pipe.peek_state == RubySMB::SMB1::Pipe::STATUS_OK }
|
61
|
+
expect(pipe.is_connected?).to eq(true)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
RSpec.describe RubySMB::SMB2::Pipe do
|
2
|
+
|
3
|
+
let(:sock) { double('Socket', peeraddr: '192.168.1.5') }
|
4
|
+
let(:dispatcher) { RubySMB::Dispatcher::Socket.new(sock) }
|
5
|
+
|
6
|
+
let(:client) { RubySMB::Client.new(dispatcher, username: 'msfadmin', password: 'msfadmin') }
|
7
|
+
let(:tree_id) { 2049 }
|
8
|
+
let(:path) { '\\192.168.1.1\IPC$' }
|
9
|
+
let(:connect_response) {
|
10
|
+
packet = RubySMB::SMB2::Packet::TreeConnectResponse.new
|
11
|
+
packet.smb2_header.tree_id = tree_id
|
12
|
+
packet.maximal_access.read("\xff\x01\x1f\x00")
|
13
|
+
packet.share_type = 0x01
|
14
|
+
packet
|
15
|
+
}
|
16
|
+
|
17
|
+
let(:tree) { RubySMB::SMB2::Tree.new(client: client, share: path, response: connect_response) }
|
18
|
+
let(:file_id) { RubySMB::Field::Smb2Fileid.read('\x6d\x01\x00\x00\x00\x00\x00\x00\x\x01\x00\x00\x00\xff\xff\xff\xff') }
|
19
|
+
let(:time) { DateTime.now }
|
20
|
+
let(:create_response) {
|
21
|
+
RubySMB::SMB2::Packet::CreateResponse.new(
|
22
|
+
file_id: file_id,
|
23
|
+
end_of_file: 108,
|
24
|
+
allocation_size: 112,
|
25
|
+
last_access: time,
|
26
|
+
last_change: time,
|
27
|
+
last_write: time
|
28
|
+
)
|
29
|
+
}
|
30
|
+
|
31
|
+
let(:ioctl_response) {
|
32
|
+
packet = RubySMB::SMB2::Packet::IoctlResponse.new
|
33
|
+
packet.buffer = "\x03\x00\x00\x00" + "\x10\x20\x30\x40" + "\x00\x00\x00\x00" + "\x00\x00\x00\x00"
|
34
|
+
packet
|
35
|
+
}
|
36
|
+
|
37
|
+
subject(:pipe) { described_class.new(name: 'msf-pipe', response: create_response, tree: tree) }
|
38
|
+
|
39
|
+
describe '#peek_available' do
|
40
|
+
it 'reads the correct number of bytes available' do
|
41
|
+
allow(pipe).to receive(:peek) { ioctl_response }
|
42
|
+
allow(pipe).to receive(:peek_available) { pipe.peek.buffer.unpack('VV')[1] }
|
43
|
+
expect(pipe.peek_available).to eq(0x40302010)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe '#peek_state' do
|
48
|
+
it 'reads the correct state of the pipe' do
|
49
|
+
allow(pipe).to receive(:peek) { ioctl_response }
|
50
|
+
allow(pipe).to receive(:peek_state) { pipe.peek.buffer.unpack('V')[0] }
|
51
|
+
expect(pipe.peek_state).to eq(RubySMB::SMB2::Pipe::STATUS_CONNECTED)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe '#is_connected?' do
|
56
|
+
it 'identifies that the pipe is connected from the status' do
|
57
|
+
allow(pipe).to receive(:peek) { ioctl_response }
|
58
|
+
allow(pipe).to receive(:peek_state) { pipe.peek.buffer.unpack('V')[0] }
|
59
|
+
allow(pipe).to receive(:is_connected?) { pipe.peek_state == RubySMB::SMB2::Pipe::STATUS_CONNECTED }
|
60
|
+
expect(pipe.is_connected?).to eq(true)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
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.
|
4
|
+
version: 0.0.21
|
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: 2018-
|
92
|
+
date: 2018-03-05 00:00:00.000000000 Z
|
93
93
|
dependencies:
|
94
94
|
- !ruby/object:Gem::Dependency
|
95
95
|
name: redcarpet
|
@@ -229,6 +229,7 @@ files:
|
|
229
229
|
- examples/negotiate.rb
|
230
230
|
- examples/negotiate_with_netbios_service.rb
|
231
231
|
- examples/net_share_enum_all.rb
|
232
|
+
- examples/pipes.rb
|
232
233
|
- examples/read_file.rb
|
233
234
|
- examples/rename_file.rb
|
234
235
|
- examples/tree_connect.rb
|
@@ -310,6 +311,7 @@ files:
|
|
310
311
|
- lib/ruby_smb/smb1/bit_field/smb_file_attributes.rb
|
311
312
|
- lib/ruby_smb/smb1/bit_field/smb_nmpipe_status.rb
|
312
313
|
- lib/ruby_smb/smb1/bit_field/trans2_flags.rb
|
314
|
+
- lib/ruby_smb/smb1/bit_field/trans_flags.rb
|
313
315
|
- lib/ruby_smb/smb1/bit_field/tree_connect_flags.rb
|
314
316
|
- lib/ruby_smb/smb1/commands.rb
|
315
317
|
- lib/ruby_smb/smb1/create_actions.rb
|
@@ -342,6 +344,13 @@ files:
|
|
342
344
|
- lib/ruby_smb/smb1/packet/session_setup_legacy_response.rb
|
343
345
|
- lib/ruby_smb/smb1/packet/session_setup_request.rb
|
344
346
|
- lib/ruby_smb/smb1/packet/session_setup_response.rb
|
347
|
+
- lib/ruby_smb/smb1/packet/trans.rb
|
348
|
+
- lib/ruby_smb/smb1/packet/trans/data_block.rb
|
349
|
+
- lib/ruby_smb/smb1/packet/trans/peek_nmpipe_request.rb
|
350
|
+
- lib/ruby_smb/smb1/packet/trans/peek_nmpipe_response.rb
|
351
|
+
- lib/ruby_smb/smb1/packet/trans/request.rb
|
352
|
+
- lib/ruby_smb/smb1/packet/trans/response.rb
|
353
|
+
- lib/ruby_smb/smb1/packet/trans/subcommands.rb
|
345
354
|
- lib/ruby_smb/smb1/packet/trans2.rb
|
346
355
|
- lib/ruby_smb/smb1/packet/trans2/data_block.rb
|
347
356
|
- lib/ruby_smb/smb1/packet/trans2/find_first2_request.rb
|
@@ -365,6 +374,7 @@ files:
|
|
365
374
|
- lib/ruby_smb/smb1/packet/write_andx_request.rb
|
366
375
|
- lib/ruby_smb/smb1/packet/write_andx_response.rb
|
367
376
|
- lib/ruby_smb/smb1/parameter_block.rb
|
377
|
+
- lib/ruby_smb/smb1/pipe.rb
|
368
378
|
- lib/ruby_smb/smb1/resource_type.rb
|
369
379
|
- lib/ruby_smb/smb1/smb_header.rb
|
370
380
|
- lib/ruby_smb/smb1/tree.rb
|
@@ -411,6 +421,7 @@ files:
|
|
411
421
|
- lib/ruby_smb/smb2/packet/tree_disconnect_response.rb
|
412
422
|
- lib/ruby_smb/smb2/packet/write_request.rb
|
413
423
|
- lib/ruby_smb/smb2/packet/write_response.rb
|
424
|
+
- lib/ruby_smb/smb2/pipe.rb
|
414
425
|
- lib/ruby_smb/smb2/smb2_header.rb
|
415
426
|
- lib/ruby_smb/smb2/tree.rb
|
416
427
|
- lib/ruby_smb/version.rb
|
@@ -469,6 +480,7 @@ files:
|
|
469
480
|
- spec/lib/ruby_smb/smb1/bit_field/smb_file_attributes_spec.rb
|
470
481
|
- spec/lib/ruby_smb/smb1/bit_field/smb_nmpipe_status_spec.rb
|
471
482
|
- spec/lib/ruby_smb/smb1/bit_field/trans2_flags_spec.rb
|
483
|
+
- spec/lib/ruby_smb/smb1/bit_field/trans_flags_spec.rb
|
472
484
|
- spec/lib/ruby_smb/smb1/bit_field/tree_connect_flags_spec.rb
|
473
485
|
- spec/lib/ruby_smb/smb1/data_block_spec.rb
|
474
486
|
- spec/lib/ruby_smb/smb1/dialect_spec.rb
|
@@ -495,6 +507,10 @@ files:
|
|
495
507
|
- spec/lib/ruby_smb/smb1/packet/session_setup_legacy_response_spec.rb
|
496
508
|
- spec/lib/ruby_smb/smb1/packet/session_setup_request_spec.rb
|
497
509
|
- spec/lib/ruby_smb/smb1/packet/session_setup_response_spec.rb
|
510
|
+
- spec/lib/ruby_smb/smb1/packet/trans/peek_nmpipe_request_spec.rb
|
511
|
+
- spec/lib/ruby_smb/smb1/packet/trans/peek_nmpipe_response_spec.rb
|
512
|
+
- spec/lib/ruby_smb/smb1/packet/trans/request_spec.rb
|
513
|
+
- spec/lib/ruby_smb/smb1/packet/trans/response_spec.rb
|
498
514
|
- spec/lib/ruby_smb/smb1/packet/trans2/find_first2_request_spec.rb
|
499
515
|
- spec/lib/ruby_smb/smb1/packet/trans2/find_first2_response_spec.rb
|
500
516
|
- spec/lib/ruby_smb/smb1/packet/trans2/find_information_level/find_file_full_directory_info_spec.rb
|
@@ -514,6 +530,7 @@ files:
|
|
514
530
|
- spec/lib/ruby_smb/smb1/packet/write_andx_request_spec.rb
|
515
531
|
- spec/lib/ruby_smb/smb1/packet/write_andx_response_spec.rb
|
516
532
|
- spec/lib/ruby_smb/smb1/parameter_block_spec.rb
|
533
|
+
- spec/lib/ruby_smb/smb1/pipe_spec.rb
|
517
534
|
- spec/lib/ruby_smb/smb1/smb_header_spec.rb
|
518
535
|
- spec/lib/ruby_smb/smb1/tree_spec.rb
|
519
536
|
- spec/lib/ruby_smb/smb2/bit_field/directory_access_mask_spec.rb
|
@@ -551,6 +568,7 @@ files:
|
|
551
568
|
- spec/lib/ruby_smb/smb2/packet/tree_disconnect_response_spec.rb
|
552
569
|
- spec/lib/ruby_smb/smb2/packet/write_request_spec.rb
|
553
570
|
- spec/lib/ruby_smb/smb2/packet/write_response_spec.rb
|
571
|
+
- spec/lib/ruby_smb/smb2/pipe_spec.rb
|
554
572
|
- spec/lib/ruby_smb/smb2/smb2_header_spec.rb
|
555
573
|
- spec/lib/ruby_smb/smb2/tree_spec.rb
|
556
574
|
- spec/lib/ruby_smb_spec.rb
|
@@ -636,6 +654,7 @@ test_files:
|
|
636
654
|
- spec/lib/ruby_smb/smb1/bit_field/smb_file_attributes_spec.rb
|
637
655
|
- spec/lib/ruby_smb/smb1/bit_field/smb_nmpipe_status_spec.rb
|
638
656
|
- spec/lib/ruby_smb/smb1/bit_field/trans2_flags_spec.rb
|
657
|
+
- spec/lib/ruby_smb/smb1/bit_field/trans_flags_spec.rb
|
639
658
|
- spec/lib/ruby_smb/smb1/bit_field/tree_connect_flags_spec.rb
|
640
659
|
- spec/lib/ruby_smb/smb1/data_block_spec.rb
|
641
660
|
- spec/lib/ruby_smb/smb1/dialect_spec.rb
|
@@ -662,6 +681,10 @@ test_files:
|
|
662
681
|
- spec/lib/ruby_smb/smb1/packet/session_setup_legacy_response_spec.rb
|
663
682
|
- spec/lib/ruby_smb/smb1/packet/session_setup_request_spec.rb
|
664
683
|
- spec/lib/ruby_smb/smb1/packet/session_setup_response_spec.rb
|
684
|
+
- spec/lib/ruby_smb/smb1/packet/trans/peek_nmpipe_request_spec.rb
|
685
|
+
- spec/lib/ruby_smb/smb1/packet/trans/peek_nmpipe_response_spec.rb
|
686
|
+
- spec/lib/ruby_smb/smb1/packet/trans/request_spec.rb
|
687
|
+
- spec/lib/ruby_smb/smb1/packet/trans/response_spec.rb
|
665
688
|
- spec/lib/ruby_smb/smb1/packet/trans2/find_first2_request_spec.rb
|
666
689
|
- spec/lib/ruby_smb/smb1/packet/trans2/find_first2_response_spec.rb
|
667
690
|
- spec/lib/ruby_smb/smb1/packet/trans2/find_information_level/find_file_full_directory_info_spec.rb
|
@@ -681,6 +704,7 @@ test_files:
|
|
681
704
|
- spec/lib/ruby_smb/smb1/packet/write_andx_request_spec.rb
|
682
705
|
- spec/lib/ruby_smb/smb1/packet/write_andx_response_spec.rb
|
683
706
|
- spec/lib/ruby_smb/smb1/parameter_block_spec.rb
|
707
|
+
- spec/lib/ruby_smb/smb1/pipe_spec.rb
|
684
708
|
- spec/lib/ruby_smb/smb1/smb_header_spec.rb
|
685
709
|
- spec/lib/ruby_smb/smb1/tree_spec.rb
|
686
710
|
- spec/lib/ruby_smb/smb2/bit_field/directory_access_mask_spec.rb
|
@@ -718,6 +742,7 @@ test_files:
|
|
718
742
|
- spec/lib/ruby_smb/smb2/packet/tree_disconnect_response_spec.rb
|
719
743
|
- spec/lib/ruby_smb/smb2/packet/write_request_spec.rb
|
720
744
|
- spec/lib/ruby_smb/smb2/packet/write_response_spec.rb
|
745
|
+
- spec/lib/ruby_smb/smb2/pipe_spec.rb
|
721
746
|
- spec/lib/ruby_smb/smb2/smb2_header_spec.rb
|
722
747
|
- spec/lib/ruby_smb/smb2/tree_spec.rb
|
723
748
|
- spec/lib/ruby_smb_spec.rb
|
metadata.gz.sig
CHANGED
Binary file
|