rex-core 0.1.11 → 0.1.16
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.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.travis.yml +1 -1
- data/lib/rex/compat.rb +14 -1
- data/lib/rex/core/version.rb +1 -1
- data/lib/rex/file.rb +2 -2
- data/lib/rex/io/stream.rb +91 -31
- data/lib/rex/io/stream_abstraction.rb +4 -0
- data/lib/rex/sync/thread_safe.rb +1 -1
- data/rex-core.gemspec +7 -11
- metadata +94 -103
- metadata.gz.sig +0 -0
- data/bin/console +0 -14
- data/bin/setup +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 17110a74336ae634771add814eed9e60a711005641b6424a482d057bbb7314bd
|
4
|
+
data.tar.gz: 788d7cb8332f1cd817fbbf6de0da93ef7dbc92906f4c31706ca38de433812ef8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6873be6d3d89644c9285d06e6966aa05f0604b09564b865ebf9fd70339c99d9b3fb0320e92ebedc3e378983956faed6cb5089c69d1bb0fe6d751252d0bfc45ab
|
7
|
+
data.tar.gz: 678096caf324f23b4937f4607ed336c66ac7916fd7417197288b6c07ef70d18cc870b8780f5d119d74b2a1eb9d2d0274fe9df38b8033bcfa989b7c0d3be9bb0c
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.travis.yml
CHANGED
data/lib/rex/compat.rb
CHANGED
@@ -30,7 +30,7 @@ ENABLE_PROCESSED_INPUT = 1
|
|
30
30
|
# Platform detection
|
31
31
|
#
|
32
32
|
|
33
|
-
@@is_windows = @@is_cygwin = @@is_macosx = @@is_linux = @@is_bsdi = @@is_freebsd = @@is_netbsd = @@is_openbsd = @@is_java = false
|
33
|
+
@@is_windows = @@is_cygwin = @@is_macosx = @@is_linux = @@is_bsdi = @@is_freebsd = @@is_netbsd = @@is_openbsd = @@is_java = @@is_android = false
|
34
34
|
@@loaded_win32api = false
|
35
35
|
@@loaded_tempfile = false
|
36
36
|
@@loaded_fileutils = false
|
@@ -81,6 +81,11 @@ def self.is_java
|
|
81
81
|
@@is_java = (RUBY_PLATFORM =~ /java/) ? true : false
|
82
82
|
end
|
83
83
|
|
84
|
+
def self.is_android
|
85
|
+
return @@is_android if @@is_android
|
86
|
+
@@is_android = (RUBY_PLATFORM =~ /android/) ? true : false
|
87
|
+
end
|
88
|
+
|
84
89
|
def self.is_wow64
|
85
90
|
return false if not is_windows
|
86
91
|
is64 = false
|
@@ -127,6 +132,8 @@ def self.open_browser(url='http://google.com/')
|
|
127
132
|
Win32API.new("shell32.dll", "ShellExecute", ["PPPPPL"], "L").call(nil, "open", url, nil, nil, 0)
|
128
133
|
when /darwin/
|
129
134
|
system("open #{url}")
|
135
|
+
when /android/
|
136
|
+
system("am start --user 0 -a android.intent.action.VIEW -d #{url}")
|
130
137
|
else
|
131
138
|
# Search through the PATH variable (if it exists) and chose a browser
|
132
139
|
# We are making an assumption about the nature of "PATH" so tread lightly
|
@@ -182,6 +189,8 @@ def self.open_webrtc_browser(url='http://google.com/')
|
|
182
189
|
return true
|
183
190
|
end
|
184
191
|
end
|
192
|
+
when /android/
|
193
|
+
system("am start --user 0 -a android.intent.action.VIEW -d #{url}")
|
185
194
|
else
|
186
195
|
if defined? ENV['PATH']
|
187
196
|
['google-chrome', 'chrome', 'chromium', 'firefox' , 'firefox', 'opera'].each do |browser|
|
@@ -207,6 +216,8 @@ def self.open_email(addr)
|
|
207
216
|
Win32API.new("shell32.dll", "ShellExecute", ["PPPPPL"], "L").call(nil, "open", "mailto:"+addr, nil, nil, 0)
|
208
217
|
when /darwin/
|
209
218
|
system("open mailto:#{addr}")
|
219
|
+
when /android/
|
220
|
+
system("am start --user 0 -a android.intent.action.VIEW -d mailto:#{addr}")
|
210
221
|
else
|
211
222
|
# ?
|
212
223
|
end
|
@@ -223,6 +234,8 @@ def self.play_sound(path)
|
|
223
234
|
Win32API.new("winmm.dll", "sndPlaySoundA", ["SI"], "I").call(path, 0x20000)
|
224
235
|
when /darwin/
|
225
236
|
system("afplay #{path} >/dev/null 2>&1")
|
237
|
+
when /android/
|
238
|
+
system("termux-open #{path}")
|
226
239
|
else
|
227
240
|
system("aplay #{path} >/dev/null 2>&1")
|
228
241
|
end
|
data/lib/rex/core/version.rb
CHANGED
data/lib/rex/file.rb
CHANGED
@@ -130,7 +130,7 @@ module Find
|
|
130
130
|
paths.collect!{|d| d.dup}
|
131
131
|
while file = paths.shift
|
132
132
|
catch(:prune) do
|
133
|
-
yield file.dup
|
133
|
+
yield file.dup
|
134
134
|
next unless File.exist? file
|
135
135
|
begin
|
136
136
|
if File.stat(file).directory? then
|
@@ -145,7 +145,7 @@ module Find
|
|
145
145
|
else
|
146
146
|
f = File.join(file, f)
|
147
147
|
end
|
148
|
-
paths.unshift f
|
148
|
+
paths.unshift f
|
149
149
|
end
|
150
150
|
ensure
|
151
151
|
d.close
|
data/lib/rex/io/stream.rb
CHANGED
@@ -25,6 +25,22 @@ module Stream
|
|
25
25
|
#
|
26
26
|
##
|
27
27
|
|
28
|
+
#
|
29
|
+
# Initialize synchronization for this stream. This should be used if the
|
30
|
+
# stream will be written to, read or closed from multiple threads.
|
31
|
+
#
|
32
|
+
def initialize_synchronization
|
33
|
+
self.stream_lock = Rex::ReadWriteLock.new
|
34
|
+
self.close_resource = false
|
35
|
+
end
|
36
|
+
|
37
|
+
def close
|
38
|
+
self.close_resource = true
|
39
|
+
synchronize_update {
|
40
|
+
super
|
41
|
+
}
|
42
|
+
end
|
43
|
+
|
28
44
|
#
|
29
45
|
# This method writes the supplied buffer to the stream. This method
|
30
46
|
# intelligent reduces the size of supplied buffers so that ruby doesn't get
|
@@ -37,28 +53,31 @@ module Stream
|
|
37
53
|
total_length = buf.length
|
38
54
|
block_size = 32768
|
39
55
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
56
|
+
synchronize_access {
|
57
|
+
begin
|
58
|
+
while( total_sent < total_length )
|
59
|
+
s = Rex::ThreadSafe.select( nil, [ fd ], nil, 0.2 )
|
60
|
+
if( s == nil || s[0] == nil )
|
61
|
+
next
|
62
|
+
end
|
63
|
+
data = buf[total_sent, block_size]
|
64
|
+
sent = fd.write_nonblock( data )
|
65
|
+
if sent > 0
|
66
|
+
total_sent += sent
|
67
|
+
end
|
50
68
|
end
|
69
|
+
rescue ::Errno::EAGAIN, ::Errno::EWOULDBLOCK
|
70
|
+
return nil if self.close_resource
|
71
|
+
# Sleep for a half a second, or until we can write again
|
72
|
+
Rex::ThreadSafe.select( nil, [ fd ], nil, 0.5 )
|
73
|
+
# Decrement the block size to handle full sendQs better
|
74
|
+
block_size = 1024
|
75
|
+
# Try to write the data again
|
76
|
+
retry
|
77
|
+
rescue ::IOError, ::Errno::EPIPE
|
78
|
+
return nil
|
51
79
|
end
|
52
|
-
|
53
|
-
# Sleep for a half a second, or until we can write again
|
54
|
-
Rex::ThreadSafe.select( nil, [ fd ], nil, 0.5 )
|
55
|
-
# Decrement the block size to handle full sendQs better
|
56
|
-
block_size = 1024
|
57
|
-
# Try to write the data again
|
58
|
-
retry
|
59
|
-
rescue ::IOError, ::Errno::EPIPE
|
60
|
-
return nil
|
61
|
-
end
|
80
|
+
}
|
62
81
|
|
63
82
|
total_sent
|
64
83
|
end
|
@@ -67,17 +86,19 @@ module Stream
|
|
67
86
|
# This method reads data of the supplied length from the stream.
|
68
87
|
#
|
69
88
|
def read(length = nil, opts = {})
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
89
|
+
synchronize_access {
|
90
|
+
begin
|
91
|
+
return fd.read_nonblock( length )
|
92
|
+
rescue ::Errno::EAGAIN, ::Errno::EWOULDBLOCK
|
93
|
+
return nil if self.close_resource
|
94
|
+
# Sleep for a half a second, or until we can read again
|
95
|
+
Rex::ThreadSafe.select( [ fd ], nil, nil, 0.5 )
|
96
|
+
# Decrement the block size to handle full sendQs better
|
97
|
+
retry
|
98
|
+
rescue ::IOError, ::Errno::EPIPE
|
99
|
+
return nil
|
100
|
+
end
|
101
|
+
}
|
81
102
|
end
|
82
103
|
|
83
104
|
#
|
@@ -306,6 +327,45 @@ module Stream
|
|
306
327
|
|
307
328
|
protected
|
308
329
|
|
330
|
+
#
|
331
|
+
# The read-write lock used to synchronize access to the stream. This is only
|
332
|
+
# set when synchronization has been initialized as performed by
|
333
|
+
# #initialize_synchronization.
|
334
|
+
#
|
335
|
+
attr_accessor :stream_lock
|
336
|
+
|
337
|
+
#
|
338
|
+
# A boolean flag indicating that the resource is to be closed. Blocking
|
339
|
+
# operations that are synchronized (such as #read and #write) should evaluate
|
340
|
+
# this flag and exit appropriately when there is no data to be processed.
|
341
|
+
attr_accessor :close_resource
|
342
|
+
|
343
|
+
#
|
344
|
+
# Synchronize non-state changing access to the stream such as read and write
|
345
|
+
# operations. If synchronization has not been initialized, this doesn't do
|
346
|
+
# anything.
|
347
|
+
#
|
348
|
+
def synchronize_access
|
349
|
+
self.stream_lock.lock_read unless self.stream_lock.nil?
|
350
|
+
begin
|
351
|
+
yield
|
352
|
+
ensure
|
353
|
+
self.stream_lock.unlock_read unless self.stream_lock.nil?
|
354
|
+
end
|
355
|
+
end
|
356
|
+
|
357
|
+
#
|
358
|
+
# Synchronize state changing operations to the stream such as closing it.
|
359
|
+
# If synchronization has not been initialized, this doesn't do anything.
|
360
|
+
#
|
361
|
+
def synchronize_update
|
362
|
+
self.stream_lock.lock_write unless self.stream_lock.nil?
|
363
|
+
begin
|
364
|
+
yield
|
365
|
+
ensure
|
366
|
+
self.stream_lock.unlock_write unless self.stream_lock.nil?
|
367
|
+
end
|
368
|
+
end
|
309
369
|
end
|
310
370
|
|
311
371
|
end end
|
@@ -19,10 +19,14 @@ module StreamAbstraction
|
|
19
19
|
#
|
20
20
|
def initialize_abstraction
|
21
21
|
self.lsock, self.rsock = Rex::Socket.tcp_socket_pair()
|
22
|
+
|
22
23
|
self.lsock.extend(Rex::IO::Stream)
|
23
24
|
self.lsock.extend(Ext)
|
24
25
|
self.rsock.extend(Rex::IO::Stream)
|
25
26
|
|
27
|
+
self.lsock.initialize_synchronization
|
28
|
+
self.rsock.initialize_synchronization
|
29
|
+
|
26
30
|
self.monitor_rsock("StreamMonitorRemote")
|
27
31
|
end
|
28
32
|
|
data/lib/rex/sync/thread_safe.rb
CHANGED
@@ -33,7 +33,7 @@ module ThreadSafe
|
|
33
33
|
|
34
34
|
# Poll the set supplied to us at least once.
|
35
35
|
begin
|
36
|
-
rv = ::IO.select(rfd, wfd, efd,
|
36
|
+
rv = ::IO.select(rfd, wfd, efd, DEFAULT_CYCLE)
|
37
37
|
rescue ::IOError, ::Errno::EBADF, ::Errno::ENOTSOCK
|
38
38
|
# If a stream was detected as being closed, re-raise the error as
|
39
39
|
# a StreamClosedError with the specific file descriptor that was
|
data/rex-core.gemspec
CHANGED
@@ -6,23 +6,19 @@ require 'rex/core/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "rex-core"
|
8
8
|
spec.version = Rex::Core::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Metasploit Hackers']
|
10
|
+
spec.email = ['msfdev@metasploit.com']
|
11
11
|
|
12
|
-
spec.summary = %q{Core libraries required for the Ruby Exploitation(Rex) Suite.}
|
13
|
-
spec.description = %q{Core libraries required for the Ruby Exploitation(Rex) Suite.
|
12
|
+
spec.summary = %q{Core libraries required for the Ruby Exploitation (Rex) Suite.}
|
13
|
+
spec.description = %q{Core libraries required for the Ruby Exploitation (Rex) Suite.
|
14
|
+
Rex provides a variety of classes useful for security testing and exploit development.}
|
14
15
|
spec.homepage = "https://github.com/rapid7/rex-core"
|
15
16
|
|
16
|
-
|
17
|
-
|
18
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
19
|
-
spec.bindir = "exe"
|
20
|
-
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
18
|
spec.require_paths = ["lib"]
|
22
19
|
|
23
20
|
spec.required_ruby_version = '>= 2.2.0'
|
24
21
|
|
25
|
-
spec.add_development_dependency "
|
26
|
-
spec.add_development_dependency "
|
27
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
spec.add_development_dependency "rspec"
|
28
24
|
end
|
metadata
CHANGED
@@ -1,140 +1,133 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rex-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Metasploit Hackers
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
13
|
+
MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
|
14
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
15
|
+
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
16
|
+
b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
|
17
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
18
|
+
cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
|
19
|
+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
|
20
|
+
JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
|
21
|
+
mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
|
22
|
+
wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
|
23
|
+
VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
|
24
|
+
AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
|
25
|
+
AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
|
26
|
+
BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
|
27
|
+
pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
|
28
|
+
dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
|
29
|
+
fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
|
30
|
+
NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
|
31
|
+
H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
|
32
|
+
+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
|
32
33
|
-----END CERTIFICATE-----
|
33
34
|
- |
|
34
35
|
-----BEGIN CERTIFICATE-----
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
36
|
+
MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl
|
37
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
38
|
+
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
39
|
+
b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG
|
40
|
+
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
41
|
+
cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT
|
42
|
+
aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O
|
43
|
+
Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq
|
44
|
+
8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp
|
45
|
+
wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p
|
46
|
+
fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3
|
47
|
+
jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye
|
48
|
+
n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
|
49
|
+
HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr
|
50
|
+
MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
|
51
|
+
MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
|
52
|
+
RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj
|
53
|
+
ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6
|
54
|
+
Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww
|
55
|
+
TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
56
|
+
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq
|
57
|
+
CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP
|
58
|
+
MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX
|
59
|
+
fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf
|
60
|
+
RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al
|
61
|
+
EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+
|
62
|
+
L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8
|
63
|
+
B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv
|
60
64
|
-----END CERTIFICATE-----
|
61
65
|
- |
|
62
66
|
-----BEGIN CERTIFICATE-----
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
67
|
+
MIIFIzCCBAugAwIBAgIQCMePMbkSxvnPeJhYXIfaxzANBgkqhkiG9w0BAQsFADBy
|
68
|
+
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
69
|
+
d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
|
70
|
+
SUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTAwNzAwMDAwMFoXDTIzMTEwNjEyMDAw
|
71
|
+
MFowYDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxDzANBgNV
|
72
|
+
BAcTBkJvc3RvbjETMBEGA1UEChMKUmFwaWQ3IExMQzETMBEGA1UEAxMKUmFwaWQ3
|
73
|
+
IExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNTz4zvAy7h/vQp
|
74
|
+
4dr1txXHlABAagkwYYwTMCtHs5PXsJITx/5SAjx5swuaLfze5kPBNF2YImvFlOXY
|
75
|
+
WaB+0PsOnXnaARsDZU683xFlj8izU6IN6VrAHzDLKFBzruJENrOJD/ikbEtbjO/q
|
76
|
+
gFbmS9J9v5ohG/pcRSS0t4ZPAwymf8eCp6QsvOKK/Aymp1RhlRaP8N6N5CIpkhz1
|
77
|
+
9p968iCE+DjOXVYxcWE+jE/7uB1dbgrXykNBujMSS3GULOvVEY28n6NCmrPlo23g
|
78
|
+
yRjYVJ2Vy14nBqnxDZ/yRIfWRVjWoT9TsAEbe9gY29oDpSCSs4wSmLQd5zGCpZ9h
|
79
|
+
r0HDFB8CAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZl
|
80
|
+
dQ5YMB0GA1UdDgQWBBTLBL7DTwumVEKtdCdpHVYMXOFeDzAOBgNVHQ8BAf8EBAMC
|
81
|
+
B4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDov
|
82
|
+
L2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGG
|
83
|
+
L2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
|
84
|
+
MEwGA1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
85
|
+
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYw
|
86
|
+
JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
|
87
|
+
AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
|
88
|
+
ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
|
89
|
+
BQADggEBAN+GL5/myPWg7oH4mVrG7/OhXF1MoYQF0ddaNiqaweEHMuKJBQCVZRbL
|
90
|
+
37HojoKXXv2yyRJBCeTB+ojrxX+5PdLVZa0ss7toWzJ2A1poPXZ1eZvm5xeFD32z
|
91
|
+
YQaTmmNWNI3PCDTyJ2PXUc+bDiNNwcZ7yc5o78UNRvp9Jxghya17Q76c9Ov9wvnv
|
92
|
+
dxxQKWGOQy0m4fBrkyjAyH9Djjn81RbQrqYgPuhd5nD0HjN3VUQLhQbIJrk9TVs0
|
93
|
+
EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
|
94
|
+
9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
|
90
95
|
-----END CERTIFICATE-----
|
91
|
-
date:
|
96
|
+
date: 2021-02-12 00:00:00.000000000 Z
|
92
97
|
dependencies:
|
93
|
-
- !ruby/object:Gem::Dependency
|
94
|
-
name: bundler
|
95
|
-
requirement: !ruby/object:Gem::Requirement
|
96
|
-
requirements:
|
97
|
-
- - "~>"
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version: '1.12'
|
100
|
-
type: :development
|
101
|
-
prerelease: false
|
102
|
-
version_requirements: !ruby/object:Gem::Requirement
|
103
|
-
requirements:
|
104
|
-
- - "~>"
|
105
|
-
- !ruby/object:Gem::Version
|
106
|
-
version: '1.12'
|
107
98
|
- !ruby/object:Gem::Dependency
|
108
99
|
name: rake
|
109
100
|
requirement: !ruby/object:Gem::Requirement
|
110
101
|
requirements:
|
111
|
-
- - "
|
102
|
+
- - ">="
|
112
103
|
- !ruby/object:Gem::Version
|
113
|
-
version: '
|
104
|
+
version: '0'
|
114
105
|
type: :development
|
115
106
|
prerelease: false
|
116
107
|
version_requirements: !ruby/object:Gem::Requirement
|
117
108
|
requirements:
|
118
|
-
- - "
|
109
|
+
- - ">="
|
119
110
|
- !ruby/object:Gem::Version
|
120
|
-
version: '
|
111
|
+
version: '0'
|
121
112
|
- !ruby/object:Gem::Dependency
|
122
113
|
name: rspec
|
123
114
|
requirement: !ruby/object:Gem::Requirement
|
124
115
|
requirements:
|
125
|
-
- - "
|
116
|
+
- - ">="
|
126
117
|
- !ruby/object:Gem::Version
|
127
|
-
version: '
|
118
|
+
version: '0'
|
128
119
|
type: :development
|
129
120
|
prerelease: false
|
130
121
|
version_requirements: !ruby/object:Gem::Requirement
|
131
122
|
requirements:
|
132
|
-
- - "
|
123
|
+
- - ">="
|
133
124
|
- !ruby/object:Gem::Version
|
134
|
-
version: '
|
135
|
-
description:
|
125
|
+
version: '0'
|
126
|
+
description: |-
|
127
|
+
Core libraries required for the Ruby Exploitation (Rex) Suite.
|
128
|
+
Rex provides a variety of classes useful for security testing and exploit development.
|
136
129
|
email:
|
137
|
-
-
|
130
|
+
- msfdev@metasploit.com
|
138
131
|
executables: []
|
139
132
|
extensions: []
|
140
133
|
extra_rdoc_files: []
|
@@ -147,8 +140,6 @@ files:
|
|
147
140
|
- LICENSE
|
148
141
|
- README.md
|
149
142
|
- Rakefile
|
150
|
-
- bin/console
|
151
|
-
- bin/setup
|
152
143
|
- lib/rex/compat.rb
|
153
144
|
- lib/rex/core.rb
|
154
145
|
- lib/rex/core/version.rb
|
@@ -185,8 +176,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
185
176
|
version: '0'
|
186
177
|
requirements: []
|
187
178
|
rubyforge_project:
|
188
|
-
rubygems_version: 2.
|
179
|
+
rubygems_version: 2.7.10
|
189
180
|
signing_key:
|
190
181
|
specification_version: 4
|
191
|
-
summary: Core libraries required for the Ruby Exploitation(Rex) Suite.
|
182
|
+
summary: Core libraries required for the Ruby Exploitation (Rex) Suite.
|
192
183
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "rex/core"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start
|