rex-java 0.1.0
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 +7 -0
- checksums.yaml.gz.sig +3 -0
- data.tar.gz.sig +0 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +52 -0
- data/Gemfile +4 -0
- data/README.md +36 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/rex/java.rb +10 -0
- data/lib/rex/java/serialization.rb +57 -0
- data/lib/rex/java/serialization/builder.rb +94 -0
- data/lib/rex/java/serialization/decode_error.rb +11 -0
- data/lib/rex/java/serialization/encode_error.rb +11 -0
- data/lib/rex/java/serialization/model.rb +33 -0
- data/lib/rex/java/serialization/model/annotation.rb +69 -0
- data/lib/rex/java/serialization/model/block_data.rb +70 -0
- data/lib/rex/java/serialization/model/block_data_long.rb +72 -0
- data/lib/rex/java/serialization/model/class_desc.rb +64 -0
- data/lib/rex/java/serialization/model/contents.rb +163 -0
- data/lib/rex/java/serialization/model/element.rb +44 -0
- data/lib/rex/java/serialization/model/end_block_data.rb +12 -0
- data/lib/rex/java/serialization/model/field.rb +173 -0
- data/lib/rex/java/serialization/model/long_utf.rb +48 -0
- data/lib/rex/java/serialization/model/new_array.rb +229 -0
- data/lib/rex/java/serialization/model/new_class.rb +57 -0
- data/lib/rex/java/serialization/model/new_class_desc.rb +154 -0
- data/lib/rex/java/serialization/model/new_enum.rb +79 -0
- data/lib/rex/java/serialization/model/new_object.rb +235 -0
- data/lib/rex/java/serialization/model/null_reference.rb +12 -0
- data/lib/rex/java/serialization/model/proxy_class_desc.rb +109 -0
- data/lib/rex/java/serialization/model/reference.rb +61 -0
- data/lib/rex/java/serialization/model/reset.rb +12 -0
- data/lib/rex/java/serialization/model/stream.rb +123 -0
- data/lib/rex/java/serialization/model/utf.rb +69 -0
- data/lib/rex/java/version.rb +5 -0
- data/rex-java.gemspec +24 -0
- metadata +199 -0
- metadata.gz.sig +1 -0
@@ -0,0 +1,123 @@
|
|
1
|
+
# -*- coding: binary -*-
|
2
|
+
|
3
|
+
module Rex
|
4
|
+
module Java
|
5
|
+
module Serialization
|
6
|
+
module Model
|
7
|
+
# This class provides a Java Stream representation
|
8
|
+
class Stream < Element
|
9
|
+
|
10
|
+
include Rex::Java::Serialization::Model::Contents
|
11
|
+
|
12
|
+
# @!attribute magic
|
13
|
+
# @return [Fixnum] The stream signature
|
14
|
+
attr_accessor :magic
|
15
|
+
# @!attribute version
|
16
|
+
# @return [Fixnum] The stream version
|
17
|
+
attr_accessor :version
|
18
|
+
# @!attribute contents
|
19
|
+
# @return [Array] The stream contents
|
20
|
+
attr_accessor :contents
|
21
|
+
# @!attribute references
|
22
|
+
# @return [Array] The stream objects to be referenced through handles
|
23
|
+
attr_accessor :references
|
24
|
+
|
25
|
+
def initialize(stream = nil)
|
26
|
+
super(nil)
|
27
|
+
self.magic = STREAM_MAGIC
|
28
|
+
self.version = STREAM_VERSION
|
29
|
+
self.contents = []
|
30
|
+
self.references = []
|
31
|
+
end
|
32
|
+
|
33
|
+
# Deserializes a Rex::Java::Serialization::Model::Stream
|
34
|
+
#
|
35
|
+
# @param io [IO] the io to read from
|
36
|
+
# @return [self] if deserialization succeeds
|
37
|
+
# @raise [Rex::Java::Serialization::DecodeError] if deserialization doesn't succeed
|
38
|
+
def decode(io)
|
39
|
+
self.magic = decode_magic(io)
|
40
|
+
self.version = decode_version(io)
|
41
|
+
|
42
|
+
until io.eof?
|
43
|
+
content = decode_content(io, self)
|
44
|
+
self.contents << content
|
45
|
+
end
|
46
|
+
|
47
|
+
self
|
48
|
+
end
|
49
|
+
|
50
|
+
# Serializes the Rex::Java::Serialization::Model::Stream
|
51
|
+
#
|
52
|
+
# @return [String] if serialization succeeds
|
53
|
+
# @raise [Rex::Java::Serialization::EncodeError] if serialization doesn't succeed
|
54
|
+
def encode
|
55
|
+
encoded = ''
|
56
|
+
encoded << [magic].pack('n')
|
57
|
+
encoded << [version].pack('n')
|
58
|
+
contents.each do |content|
|
59
|
+
encoded << encode_content(content)
|
60
|
+
end
|
61
|
+
encoded
|
62
|
+
end
|
63
|
+
|
64
|
+
# Adds an element to the references array
|
65
|
+
#
|
66
|
+
# @param ref [Rex::Java::Serialization::Model::Element] the object to save as reference dst
|
67
|
+
def add_reference(ref)
|
68
|
+
self.references.push(ref)
|
69
|
+
end
|
70
|
+
|
71
|
+
# Creates a print-friendly string representation
|
72
|
+
#
|
73
|
+
# @return [String]
|
74
|
+
def to_s
|
75
|
+
str = "@magic: 0x#{magic.to_s(16)}\n"
|
76
|
+
str << "@version: #{version}\n"
|
77
|
+
str << "@contents: [\n"
|
78
|
+
contents.each do |content|
|
79
|
+
str << " #{print_content(content)}\n"
|
80
|
+
end
|
81
|
+
str << "]\n"
|
82
|
+
str << "@references: [\n"
|
83
|
+
references.each do |ref|
|
84
|
+
str << " [#{(references.index(ref) + BASE_WIRE_HANDLE).to_s(16)}] #{print_content(ref)}\n"
|
85
|
+
end
|
86
|
+
str << "]\n"
|
87
|
+
end
|
88
|
+
|
89
|
+
private
|
90
|
+
|
91
|
+
# Deserializes the magic stream value
|
92
|
+
#
|
93
|
+
# @param io [IO] the io to read from
|
94
|
+
# @return [String] if deserialization succeeds
|
95
|
+
# @raise [Rex::Java::Serialization::DecodeError] if deserialization doesn't succeed
|
96
|
+
def decode_magic(io)
|
97
|
+
magic = io.read(2)
|
98
|
+
|
99
|
+
unless magic && magic.length == 2 && magic.unpack('n')[0] == STREAM_MAGIC
|
100
|
+
raise Rex::Java::Serialization::DecodeError, 'Failed to unserialize Stream'
|
101
|
+
end
|
102
|
+
|
103
|
+
STREAM_MAGIC
|
104
|
+
end
|
105
|
+
|
106
|
+
# Deserializes the version stream
|
107
|
+
#
|
108
|
+
# @param io [IO] the io to read from
|
109
|
+
# @return [Fixnum] if deserialization succeeds
|
110
|
+
# @raise [Rex::Java::Serialization::DecodeError] if deserialization doesn't succeed
|
111
|
+
def decode_version(io)
|
112
|
+
version = io.read(2)
|
113
|
+
unless version && version.unpack('n')[0] == STREAM_VERSION
|
114
|
+
raise Rex::Java::Serialization::DecodeError, 'Failed to unserialize Stream'
|
115
|
+
end
|
116
|
+
|
117
|
+
STREAM_VERSION
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# -*- coding: binary -*-
|
2
|
+
|
3
|
+
module Rex
|
4
|
+
module Java
|
5
|
+
module Serialization
|
6
|
+
module Model
|
7
|
+
# This class provides a Utf string representation
|
8
|
+
class Utf < Element
|
9
|
+
|
10
|
+
# @!attribute length
|
11
|
+
# @return [Integer] the length of the string
|
12
|
+
attr_accessor :length
|
13
|
+
# @!attribute contents
|
14
|
+
# @return [String] the contents of the string
|
15
|
+
attr_accessor :contents
|
16
|
+
|
17
|
+
# @param stream [Rex::Java::Serialization::Model::Stream] the stream where it belongs to
|
18
|
+
# @param contents [String] the contents of the utf string
|
19
|
+
def initialize(stream = nil, contents = '')
|
20
|
+
super(stream)
|
21
|
+
self.contents = contents
|
22
|
+
self.length = contents.length
|
23
|
+
end
|
24
|
+
|
25
|
+
# Deserializes a Rex::Java::Serialization::Model::Utf
|
26
|
+
#
|
27
|
+
# @param io [IO] the io to read from
|
28
|
+
# @return [self] if deserialization succeeds
|
29
|
+
# @raise [Rex::Java::Serialization::DecodeError] if deserialization doesn't succeed
|
30
|
+
def decode(io)
|
31
|
+
raw_length = io.read(2)
|
32
|
+
if raw_length.nil? || raw_length.length != 2
|
33
|
+
raise Rex::Java::Serialization::DecodeError, 'Failed to unserialize Utf'
|
34
|
+
end
|
35
|
+
self.length = raw_length.unpack('n')[0]
|
36
|
+
|
37
|
+
if length == 0
|
38
|
+
self.contents = ''
|
39
|
+
else
|
40
|
+
self.contents = io.read(length)
|
41
|
+
if contents.nil? || contents.length != length
|
42
|
+
raise Rex::Java::Serialization::DecodeError, 'Failed to unserialize Utf'
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
self
|
47
|
+
end
|
48
|
+
|
49
|
+
# Serializes the Rex::Java::Serialization::Model::Utf
|
50
|
+
#
|
51
|
+
# @return [String]
|
52
|
+
def encode
|
53
|
+
encoded = [length].pack('n')
|
54
|
+
encoded << contents
|
55
|
+
|
56
|
+
encoded
|
57
|
+
end
|
58
|
+
|
59
|
+
# Creates a print-friendly string representation
|
60
|
+
#
|
61
|
+
# @return [String]
|
62
|
+
def to_s
|
63
|
+
contents
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/rex-java.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'rex/java/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "rex-java"
|
8
|
+
spec.version = Rex::Java::VERSION
|
9
|
+
spec.authors = ["dmohanty-r7"]
|
10
|
+
spec.email = ["Dev_Mohanty@rapid7.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Rex library for parsing serialized Java streams.}
|
13
|
+
spec.description = %q{Ruby Exploitation(Rex) library for parsing Java serialized streams.}
|
14
|
+
spec.homepage = "https://github.com/rapid7/rex-java"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.bindir = "exe"
|
18
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.12"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,199 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rex-java
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- dmohanty-r7
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
|
14
|
+
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
|
15
|
+
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
|
16
|
+
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
|
17
|
+
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
|
18
|
+
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
|
19
|
+
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
|
20
|
+
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
|
21
|
+
1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
|
22
|
+
snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
|
23
|
+
U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
|
24
|
+
9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
|
25
|
+
BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
|
26
|
+
AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
|
27
|
+
yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
|
28
|
+
38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
|
29
|
+
AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
|
30
|
+
DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
|
31
|
+
HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
|
32
|
+
-----END CERTIFICATE-----
|
33
|
+
- |
|
34
|
+
-----BEGIN CERTIFICATE-----
|
35
|
+
MIIEKDCCAxCgAwIBAgILBAAAAAABL07hNVwwDQYJKoZIhvcNAQEFBQAwVzELMAkG
|
36
|
+
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
|
37
|
+
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw0xMTA0MTMxMDAw
|
38
|
+
MDBaFw0xOTA0MTMxMDAwMDBaMFExCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
|
39
|
+
YWxTaWduIG52LXNhMScwJQYDVQQDEx5HbG9iYWxTaWduIENvZGVTaWduaW5nIENB
|
40
|
+
IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyTxTnEL7XJnKr
|
41
|
+
NpfvU79ChF5Y0Yoo/ENGb34oRFALdV0A1zwKRJ4gaqT3RUo3YKNuPxL6bfq2RsNq
|
42
|
+
o7gMJygCVyjRUPdhOVW4w+ElhlI8vwUd17Oa+JokMUnVoqni05GrPjxz7/Yp8cg1
|
43
|
+
0DB7f06SpQaPh+LO9cFjZqwYaSrBXrta6G6V/zuAYp2Zx8cvZtX9YhqCVVrG+kB3
|
44
|
+
jskwPBvw8jW4bFmc/enWyrRAHvcEytFnqXTjpQhU2YM1O46MIwx1tt6GSp4aPgpQ
|
45
|
+
STic0qiQv5j6yIwrJxF+KvvO3qmuOJMi+qbs+1xhdsNE1swMfi9tBoCidEC7tx/0
|
46
|
+
O9dzVB/zAgMBAAGjgfowgfcwDgYDVR0PAQH/BAQDAgEGMBIGA1UdEwEB/wQIMAYB
|
47
|
+
Af8CAQAwHQYDVR0OBBYEFAhu2Lacir/tPtfDdF3MgB+oL1B6MEcGA1UdIARAMD4w
|
48
|
+
PAYEVR0gADA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNv
|
49
|
+
bS9yZXBvc2l0b3J5LzAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmdsb2Jh
|
50
|
+
bHNpZ24ubmV0L3Jvb3QuY3JsMBMGA1UdJQQMMAoGCCsGAQUFBwMDMB8GA1UdIwQY
|
51
|
+
MBaAFGB7ZhpFDZfKiVAvfQTNNKj//P1LMA0GCSqGSIb3DQEBBQUAA4IBAQAiXMXd
|
52
|
+
PfQLcNjj9efFjgkBu7GWNlxaB63HqERJUSV6rg2kGTuSnM+5Qia7O2yX58fOEW1o
|
53
|
+
kdqNbfFTTVQ4jGHzyIJ2ab6BMgsxw2zJniAKWC/wSP5+SAeq10NYlHNUBDGpeA07
|
54
|
+
jLBwwT1+170vKsPi9Y8MkNxrpci+aF5dbfh40r5JlR4VeAiR+zTIvoStvODG3Rjb
|
55
|
+
88rwe8IUPBi4A7qVPiEeP2Bpen9qA56NSvnwKCwwhF7sJnJCsW3LZMMSjNaES2dB
|
56
|
+
fLEDF3gJ462otpYtpH6AA0+I98FrWkYVzSwZi9hwnOUtSYhgcqikGVJwQ17a1kYD
|
57
|
+
sGgOJO9K9gslJO8k
|
58
|
+
-----END CERTIFICATE-----
|
59
|
+
- |
|
60
|
+
-----BEGIN CERTIFICATE-----
|
61
|
+
MIIEyjCCA7KgAwIBAgISESEyE8rNriS4+1dc8jOHEUL8MA0GCSqGSIb3DQEBBQUA
|
62
|
+
MFExCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMScwJQYD
|
63
|
+
VQQDEx5HbG9iYWxTaWduIENvZGVTaWduaW5nIENBIC0gRzIwHhcNMTMxMDExMTUx
|
64
|
+
NTM4WhcNMTYxMDExMTUxNTM4WjBgMQswCQYDVQQGEwJVUzEWMBQGA1UECBMNTWFz
|
65
|
+
c2FjaHVzZXR0czEPMA0GA1UEBxMGQm9zdG9uMRMwEQYDVQQKEwpSYXBpZDcgTExD
|
66
|
+
MRMwEQYDVQQDEwpSYXBpZDcgTExDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
67
|
+
CgKCAQEAhD//7+739c69hssg0mD6CXgf2JkuWTcU81dgD7aKcoEPqU8e1FseBvDW
|
68
|
+
/Q5fNK2H2NgHV/Msn18zXuK0PkaJXqj/vDsuKB3Hq0BiR2AwyDdEw8K5MK5bgQc2
|
69
|
+
tmcVtEAejRoy1Uv5UyfaAYAxG6zsma3buV1fjnEAC3VouRg4+EX/f65H/a6srntK
|
70
|
+
5Etp3D71k2f0oUl8dOqOmSsRJQQ5zSs4ktDvpjAmsvzoA+1svceLYU95mvQsIw2T
|
71
|
+
edpmibGMwGw/HmgV+YWBgF5UGvax6zbC2i6DF2YHnDfkNb8/1MEIaxOTAbJTazTK
|
72
|
+
8laCQOyay6L1BNPQKjZBgOge8LZq1wIDAQABo4IBizCCAYcwDgYDVR0PAQH/BAQD
|
73
|
+
AgeAMEwGA1UdIARFMEMwQQYJKwYBBAGgMgEyMDQwMgYIKwYBBQUHAgEWJmh0dHBz
|
74
|
+
Oi8vd3d3Lmdsb2JhbHNpZ24uY29tL3JlcG9zaXRvcnkvMAkGA1UdEwQCMAAwEwYD
|
75
|
+
VR0lBAwwCgYIKwYBBQUHAwMwPgYDVR0fBDcwNTAzoDGgL4YtaHR0cDovL2NybC5n
|
76
|
+
bG9iYWxzaWduLmNvbS9ncy9nc2NvZGVzaWduZzIuY3JsMIGGBggrBgEFBQcBAQR6
|
77
|
+
MHgwQAYIKwYBBQUHMAKGNGh0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5jb20vY2Fj
|
78
|
+
ZXJ0L2dzY29kZXNpZ25nMi5jcnQwNAYIKwYBBQUHMAGGKGh0dHA6Ly9vY3NwMi5n
|
79
|
+
bG9iYWxzaWduLmNvbS9nc2NvZGVzaWduZzIwHQYDVR0OBBYEFE536JwFx9SpaEi3
|
80
|
+
w8pcq2GRFA5BMB8GA1UdIwQYMBaAFAhu2Lacir/tPtfDdF3MgB+oL1B6MA0GCSqG
|
81
|
+
SIb3DQEBBQUAA4IBAQAGpGXHtFLjTTivV+xQPwtZhfPuJ7f+VGTMSAAYWmfzyHXM
|
82
|
+
YMFYUWJzSFcuVR2YfxtbS45P7U5Qopd7jBQ0Ygk5h2a+B5nE4+UlhHj665d0zpYM
|
83
|
+
1eWndMaO6WBOYnqtNyi8Dqqc1foKZDNHEDggYhGso7OIBunup+N4sPL9PwQ3eYe6
|
84
|
+
mUu8z0E4GXYViaMPOFkqaYnoYgf2L+7L5zKYT4h/NE/P7kj7EbduHgy/v/aAIrNl
|
85
|
+
2SpuQH+SWteq3NXkAmFEEqvLJQ4sbptZt8OP8ghL3pVAvZNFmww/YVszSkShSzcg
|
86
|
+
QdihYCSEL2drS2cFd50jBeq71sxUtxbv82DUa2b+
|
87
|
+
-----END CERTIFICATE-----
|
88
|
+
date: 2016-06-27 00:00:00.000000000 Z
|
89
|
+
dependencies:
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: bundler
|
92
|
+
requirement: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.12'
|
97
|
+
type: :development
|
98
|
+
prerelease: false
|
99
|
+
version_requirements: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.12'
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: rake
|
106
|
+
requirement: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '10.0'
|
111
|
+
type: :development
|
112
|
+
prerelease: false
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '10.0'
|
118
|
+
- !ruby/object:Gem::Dependency
|
119
|
+
name: rspec
|
120
|
+
requirement: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '3.0'
|
125
|
+
type: :development
|
126
|
+
prerelease: false
|
127
|
+
version_requirements: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '3.0'
|
132
|
+
description: Ruby Exploitation(Rex) library for parsing Java serialized streams.
|
133
|
+
email:
|
134
|
+
- Dev_Mohanty@rapid7.com
|
135
|
+
executables: []
|
136
|
+
extensions: []
|
137
|
+
extra_rdoc_files: []
|
138
|
+
files:
|
139
|
+
- ".gitignore"
|
140
|
+
- ".rspec"
|
141
|
+
- ".travis.yml"
|
142
|
+
- CODE_OF_CONDUCT.md
|
143
|
+
- Gemfile
|
144
|
+
- README.md
|
145
|
+
- Rakefile
|
146
|
+
- bin/console
|
147
|
+
- bin/setup
|
148
|
+
- lib/rex/java.rb
|
149
|
+
- lib/rex/java/serialization.rb
|
150
|
+
- lib/rex/java/serialization/builder.rb
|
151
|
+
- lib/rex/java/serialization/decode_error.rb
|
152
|
+
- lib/rex/java/serialization/encode_error.rb
|
153
|
+
- lib/rex/java/serialization/model.rb
|
154
|
+
- lib/rex/java/serialization/model/annotation.rb
|
155
|
+
- lib/rex/java/serialization/model/block_data.rb
|
156
|
+
- lib/rex/java/serialization/model/block_data_long.rb
|
157
|
+
- lib/rex/java/serialization/model/class_desc.rb
|
158
|
+
- lib/rex/java/serialization/model/contents.rb
|
159
|
+
- lib/rex/java/serialization/model/element.rb
|
160
|
+
- lib/rex/java/serialization/model/end_block_data.rb
|
161
|
+
- lib/rex/java/serialization/model/field.rb
|
162
|
+
- lib/rex/java/serialization/model/long_utf.rb
|
163
|
+
- lib/rex/java/serialization/model/new_array.rb
|
164
|
+
- lib/rex/java/serialization/model/new_class.rb
|
165
|
+
- lib/rex/java/serialization/model/new_class_desc.rb
|
166
|
+
- lib/rex/java/serialization/model/new_enum.rb
|
167
|
+
- lib/rex/java/serialization/model/new_object.rb
|
168
|
+
- lib/rex/java/serialization/model/null_reference.rb
|
169
|
+
- lib/rex/java/serialization/model/proxy_class_desc.rb
|
170
|
+
- lib/rex/java/serialization/model/reference.rb
|
171
|
+
- lib/rex/java/serialization/model/reset.rb
|
172
|
+
- lib/rex/java/serialization/model/stream.rb
|
173
|
+
- lib/rex/java/serialization/model/utf.rb
|
174
|
+
- lib/rex/java/version.rb
|
175
|
+
- rex-java.gemspec
|
176
|
+
homepage: https://github.com/rapid7/rex-java
|
177
|
+
licenses: []
|
178
|
+
metadata: {}
|
179
|
+
post_install_message:
|
180
|
+
rdoc_options: []
|
181
|
+
require_paths:
|
182
|
+
- lib
|
183
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '0'
|
193
|
+
requirements: []
|
194
|
+
rubyforge_project:
|
195
|
+
rubygems_version: 2.4.8
|
196
|
+
signing_key:
|
197
|
+
specification_version: 4
|
198
|
+
summary: Rex library for parsing serialized Java streams.
|
199
|
+
test_files: []
|
metadata.gz.sig
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
x���n�G�'�ih0��yNL�uMg-��r�ظ�ܶ��B���6�8�y��c���c�{�7�_t}i�˶���+G��xp���\`�?��ʻi�����Mif��)���#_Z������Q۴J�~�y�R�݆'u��0�oP�
|