ctf-party 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/ctf_party_console +0 -0
- data/lib/ctf_party.rb +1 -0
- data/lib/ctf_party/base64.rb +2 -10
- data/lib/ctf_party/digest.rb +12 -10
- data/lib/ctf_party/flag.rb +1 -1
- data/lib/ctf_party/hex.rb +134 -0
- data/lib/ctf_party/rot.rb +2 -2
- data/lib/ctf_party/version.rb +1 -1
- metadata +17 -63
- data/.rubocop.yml +0 -29
- data/.yardopts +0 -4
- data/.yardopts-dev +0 -6
- data/Gemfile +0 -6
- data/Gemfile.lock +0 -52
- data/README.md +0 -57
- data/Rakefile +0 -11
- data/bin/ctf_party_setup +0 -6
- data/docs/.nojekyll +0 -0
- data/docs/About.md +0 -5
- data/docs/CHANGELOG.md +0 -5
- data/docs/README.md +0 -52
- data/docs/_coverpage.md +0 -10
- data/docs/_media/logo.png +0 -0
- data/docs/_navbar.md +0 -3
- data/docs/_sidebar.md +0 -13
- data/docs/index.html +0 -31
- data/docs/pages/documentation.md +0 -30
- data/docs/pages/install.md +0 -84
- data/docs/pages/publishing.md +0 -39
- data/docs/pages/quick-start.md +0 -23
- data/docs/pages/usage.md +0 -61
- data/docs/vendor/docsify.js +0 -1
- data/docs/vendor/plugins/emoji.min.js +0 -1
- data/docs/vendor/plugins/search.min.js +0 -1
- data/docs/vendor/prismjs/components/prism-ruby.min.js +0 -1
- data/docs/vendor/themes/vue.css +0 -1
- data/docs/yard/String.html +0 -2909
- data/docs/yard/Version.html +0 -121
- data/docs/yard/_index.html +0 -123
- data/docs/yard/class_list.html +0 -51
- data/docs/yard/css/common.css +0 -1
- data/docs/yard/css/full_list.css +0 -58
- data/docs/yard/css/style.css +0 -496
- data/docs/yard/file.LICENSE.html +0 -70
- data/docs/yard/file.README.html +0 -124
- data/docs/yard/file_list.html +0 -61
- data/docs/yard/frames.html +0 -17
- data/docs/yard/index.html +0 -124
- data/docs/yard/js/app.js +0 -303
- data/docs/yard/js/full_list.js +0 -216
- data/docs/yard/js/jquery.js +0 -4
- data/docs/yard/method_list.html +0 -275
- data/docs/yard/top-level-namespace.html +0 -112
- data/test/test_string.rb +0 -134
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa3a85e4dd2db7d636cd1e6f66ca0b32fb34567886901b1102eae35fcb1fbb1c
|
4
|
+
data.tar.gz: aa6c2db8fb07651887d5711d0bfb6b544d422c4f091aaf1893cc6d345e467cc6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1eebe8e48be92a2f4ce8141f6c41a8f4023a3db5d4091358b41a41f5f3b4d123552e382c323d80e29db256818934b2ca8f036e23af10f56a4c1a04861a4f9d9
|
7
|
+
data.tar.gz: 067e1e47c7bad059917fa3774c9d5f37eb9ba37dcd0d8df0320a01bffeccae90a1958d8de8d41d6308040f5cc21e07025a5a34f4b6ef9ce8165ebb7246349134
|
data/bin/ctf_party_console
CHANGED
File without changes
|
data/lib/ctf_party.rb
CHANGED
data/lib/ctf_party/base64.rb
CHANGED
@@ -27,11 +27,7 @@ class String
|
|
27
27
|
# myStr.to_b64! # => nil
|
28
28
|
# myStr # => "UnVieQ=="
|
29
29
|
def to_b64!(opts = {})
|
30
|
-
opts
|
31
|
-
replace(to_b64) if opts[:mode] == :strict ||
|
32
|
-
opts[:mode] == :rfc4648
|
33
|
-
replace(to_b64(mode: :rfc2045)) if opts[:mode] == :rfc2045
|
34
|
-
replace(to_b64(mode: :urlsafe)) if opts[:mode] == :urlsafe
|
30
|
+
replace(to_b64(opts))
|
35
31
|
end
|
36
32
|
|
37
33
|
# Decode the string from base64
|
@@ -57,11 +53,7 @@ class String
|
|
57
53
|
# a.from_b64! # => nil
|
58
54
|
# a # => "Hello world!"
|
59
55
|
def from_b64!(opts = {})
|
60
|
-
opts
|
61
|
-
replace(from_b64) if opts[:mode] == :strict ||
|
62
|
-
opts[:mode] == :rfc4648
|
63
|
-
replace(from_b64(mode: :rfc2045)) if opts[:mode] == :rfc2045
|
64
|
-
replace(from_b64(mode: :urlsafe)) if opts[:mode] == :urlsafe
|
56
|
+
replace(from_b64(opts))
|
65
57
|
end
|
66
58
|
|
67
59
|
# Is the string encoded in base64?
|
data/lib/ctf_party/digest.rb
CHANGED
@@ -13,7 +13,7 @@ class String
|
|
13
13
|
Digest::MD5.hexdigest self
|
14
14
|
end
|
15
15
|
|
16
|
-
# Calculate the md5 hash of the string in place as described for {#md5}.
|
16
|
+
# Calculate the md5 hash of the string in place as described for {String#md5}.
|
17
17
|
# @example
|
18
18
|
# a = '\o/' # => "\\o/"
|
19
19
|
# a.md5! # => "881419964e480e66162da521ccc25ebf"
|
@@ -31,7 +31,8 @@ class String
|
|
31
31
|
Digest::SHA1.hexdigest self
|
32
32
|
end
|
33
33
|
|
34
|
-
# Calculate the sha1 hash of the string in place as described for
|
34
|
+
# Calculate the sha1 hash of the string in place as described for
|
35
|
+
# {String#sha1}.
|
35
36
|
# @example
|
36
37
|
# bob = 'alice' # => "alice"
|
37
38
|
# bob.sha1! # => "522b276a356bdf39013dfabea2cd43e141ecc9e8"
|
@@ -55,7 +56,8 @@ class String
|
|
55
56
|
Digest::SHA2.new(opts[:bitlen]).hexdigest self
|
56
57
|
end
|
57
58
|
|
58
|
-
# Calculate the sha2 hash of the string in place as described for
|
59
|
+
# Calculate the sha2 hash of the string in place as described for
|
60
|
+
# {String#sha2}.
|
59
61
|
# @example
|
60
62
|
# th = 'try harder' # => "try harder"
|
61
63
|
# th.sha2!(bitlen: 384) # => "bb7f60b9562a19c3a83c23791440af11591c42ede9..."
|
@@ -64,32 +66,32 @@ class String
|
|
64
66
|
replace(sha2(opts))
|
65
67
|
end
|
66
68
|
|
67
|
-
# Alias for {#sha2} with default value ( +sha2(bitlen: 256)+ ).
|
69
|
+
# Alias for {String#sha2} with default value ( +sha2(bitlen: 256)+ ).
|
68
70
|
def sha2_256
|
69
71
|
sha2
|
70
72
|
end
|
71
73
|
|
72
|
-
# Alias for {#sha2!} with default value ( +sha2!(bitlen: 256)+ ).
|
74
|
+
# Alias for {String#sha2!} with default value ( +sha2!(bitlen: 256)+ ).
|
73
75
|
def sha2_256!
|
74
76
|
replace(sha2)
|
75
77
|
end
|
76
78
|
|
77
|
-
# Alias for {#sha2} with default value ( +sha2(bitlen: 384)+ ).
|
79
|
+
# Alias for {String#sha2} with default value ( +sha2(bitlen: 384)+ ).
|
78
80
|
def sha2_384
|
79
81
|
sha2(bitlen: 384)
|
80
82
|
end
|
81
83
|
|
82
|
-
# Alias for {#sha2!} with default value ( +sha2!(bitlen: 384)+ ).
|
84
|
+
# Alias for {String#sha2!} with default value ( +sha2!(bitlen: 384)+ ).
|
83
85
|
def sha2_384!
|
84
86
|
replace(sha2(bitlen: 384))
|
85
87
|
end
|
86
88
|
|
87
|
-
# Alias for {#sha2} with default value ( +sha2(bitlen: 512)+ ).
|
89
|
+
# Alias for {String#sha2} with default value ( +sha2(bitlen: 512)+ ).
|
88
90
|
def sha2_512
|
89
91
|
sha2(bitlen: 512)
|
90
92
|
end
|
91
93
|
|
92
|
-
# Alias for {#sha2!} with default value ( +sha2!(bitlen: 512)+ ).
|
94
|
+
# Alias for {String#sha2!} with default value ( +sha2!(bitlen: 512)+ ).
|
93
95
|
def sha2_512!
|
94
96
|
replace(sha2(bitlen: 512))
|
95
97
|
end
|
@@ -104,7 +106,7 @@ class String
|
|
104
106
|
end
|
105
107
|
|
106
108
|
# Calculate the RIPEMD-160 hash of the string in place as described for
|
107
|
-
# {#rmd160}.
|
109
|
+
# {String#rmd160}.
|
108
110
|
# @example
|
109
111
|
# pl = 'payload' # => "payload"
|
110
112
|
# pl.rmd160! # => "3c6255c112d409dafdb84d5b0edba98dfd27b44f"
|
data/lib/ctf_party/flag.rb
CHANGED
@@ -0,0 +1,134 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class String
|
4
|
+
# Encode an hexadecimal string to a decimal string
|
5
|
+
# @param opts [Hash] optional parameters
|
6
|
+
# @option opts [String] :prefix Prefix of the input. Default value is a void
|
7
|
+
# string. Example of values: +0x+, +\x+.
|
8
|
+
# @return [String] the decimal encoded string
|
9
|
+
# @example
|
10
|
+
# 'ff'.hex2dec # => "255"
|
11
|
+
# '\xf3'.hex2dec(prefix: '\x') # => "243"
|
12
|
+
def hex2dec(opts = {})
|
13
|
+
opts[:prefix] ||= ''
|
14
|
+
# remove prefix
|
15
|
+
out = sub(opts[:prefix], '')
|
16
|
+
# convert
|
17
|
+
return out.hex.to_s
|
18
|
+
end
|
19
|
+
|
20
|
+
# Encode an hexadecimal string to a decimal string in place as described
|
21
|
+
# for {String#hex2dec}.
|
22
|
+
# @example
|
23
|
+
# a = 'ff'
|
24
|
+
# a.hex2dec!
|
25
|
+
# a # => => "255"
|
26
|
+
def hex2dec!(opts = {})
|
27
|
+
replace(hex2dec(opts))
|
28
|
+
end
|
29
|
+
|
30
|
+
# Encode an decimal string to a hexadecimal string
|
31
|
+
# @param opts [Hash] optional parameters
|
32
|
+
# @option opts [String] :prefix Prefix of the output. Default value is a void
|
33
|
+
# string. Example of values: +0x+, +\x+.
|
34
|
+
# @option opts [Symbol] :case Char case of the ouput. Default value +:lower+.
|
35
|
+
# Other valid value +:upper+.
|
36
|
+
# @return [String] the hexadecimal encoded string
|
37
|
+
# @example
|
38
|
+
# '255'.dec2hex # => "ff"
|
39
|
+
# '255'.dec2hex({prefix: '0x', case: :upper}) # => "0xFF"
|
40
|
+
def dec2hex(opts = {})
|
41
|
+
opts[:prefix] ||= ''
|
42
|
+
opts[:case] ||= :lower
|
43
|
+
# convert
|
44
|
+
out = to_i.to_s(16)
|
45
|
+
# char case management
|
46
|
+
out = out.upcase if opts[:case] == :upper
|
47
|
+
# adding prefix must be done after case change
|
48
|
+
return opts[:prefix] + out
|
49
|
+
end
|
50
|
+
|
51
|
+
# Encode an decimal string to a hexadecimal string in place as described
|
52
|
+
# for {String#dec2hex}.
|
53
|
+
# @example
|
54
|
+
# a = '255'
|
55
|
+
# a.dec2hex!
|
56
|
+
# a # => "ff"
|
57
|
+
def dec2hex!(opts = {})
|
58
|
+
replace(dec2hex(opts))
|
59
|
+
end
|
60
|
+
|
61
|
+
# Encode a string into hexadecimal
|
62
|
+
# @param opts [Hash] optional parameters
|
63
|
+
# @option opts [String] :prefix Prefix of the output. Default value is a void
|
64
|
+
# string. Example of values: +0x+, +\x+.
|
65
|
+
# @option opts [Symbol] :case Char case of the ouput. Default value +:lower+.
|
66
|
+
# Other valid value +:upper+.
|
67
|
+
# @option opts [Symbol] :nibble Display output with high nibble first
|
68
|
+
# (+:high+ default) or low nibble first (+:low+).
|
69
|
+
# @return [String] the hexadecimal encoded string
|
70
|
+
# @example
|
71
|
+
# 'noraj'.to_hex # => "6e6f72616a"
|
72
|
+
# 'noraj'.to_hex(prefix: '0x') # => "0x6e6f72616a"
|
73
|
+
# 'noraj'.to_hex(case: :upper) # => "6E6F72616A"
|
74
|
+
# 'noraj'.to_hex(nibble: :low) # => "e6f62716a6"
|
75
|
+
def to_hex(opts = {})
|
76
|
+
opts[:prefix] ||= ''
|
77
|
+
opts[:case] ||= :lower
|
78
|
+
opts[:nibble] ||= :high
|
79
|
+
# convert
|
80
|
+
out = ''
|
81
|
+
if opts[:nibble] == :high
|
82
|
+
out = unpack1('H*')
|
83
|
+
elsif opts[:nibble] == :low
|
84
|
+
out = unpack1('h*')
|
85
|
+
end
|
86
|
+
# char case management
|
87
|
+
out = out.upcase if opts[:case] == :upper
|
88
|
+
# adding prefix must be done after case change
|
89
|
+
return opts[:prefix] + out
|
90
|
+
end
|
91
|
+
|
92
|
+
# Encode a string into hexadecimal in place as described
|
93
|
+
# for {String#to_hex}.
|
94
|
+
# @example
|
95
|
+
# a = 'noraj'
|
96
|
+
# a.to_hex!
|
97
|
+
# a # => "6e6f72616a"
|
98
|
+
def to_hex!(opts = {})
|
99
|
+
replace(to_hex(opts))
|
100
|
+
end
|
101
|
+
|
102
|
+
# Decode a hexadecimal string
|
103
|
+
# @param opts [Hash] optional parameters
|
104
|
+
# @option opts [String] :prefix Prefix of the input. Default value is a void
|
105
|
+
# string. Example of values: +0x+, +\x+.
|
106
|
+
# @option opts [Symbol] :nibble Display input with high nibble first
|
107
|
+
# (+:high+ default) or low nibble first (+:low+).
|
108
|
+
# @return [String] the hexadecimal decoded string
|
109
|
+
# @example
|
110
|
+
# "6e6f72616a".from_hex # => "noraj"
|
111
|
+
# "0x6e6f72616a".from_hex(prefix: '0x') # => "noraj"
|
112
|
+
# "e6f62716a6".from_hex(nibble: :low) # => "noraj"
|
113
|
+
def from_hex(opts = {})
|
114
|
+
opts[:prefix] ||= ''
|
115
|
+
opts[:nibble] ||= :high
|
116
|
+
# remove prefix
|
117
|
+
out = sub(opts[:prefix], '')
|
118
|
+
# convert
|
119
|
+
return Array(out).pack('H*') if opts[:nibble] == :high
|
120
|
+
return Array(out).pack('h*') if opts[:nibble] == :low
|
121
|
+
|
122
|
+
raise ArgumentError ':nibble expects :high or :low'
|
123
|
+
end
|
124
|
+
|
125
|
+
# Decode a hexadecimal string in place as described
|
126
|
+
# for {String#from_hex}.
|
127
|
+
# @example
|
128
|
+
# a = "6e6f72616a"
|
129
|
+
# a.from_hex!
|
130
|
+
# a # => "noraj"
|
131
|
+
def from_hex!(opts = {})
|
132
|
+
replace(from_hex(opts))
|
133
|
+
end
|
134
|
+
end
|
data/lib/ctf_party/rot.rb
CHANGED
@@ -35,12 +35,12 @@ class String
|
|
35
35
|
replace(rot(opts))
|
36
36
|
end
|
37
37
|
|
38
|
-
# Alias for {#rot} with default value ( +rot(shift: 13)+ ).
|
38
|
+
# Alias for {String#rot} with default value ( +rot(shift: 13)+ ).
|
39
39
|
def rot13
|
40
40
|
rot
|
41
41
|
end
|
42
42
|
|
43
|
-
# Alias for {#rot!} with default value ( +rot!(shift: 13)+ ).
|
43
|
+
# Alias for {String#rot!} with default value ( +rot!(shift: 13)+ ).
|
44
44
|
def rot13!
|
45
45
|
rot!
|
46
46
|
end
|
data/lib/ctf_party/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ctf-party
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre ZANNI
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '2.
|
19
|
+
version: '2.1'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '2.
|
26
|
+
version: '2.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: commonmarker
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,56 +58,56 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '5
|
61
|
+
version: '5'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '5
|
68
|
+
version: '5'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '13.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '13.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: redcarpet
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '3.
|
89
|
+
version: '3.5'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '3.
|
96
|
+
version: '3.5'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rubocop
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - "~>"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0.
|
103
|
+
version: '0.80'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0.
|
110
|
+
version: '0.80'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: yard
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,69 +122,24 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0.9'
|
125
|
-
description: A library to enhance and speed up script/exploit
|
125
|
+
description: A library to enhance and speed up script/exploit writingfor CTF players
|
126
126
|
(or security researchers, bug bountyhunters, pentesters but mostly focused on CTF)
|
127
127
|
bypatching the String class to add a short syntax of usual code patterns.
|
128
128
|
email: alexandre.zanni@engineer.com
|
129
129
|
executables:
|
130
130
|
- ctf_party_console
|
131
|
-
- ctf_party_setup
|
132
131
|
extensions: []
|
133
132
|
extra_rdoc_files: []
|
134
133
|
files:
|
135
|
-
- ".rubocop.yml"
|
136
|
-
- ".yardopts"
|
137
|
-
- ".yardopts-dev"
|
138
|
-
- Gemfile
|
139
|
-
- Gemfile.lock
|
140
134
|
- LICENSE.txt
|
141
|
-
- README.md
|
142
|
-
- Rakefile
|
143
135
|
- bin/ctf_party_console
|
144
|
-
- bin/ctf_party_setup
|
145
|
-
- docs/.nojekyll
|
146
|
-
- docs/About.md
|
147
|
-
- docs/CHANGELOG.md
|
148
|
-
- docs/README.md
|
149
|
-
- docs/_coverpage.md
|
150
|
-
- docs/_media/logo.png
|
151
|
-
- docs/_navbar.md
|
152
|
-
- docs/_sidebar.md
|
153
|
-
- docs/index.html
|
154
|
-
- docs/pages/documentation.md
|
155
|
-
- docs/pages/install.md
|
156
|
-
- docs/pages/publishing.md
|
157
|
-
- docs/pages/quick-start.md
|
158
|
-
- docs/pages/usage.md
|
159
|
-
- docs/vendor/docsify.js
|
160
|
-
- docs/vendor/plugins/emoji.min.js
|
161
|
-
- docs/vendor/plugins/search.min.js
|
162
|
-
- docs/vendor/prismjs/components/prism-ruby.min.js
|
163
|
-
- docs/vendor/themes/vue.css
|
164
|
-
- docs/yard/String.html
|
165
|
-
- docs/yard/Version.html
|
166
|
-
- docs/yard/_index.html
|
167
|
-
- docs/yard/class_list.html
|
168
|
-
- docs/yard/css/common.css
|
169
|
-
- docs/yard/css/full_list.css
|
170
|
-
- docs/yard/css/style.css
|
171
|
-
- docs/yard/file.LICENSE.html
|
172
|
-
- docs/yard/file.README.html
|
173
|
-
- docs/yard/file_list.html
|
174
|
-
- docs/yard/frames.html
|
175
|
-
- docs/yard/index.html
|
176
|
-
- docs/yard/js/app.js
|
177
|
-
- docs/yard/js/full_list.js
|
178
|
-
- docs/yard/js/jquery.js
|
179
|
-
- docs/yard/method_list.html
|
180
|
-
- docs/yard/top-level-namespace.html
|
181
136
|
- lib/ctf_party.rb
|
182
137
|
- lib/ctf_party/base64.rb
|
183
138
|
- lib/ctf_party/digest.rb
|
184
139
|
- lib/ctf_party/flag.rb
|
140
|
+
- lib/ctf_party/hex.rb
|
185
141
|
- lib/ctf_party/rot.rb
|
186
142
|
- lib/ctf_party/version.rb
|
187
|
-
- test/test_string.rb
|
188
143
|
homepage: https://orange-cyberdefense.github.io/ctf-party/
|
189
144
|
licenses:
|
190
145
|
- MIT
|
@@ -210,9 +165,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
165
|
- !ruby/object:Gem::Version
|
211
166
|
version: '0'
|
212
167
|
requirements: []
|
213
|
-
rubygems_version: 3.
|
168
|
+
rubygems_version: 3.1.2
|
214
169
|
signing_key:
|
215
170
|
specification_version: 4
|
216
|
-
summary: A library to enhance and speed up script/exploit
|
217
|
-
test_files:
|
218
|
-
- test/test_string.rb
|
171
|
+
summary: A library to enhance and speed up script/exploit writing for CTF players
|
172
|
+
test_files: []
|