ronin 2.0.0.beta4 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5047531634d67c95bffe7f55e125d652912fbc93017b7b84d9799e5fda3a4c55
4
- data.tar.gz: 60b99b27727f849d19cb3518aecc6784069533f1ef2dfd4a66faed0b9fc6633f
3
+ metadata.gz: 5b96dfac7bb76a9141b93ec0fb0de42a39b33b395ba1a0d946ad6a1be89f080f
4
+ data.tar.gz: bddecb41842c7930939cce565afc39d93881c27bff7ef51cfb9f730d2e77e020
5
5
  SHA512:
6
- metadata.gz: '08cec0e4936d6a029ff5b71d5a35e348c8e5beee92a1042121fcbe379f65eeed38b84a63fa319c5b314090e6ffc2d80005acfef1e061e90e81d28c1e867409ce'
7
- data.tar.gz: dd78e3a1fd48f63ff26cc26eaecab7d7efe2e72369f5e166c39c418dc8e097853bb97cb12cac84e24705a6c56bbc2b2aa458e3b649946030328980979390876e
6
+ metadata.gz: 3c61141e197c44975416cc10c76a13962b9bc3764d1892fc60ded4785aabf960eeab2bbdfb8b1d5e0c6db523afeb3f46c9c9fcb35c15d581fbdab287e185889a
7
+ data.tar.gz: 1d8f93d1f6bcef6b08cafc1527bfa81d46ab7ddb31bdab97813c4cc3b40c30674d31593a513dcf3468a7ad80134b00165f0cbf1dbb3bcf059f17a828e6dbfd20
@@ -21,6 +21,7 @@ jobs:
21
21
  uses: ruby/setup-ruby@v1
22
22
  with:
23
23
  ruby-version: ${{ matrix.ruby }}
24
+ bundler-cache: true
24
25
  - name: Install libsqlite3
25
26
  run: |
26
27
  sudo apt update -y && \
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  [![CI](https://github.com/ronin-rb/ronin/actions/workflows/ruby.yml/badge.svg)](https://github.com/ronin-rb/ronin/actions/workflows/ruby.yml)
4
4
  [![Code Climate](https://codeclimate.com/github/ronin-rb/ronin.svg)](https://codeclimate.com/github/ronin-rb/ronin)
5
+ [![Gem Version](https://badge.fury.io/rb/ronin.svg)](https://badge.fury.io/rb/ronin)
5
6
 
6
7
  * [Website](https://ronin-rb.dev)
7
8
  * [Source](https://github.com/ronin-rb/ronin)
@@ -14,7 +15,7 @@
14
15
  ## Description
15
16
 
16
17
  [Ronin][website] is a free and Open Source [Ruby] toolkit for security research
17
- and development. Ronin contains many different [CLI commands](#snopsis) and
18
+ and development. Ronin contains many different [CLI commands](#synopsis) and
18
19
  [Ruby libraries][ronin-rb] for a variety of security tasks, such as
19
20
  encoding/decoding data, filter IPs/hosts/URLs, querying ASNs, querying DNS,
20
21
  HTTP, [scanning for web vulnerabilities][ronin-vulns-synopsis],
@@ -687,7 +688,7 @@ $ ronin typosquat --unregistered microsoft.com
687
688
 
688
689
  Dump information about a SSL/TLS certificate:
689
690
 
690
- ```shrll
691
+ ```shell
691
692
  $ ronin cert-dump https://example.com/
692
693
  ```
693
694
 
data/Rakefile CHANGED
@@ -23,6 +23,13 @@ Gem::Tasks.new(sign: {checksum: true, pgp: true})
23
23
 
24
24
  require 'rspec/core/rake_task'
25
25
  RSpec::Core::RakeTask.new
26
+
27
+ namespace :spec do
28
+ RSpec::Core::RakeTask.new(:integration) do |t|
29
+ t.rspec_opts = '--tag integration'
30
+ end
31
+ end
32
+
26
33
  task :test => :spec
27
34
  task :default => :spec
28
35
 
data/gemspec.yml CHANGED
@@ -96,17 +96,17 @@ dependencies:
96
96
  async-io: ~> 1.0
97
97
  wordlist: ~> 1.0
98
98
  # Ronin dependencies:
99
- ronin-support: ~> 1.0.0.beta2
100
- ronin-core: ~> 0.1.0.beta1
101
- ronin-repos: ~> 0.1.0.beta1
102
- ronin-db: ~> 0.1.0.beta2
103
- ronin-fuzzer: ~> 0.1.0.beta1
104
- ronin-web: ~> 1.0.0.beta3
105
- ronin-code-asm: ~> 1.0.0.beta1
106
- ronin-code-sql: ~> 2.0.0.beta1
107
- ronin-payloads: ~> 0.1.0.beta1
108
- ronin-exploits: ~> 1.0.0.beta2
109
- ronin-vulns: ~> 0.1.0.beta1
99
+ ronin-support: ~> 1.0
100
+ ronin-core: ~> 0.1
101
+ ronin-repos: ~> 0.1
102
+ ronin-db: ~> 0.1
103
+ ronin-fuzzer: ~> 0.1
104
+ ronin-web: ~> 1.0
105
+ ronin-code-asm: ~> 1.0
106
+ ronin-code-sql: ~> 2.0
107
+ ronin-payloads: ~> 0.1
108
+ ronin-exploits: ~> 1.0
109
+ ronin-vulns: ~> 0.1
110
110
 
111
111
  development_dependencies:
112
112
  bundler: ~> 2.0
@@ -40,7 +40,7 @@ module Ronin
40
40
  # -f, --file FILE Overrides the default ASN list file (Default: ~/.cache/ronin/ronin-support/ip2asn-combined.tsv.gz)
41
41
  # -u, --update Updates the ASN list file
42
42
  # -n, --number NUM|AS... Searches for all ASN records with the AS number
43
- # -C XX|None|Uknown, Searches for all ASN records with the country code
43
+ # -C XX|None|Unknown, Searches for all ASN records with the country code
44
44
  # --country-code
45
45
  # -N, --name NAME Searches for all ASN records with the matching name
46
46
  # -I, --ip IP Queries the ASN record for the IP
@@ -96,7 +96,7 @@ module Ronin
96
96
  option :country_code, short: '-C',
97
97
  value: {
98
98
  type: /[A-Z]{2}|None|Unknown/,
99
- usage: 'XX|None|Uknown'
99
+ usage: 'XX|None|Unknown'
100
100
  },
101
101
  desc: 'Searches for all ASN records with the country code'
102
102
 
@@ -107,7 +107,7 @@ module Ronin
107
107
  end
108
108
 
109
109
  #
110
- # Formats a bit-fipped string.
110
+ # Formats a bit-flipped string.
111
111
  #
112
112
  # @param [String] string
113
113
  # The bit-flipped String.
@@ -208,7 +208,7 @@ module Ronin
208
208
  end
209
209
 
210
210
  #
211
- # Optionally prints the filename or linenumber prefix for a line.
211
+ # Optionally prints the filename or line-number prefix for a line.
212
212
  #
213
213
  # @param [String] filename
214
214
  #
@@ -85,7 +85,7 @@ module Ronin
85
85
  end
86
86
 
87
87
  #
88
- # Syntax highlights an input strema.
88
+ # Syntax highlights an input stream.
89
89
  #
90
90
  # @param [File, IO] input
91
91
  # The input file or `stdin`.
@@ -266,6 +266,11 @@ module Ronin
266
266
  # @return [Hash{String => String}]
267
267
  attr_reader :query_params
268
268
 
269
+ # The body to send with the request.
270
+ #
271
+ # @return [String, nil]
272
+ attr_reader :body
273
+
269
274
  # Form data.
270
275
  #
271
276
  # @return [Hash{String => String}]
@@ -331,9 +336,15 @@ module Ronin
331
336
  query_params: @query_params,
332
337
  headers: @headers,
333
338
  body: @body,
334
- form_data: @form_data,
335
- &method(:print_response)
336
- )
339
+ form_data: @form_data
340
+ ) do |response|
341
+ # NOTE: we must call HTTP.request with a block to avoid causing
342
+ # #read_body to be called twice.
343
+ print_response(response)
344
+ end
345
+ rescue => error
346
+ print_error(error.message)
347
+ exit(1)
337
348
  end
338
349
 
339
350
  #
@@ -116,7 +116,7 @@ module Ronin
116
116
  end
117
117
 
118
118
  #
119
- # Gets a path to a random tipe.
119
+ # Gets a path to a random tip.
120
120
  #
121
121
  # @param [String, nil] category
122
122
  # The optional tips category to select the random tip from.
@@ -96,7 +96,7 @@ module Ronin
96
96
  end
97
97
 
98
98
  #
99
- # Enumerates over each typo squate of the domain.
99
+ # Enumerates over each typosquat of the domain.
100
100
  #
101
101
  # @param [String] domain
102
102
  # The domain to typo squat.
@@ -17,7 +17,7 @@
17
17
  #
18
18
 
19
19
  require 'ronin/cli/command'
20
- require 'ronin/support/binary/hexdump/parser'
20
+ require 'ronin/support/binary/unhexdump/parser'
21
21
 
22
22
  module Ronin
23
23
  class CLI
@@ -32,7 +32,7 @@ module Ronin
32
32
  # ## Options
33
33
  #
34
34
  # -o, --output FILE Optional output file
35
- # -f, --format od|hexdump Format of the hexdump input (Default: hexdump)
35
+ # -f, --format hexdump|od Format of the hexdump input (Default: hexdump)
36
36
  # -t int8|uint8|char|uchar|byte|int16|int16_le|int16_be|int16_ne|uint16|uint16_le|uint16_be|uint16_ne|short|short_le|short_be|short_ne|ushort|ushort_le|ushort_be|ushort_ne|int32|int32_le|int32_be|int32_ne|uint32|uint32_le|uint32_be|uint32_ne|int|long|long_le|long_be|long_ne|uint|ulong|ulong_le|ulong_be|ulong_ne|int64|int64_le|int64_be|int64_ne|uint64|uint64_le|uint64_be|uint64_ne|long_long|long_long_le|long_long_be|long_long_ne|ulong_long|ulong_long_le|ulong_long_be|ulong_long_ne|float|float_le|float_be|float_ne|double|double_le|double_be|double_ne,
37
37
  # --type The binary data type to decode the data as
38
38
  # -b, --base 2|8|10|16 Numerical base of the hexdumped numbers
@@ -124,7 +124,7 @@ module Ronin
124
124
 
125
125
  option :format, short: '-f',
126
126
  value: {
127
- type: [:od, :hexdump],
127
+ type: [:hexdump, :od],
128
128
  default: :hexdump
129
129
  },
130
130
  desc: 'Format of the hexdump input'
@@ -158,7 +158,7 @@ module Ronin
158
158
  # Optional input file.
159
159
  #
160
160
  def run(file=nil)
161
- parser = Support::Binary::Hexdump::Parser.new(
161
+ parser = Support::Binary::Unhexdump::Parser.new(
162
162
  **hexdump_parser_options
163
163
  )
164
164
 
@@ -182,6 +182,9 @@ module Ronin
182
182
  end
183
183
  end
184
184
 
185
+ # Maps command-line options to
186
+ # `Ronin::Support::Binary::Unhexdump::Parser#initialize` keyword
187
+ # arguments.
185
188
  HEXDUMP_PARSER_OPTIONS = [
186
189
  :format,
187
190
  :type,
@@ -193,7 +196,7 @@ module Ronin
193
196
  #
194
197
  # Builds a keyword arguments `Hash` of all command `options` that will
195
198
  # be directly passed to
196
- # `Ronin::Support::Binary::Hexdump::Parser#initialize`.
199
+ # `Ronin::Support::Binary::Unhexdump::Parser#initialize`.
197
200
  #
198
201
  # @return [Hash{Symbol => Object}]
199
202
  #
@@ -328,7 +328,7 @@ module Ronin
328
328
  # Sends an HTTP request.
329
329
  #
330
330
  # @param [Symbol] method
331
- # The HTTP request mehtod name.
331
+ # The HTTP request method name.
332
332
  #
333
333
  # @param [String] path
334
334
  # The path for the request.
@@ -49,7 +49,7 @@ module Ronin
49
49
  last_chunk = nil
50
50
 
51
51
  response.read_body do |chunk|
52
- print chunk
52
+ stdout.write(chunk)
53
53
 
54
54
  last_chunk = chunk
55
55
  end
@@ -60,7 +60,7 @@ module Ronin
60
60
  #
61
61
  # Returns the syntax lexer for the given `Content-Type` header.
62
62
  #
63
- # @param [String] content_type
63
+ # @param [String, nil] content_type
64
64
  # The HTTP `Content-Type` header value.
65
65
  #
66
66
  # @return [Rouge::Lexers::HTML,
@@ -72,26 +72,27 @@ module Ronin
72
72
  # recognized.
73
73
  #
74
74
  def syntax_lexer_for_content_type(content_type)
75
- syntax_lexer_for(mimetype: content_type.sub(/;.*$/,''))
75
+ mimetype = content_type && content_type.sub(/;.*$/,'')
76
+
77
+ syntax_lexer_for(mimetype: mimetype)
76
78
  end
77
79
 
78
80
  #
79
- # Prints a syntax highlgihted response body.
81
+ # Prints a syntax highlighted response body.
80
82
  #
81
83
  # @param [Net::HTTPResponse] response
82
84
  # The HTTP response object.
83
85
  #
84
86
  def print_highlighted_body(response)
85
87
  content_type = response['Content-Type']
86
- is_utf8 = content_type && content_type.include?('charset=utf-8')
87
88
 
88
89
  lexer = syntax_lexer_for_content_type(content_type)
89
90
  last_chunk = nil
90
91
 
91
92
  response.read_body do |chunk|
92
- chunk.force_encoding(Encoding::UTF_8) if is_utf8
93
+ chunk.force_encoding(Encoding::UTF_8)
93
94
 
94
- print @syntax_formatter.format(lexer.lex(chunk))
95
+ stdout.write(@syntax_formatter.format(lexer.lex(chunk)))
95
96
 
96
97
  last_chunk = chunk
97
98
  end
@@ -114,7 +115,7 @@ module Ronin
114
115
  end
115
116
 
116
117
  #
117
- # Prints the respnse headers.
118
+ # Prints the response headers.
118
119
  #
119
120
  # @param [Net::HTTPResponse] response
120
121
  # The HTTP response object.
@@ -37,7 +37,7 @@ module Ronin
37
37
  attr_reader :string
38
38
 
39
39
  #
40
- # Initializes the stirng value.
40
+ # Initializes the string value.
41
41
  #
42
42
  # @param [String] string
43
43
  # The string value.
@@ -120,7 +120,7 @@ module Ronin
120
120
  # Runs the command.
121
121
  #
122
122
  # @param [Array<String>] files
123
- # Additional files to proceess.
123
+ # Additional files to process.
124
124
  #
125
125
  def run(*files)
126
126
  if (files.empty? && @input_values.empty?)
data/lib/ronin/cli.rb CHANGED
@@ -46,6 +46,7 @@ module Ronin
46
46
  command_aliases['dec'] = 'decode'
47
47
  command_aliases['nc'] = 'netcat'
48
48
 
49
+ # Additional `ronin-` commands to checkout.
49
50
  ADDITIONAL_RONIN_COMMANDS = %w[
50
51
  ronin-repos
51
52
  ronin-db
data/lib/ronin/version.rb CHANGED
@@ -18,5 +18,5 @@
18
18
 
19
19
  module Ronin
20
20
  # ronin version
21
- VERSION = '2.0.0.beta4'
21
+ VERSION = '2.0.0'
22
22
  end
data/man/ronin-asn.1 CHANGED
@@ -20,7 +20,7 @@ the given \fINUMBER\fP, \fINAME\fP, or \fICOUNTRY\fP code\.
20
20
  Prints multi\-line human readable output\.
21
21
  .LP
22
22
  .TP
23
- \fB-U\fR, \fB--ur\fRl \fIURI\fP
23
+ \fB-U\fR, \fB--url\fR \fIURI\fP
24
24
  Overrides the default ASN list URL\. Defaults to
25
25
  \fBhttps://iptoasn.com/data/ip2asn-combined.tsv.gz\fR\.
26
26
  .LP
@@ -38,7 +38,7 @@ Updates the ASN list file\.
38
38
  Searches for all ASN records with the AS number\.
39
39
  .LP
40
40
  .TP
41
- \fB-C\fR, \fB--country-code\fR \fIXX\fP\[or]\fBNone\fR\[or]\fBUknown\fR
41
+ \fB-C\fR, \fB--country-code\fR \fIXX\fP\[or]\fBNone\fR\[or]\fBUnknown\fR
42
42
  Searches for all ASN records with the country code\.
43
43
  .LP
44
44
  .TP
data/man/ronin-asn.1.md CHANGED
@@ -14,7 +14,7 @@ the given *NUMBER*, *NAME*, or *COUNTRY* code.
14
14
  `-v`, `--verbose`
15
15
  Prints multi-line human readable output.
16
16
 
17
- `-U`, `--ur`l *URI*
17
+ `-U`, `--url` *URI*
18
18
  Overrides the default ASN list URL. Defaults to
19
19
  `https://iptoasn.com/data/ip2asn-combined.tsv.gz`.
20
20
 
@@ -28,7 +28,7 @@ the given *NUMBER*, *NAME*, or *COUNTRY* code.
28
28
  `-n`, `--number` *NUM*\|AS*NUM*
29
29
  Searches for all ASN records with the AS number.
30
30
 
31
- `-C`, `--country-code` *XX*|`None`|`Uknown`
31
+ `-C`, `--country-code` *XX*|`None`|`Unknown`
32
32
  Searches for all ASN records with the country code.
33
33
 
34
34
  `-N`, `--name` *NAME*
@@ -55,35 +55,35 @@ Print help information\.
55
55
  Print the certificate information for the cert file:
56
56
  .LP
57
57
  .nf
58
- ronin cert\-dump ssl\.crt
58
+ ronin cert\-dump ssl\.crt
59
59
  .fi
60
60
  .LP
61
61
  .PP
62
62
  Print the certificate information for a SSL\[sl]TLS service:
63
63
  .LP
64
64
  .nf
65
- ronin cert\-dump github\.com:443
65
+ ronin cert\-dump github\.com:443
66
66
  .fi
67
67
  .LP
68
68
  .PP
69
69
  Print the certificate information for a URL:
70
70
  .LP
71
71
  .nf
72
- ronin cert\-dump https:\[sl]\[sl]github\.com
72
+ ronin cert\-dump https:\[sl]\[sl]github\.com
73
73
  .fi
74
74
  .LP
75
75
  .PP
76
- Only print the Common Nmae (CN) for a SSL\[sl]TLS service:
76
+ Only print the Common Name (CN) for a SSL\[sl]TLS service:
77
77
  .LP
78
78
  .nf
79
- ronin cert\-dump \-C 93\.184\.216\.34:443
79
+ ronin cert\-dump \-C 93\.184\.216\.34:443
80
80
  .fi
81
81
  .LP
82
82
  .PP
83
83
  Only print the \fBsubjectAltName\fRs for a SSL\[sl]TLS service:
84
84
  .LP
85
85
  .nf
86
- ronin cert\-dump \-A wired\.com:443
86
+ ronin cert\-dump \-A wired\.com:443
87
87
  .fi
88
88
  .LP
89
89
  .SH AUTHOR
@@ -41,23 +41,23 @@ Prints SSL/TLS certificate information for one or more SSL/TLS services,
41
41
 
42
42
  Print the certificate information for the cert file:
43
43
 
44
- ronin cert-dump ssl.crt
44
+ ronin cert-dump ssl.crt
45
45
 
46
46
  Print the certificate information for a SSL/TLS service:
47
47
 
48
- ronin cert-dump github.com:443
48
+ ronin cert-dump github.com:443
49
49
 
50
50
  Print the certificate information for a URL:
51
51
 
52
- ronin cert-dump https://github.com
52
+ ronin cert-dump https://github.com
53
53
 
54
- Only print the Common Nmae (CN) for a SSL/TLS service:
54
+ Only print the Common Name (CN) for a SSL/TLS service:
55
55
 
56
- ronin cert-dump -C 93.184.216.34:443
56
+ ronin cert-dump -C 93.184.216.34:443
57
57
 
58
58
  Only print the `subjectAltName`s for a SSL/TLS service:
59
59
 
60
- ronin cert-dump -A wired.com:443
60
+ ronin cert-dump -A wired.com:443
61
61
 
62
62
  ## AUTHOR
63
63
 
@@ -57,14 +57,14 @@ Print help information
57
57
  Deobfuscates an email address:
58
58
  .LP
59
59
  .nf
60
- \[Do] ronin email\-addr \-\-deobfuscate \[dq]john\[lC]DOT\[rC]smith\[lC]AT\[rC]example\[lC]DOT\[rC]com\[dq]\(aq
60
+ ronin email\-addr \-\-deobfuscate \[dq]john\[lC]DOT\[rC]smith\[lC]AT\[rC]example\[lC]DOT\[rC]com\[dq]\(aq
61
61
  .fi
62
62
  .LP
63
63
  .PP
64
64
  Extracts the domain name from a list of email addresses:
65
65
  .LP
66
66
  .nf
67
- \[Do] ronin email\-addr \-\-input emails\.txt \-\-domain
67
+ ronin email\-addr \-\-input emails\.txt \-\-domain
68
68
  .fi
69
69
  .LP
70
70
  .SH AUTHOR
@@ -42,11 +42,11 @@ Processes one or more email addresses.
42
42
 
43
43
  Deobfuscates an email address:
44
44
 
45
- $ ronin email-addr --deobfuscate "john{DOT}smith{AT}example{DOT}com"'
45
+ ronin email-addr --deobfuscate "john{DOT}smith{AT}example{DOT}com"'
46
46
 
47
47
  Extracts the domain name from a list of email addresses:
48
48
 
49
- $ ronin email-addr --input emails.txt --domain
49
+ ronin email-addr --input emails.txt --domain
50
50
 
51
51
  ## AUTHOR
52
52
 
data/man/ronin-hexdump.1 CHANGED
@@ -310,6 +310,195 @@ Background colors:
310
310
  \fBon_white\fR
311
311
  .RE
312
312
  .LP
313
+ .SH EXAMPLES
314
+ .LP
315
+ .PP
316
+ Hexdump a file:
317
+ .LP
318
+ .nf
319
+ \[Do] ronin hexdump \[sl]bin\[sl]ls
320
+ 00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 \[or]\.ELF\.\.\.\.\.\.\.\.\.\.\.\.\[or]
321
+ 00000010 03 00 3e 00 01 00 00 00 d0 6b 00 00 00 00 00 00 \[or]\.\.>\.\.\.\.\.\.k\.\.\.\.\.\.\[or]
322
+ 00000020 40 00 00 00 00 00 00 00 18 23 02 00 00 00 00 00 \[or]\[at]\.\.\.\.\.\.\.\.\[sh]\.\.\.\.\.\.\[or]
323
+ 00000030 00 00 00 00 40 00 38 00 0d 00 40 00 20 00 1f 00 \[or]\.\.\.\.\[at]\.8\.\.\.\[at]\. \.\.\.\[or]
324
+ 00000040 06 00 00 00 04 00 00 00 40 00 00 00 00 00 00 00 \[or]\.\.\.\.\.\.\.\.\[at]\.\.\.\.\.\.\.\[or]
325
+ 00000050 40 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 \[or]\[at]\.\.\.\.\.\.\.\[at]\.\.\.\.\.\.\.\[or]
326
+ \.\.\.
327
+ .fi
328
+ .LP
329
+ .PP
330
+ Hexdump a UTF\-8 data:
331
+ .LP
332
+ .nf
333
+ \[Do] ronin hexdump \-\-encoding utf8 file\.txt
334
+ 00000000 e8 80 80 e8 80 80 e8 80 80 e8 80 80 e8 80 80 e8 \[or]耀耀耀耀耀\.\[or]
335
+ 00000010 80 80 e8 80 80 e8 80 80 \[or]\.\.耀耀\[or]
336
+ 00000018
337
+ .fi
338
+ .LP
339
+ .PP
340
+ Control the number of columns:
341
+ .LP
342
+ .nf
343
+ \[Do] ronin hexdump \-\-columns 10 a\.txt
344
+ 00000000 41 41 41 41 41 41 41 41 41 41 \[or]AAAAAAAAAA\[or]
345
+ \.\.\.
346
+ .fi
347
+ .LP
348
+ .PP
349
+ Show repeating data instead of omitting them with a \fB*\fR:
350
+ .LP
351
+ .nf
352
+ \[Do] ronin hexdump \-\-repeating a\.txt
353
+ 00000000 41 41 41 41 41 41 41 41 41 41 \[or]AAAAAAAAAA\[or]
354
+ 0000000a 41 41 41 41 41 41 41 41 41 41 \[or]AAAAAAAAAA\[or]
355
+ 00000014 41 41 41 41 41 41 41 41 41 41 \[or]AAAAAAAAAA\[or]
356
+ .fi
357
+ .LP
358
+ .PP
359
+ Grouping columns together:
360
+ .LP
361
+ .nf
362
+ \[Do] ronin hexdump \-\-group\-columns 4 \-\-columns 16 abcd\.txt
363
+ 00000000 41 42 43 44 41 42 43 44 41 42 43 44 41 42 43 44 \[or]ABCDABCDABCDABCD\[or]
364
+ \.\.\.
365
+ .fi
366
+ .LP
367
+ .PP
368
+ Grouping the characters together:
369
+ .LP
370
+ .nf
371
+ \[Do] ronin hexdump \-\-group\-chars 4 abcd\.txt
372
+ 00000000 41 42 43 44 41 42 43 44 41 42 43 44 41 42 43 44 \[or]ABCD\[or]ABCD\[or]ABCD\[or]ABCD\[or]
373
+ \.\.\.
374
+ .fi
375
+ .LP
376
+ .PP
377
+ Disabling the characters column:
378
+ .LP
379
+ .nf
380
+ \[Do] ronin hexdump \-\-no\-chars\-column a\.txt
381
+ 00000000 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
382
+ \.\.\.
383
+ .fi
384
+ .LP
385
+ .PP
386
+ Print the numbers as decimals (base 10):
387
+ .LP
388
+ .nf
389
+ \[Do] ronin hexdump \-\-base 10 hello\.txt
390
+ 00000000 104 101 108 108 111 0 \[or]hello\.\[or]
391
+ .fi
392
+ .LP
393
+ .PP
394
+ Print the numbers as octals (base 8):
395
+ .LP
396
+ .nf
397
+ \[Do] ronin hexdump \-\-base 8 hello\.txt
398
+ 00000000 0150 0145 0154 0154 0157 0000 \[or]hello\.\[or]
399
+ .fi
400
+ .LP
401
+ .PP
402
+ Print the numbers as binary (base 2):
403
+ .LP
404
+ .nf
405
+ \[Do] ronin hexdump \-\-base 2 hello\.txt
406
+ 00000000 01101000 01100101 01101100 01101100 01101111 00000000 \[or]hello\.\[or]
407
+ .fi
408
+ .LP
409
+ .PP
410
+ Decode \fBuint32\fR values:
411
+ .LP
412
+ .nf
413
+ \[Do] ronin hexdump \-\-type uint32 abcd\.txt
414
+ 00000000 44434241 44434241 44434241 44434241 \[or]ABCDABCDABCDABCD\[or]
415
+ \.\.\.
416
+ .fi
417
+ .LP
418
+ .PP
419
+ Decode \fBuint32\fR (little\-endian) values:
420
+ .LP
421
+ .nf
422
+ \[Do] ronin hexdump \-\-type uint32\[ru]le abcd\.txt
423
+ 00000000 44434241 44434241 44434241 44434241 \[or]ABCDABCDABCDABCD\[or]
424
+ \.\.\.
425
+ .fi
426
+ .LP
427
+ .PP
428
+ Decode \fBuint32\fR (big\-endian) values:
429
+ .LP
430
+ .nf
431
+ \[Do] ronin hexdump \-\-type uint32\[ru]be abcd\.txt
432
+ 00000000 41424344 41424344 41424344 41424344 \[or]ABCDABCDABCDABCD\[or]
433
+ \.\.\.
434
+ .fi
435
+ .LP
436
+ .PP
437
+ Decode \fBint32\fR values:
438
+ .LP
439
+ .nf
440
+ \[Do] ronin hexdump \-\-type int32 \-\-base 10 data\.bin
441
+ 00000000 65535 \-1 \[or]\.\.\.\.\.\.\.\.\[or]
442
+ 00000008
443
+ .fi
444
+ .LP
445
+ .PP
446
+ Decode characters:
447
+ .LP
448
+ .nf
449
+ \[Do] ronin hexdump \-\-type char hello\.txt
450
+ 00000000 h e l l o \e0 \[or]hello\.\[or]
451
+ 00000006
452
+ .fi
453
+ .LP
454
+ .PP
455
+ Decode \fBfloat\fR values:
456
+ .LP
457
+ .nf
458
+ \[Do] ronin hexdump \-\-type float64\[ru]le floats\.bin
459
+ 00000000 0\.000000e\[pl]00 1\.000000e\[pl]00 \[or]\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.?\[or]
460
+ 00000010 \-1\.000000e\[pl]00 NaN \[or]\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\.\[or]
461
+ \.\.\.
462
+ .fi
463
+ .LP
464
+ .PP
465
+ Skipping to an offset:
466
+ .LP
467
+ .nf
468
+ \[Do] ronin hexdump \-\-offset 7 data\.bin
469
+ .fi
470
+ .LP
471
+ .PP
472
+ Zero\-pad the data:
473
+ .LP
474
+ .nf
475
+ \[Do] ronin hexdump \-\-type uint32\[ru]be \-\-zero\-pad abcd\.txt
476
+ 00000000 41424344 41424344 41424344 41424344 \[or]ABCDABCDABCDABCD\[or]
477
+ 00000010 41420000 \[or]AB\.\.\[or]
478
+ 00000014
479
+ .fi
480
+ .LP
481
+ .PP
482
+ ANSI coloring:
483
+ .LP
484
+ .nf
485
+ \[Do] ronin hexdump \-\-style\-index white \e
486
+ \-\-style\-numeric green \e
487
+ \-\-style\-chars cyan \e
488
+ data\.bin
489
+ .fi
490
+ .LP
491
+ .PP
492
+ ANSI highlighting:
493
+ .LP
494
+ .nf
495
+ \[Do] ronin hexdump \-\-highlight\-index \[sl]00\[Do]\[sl]:white,bold \e
496
+ \-\-highlight\-numeric \[sl]\(ha\[lB]8\-f\[rB]\[lB]0\-9a\-f\[rB]\[Do]\[sl]:faint \e
497
+ \-\-highlight\-numeric \[sl]f\[sl]:cyan \e
498
+ \-\-highlight\-numeric 00:black,on\[ru]red \e
499
+ \-\-highlight\-chars \[sl]\[lB]\(ha\e\.\[rB]\[pl]\[sl]:green data\.bin
500
+ .fi
501
+ .LP
313
502
  .SH AUTHOR
314
503
  .LP
315
504
  .PP
@@ -188,6 +188,135 @@ Background colors:
188
188
  * `on_cyan`
189
189
  * `on_white`
190
190
 
191
+ ## EXAMPLES
192
+
193
+ Hexdump a file:
194
+
195
+ $ ronin hexdump /bin/ls
196
+ 00000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
197
+ 00000010 03 00 3e 00 01 00 00 00 d0 6b 00 00 00 00 00 00 |..>......k......|
198
+ 00000020 40 00 00 00 00 00 00 00 18 23 02 00 00 00 00 00 |@........#......|
199
+ 00000030 00 00 00 00 40 00 38 00 0d 00 40 00 20 00 1f 00 |....@.8...@. ...|
200
+ 00000040 06 00 00 00 04 00 00 00 40 00 00 00 00 00 00 00 |........@.......|
201
+ 00000050 40 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 |@.......@.......|
202
+ ...
203
+
204
+ Hexdump a UTF-8 data:
205
+
206
+ $ ronin hexdump --encoding utf8 file.txt
207
+ 00000000 e8 80 80 e8 80 80 e8 80 80 e8 80 80 e8 80 80 e8 |耀耀耀耀耀.|
208
+ 00000010 80 80 e8 80 80 e8 80 80 |..耀耀|
209
+ 00000018
210
+
211
+ Control the number of columns:
212
+
213
+ $ ronin hexdump --columns 10 a.txt
214
+ 00000000 41 41 41 41 41 41 41 41 41 41 |AAAAAAAAAA|
215
+ ...
216
+
217
+ Show repeating data instead of omitting them with a `*`:
218
+
219
+ $ ronin hexdump --repeating a.txt
220
+ 00000000 41 41 41 41 41 41 41 41 41 41 |AAAAAAAAAA|
221
+ 0000000a 41 41 41 41 41 41 41 41 41 41 |AAAAAAAAAA|
222
+ 00000014 41 41 41 41 41 41 41 41 41 41 |AAAAAAAAAA|
223
+
224
+ Grouping columns together:
225
+
226
+ $ ronin hexdump --group-columns 4 --columns 16 abcd.txt
227
+ 00000000 41 42 43 44 41 42 43 44 41 42 43 44 41 42 43 44 |ABCDABCDABCDABCD|
228
+ ...
229
+
230
+ Grouping the characters together:
231
+
232
+ $ ronin hexdump --group-chars 4 abcd.txt
233
+ 00000000 41 42 43 44 41 42 43 44 41 42 43 44 41 42 43 44 |ABCD|ABCD|ABCD|ABCD|
234
+ ...
235
+
236
+ Disabling the characters column:
237
+
238
+ $ ronin hexdump --no-chars-column a.txt
239
+ 00000000 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41
240
+ ...
241
+
242
+ Print the numbers as decimals (base 10):
243
+
244
+ $ ronin hexdump --base 10 hello.txt
245
+ 00000000 104 101 108 108 111 0 |hello.|
246
+
247
+ Print the numbers as octals (base 8):
248
+
249
+ $ ronin hexdump --base 8 hello.txt
250
+ 00000000 0150 0145 0154 0154 0157 0000 |hello.|
251
+
252
+ Print the numbers as binary (base 2):
253
+
254
+ $ ronin hexdump --base 2 hello.txt
255
+ 00000000 01101000 01100101 01101100 01101100 01101111 00000000 |hello.|
256
+
257
+ Decode `uint32` values:
258
+
259
+ $ ronin hexdump --type uint32 abcd.txt
260
+ 00000000 44434241 44434241 44434241 44434241 |ABCDABCDABCDABCD|
261
+ ...
262
+
263
+ Decode `uint32` (little-endian) values:
264
+
265
+ $ ronin hexdump --type uint32_le abcd.txt
266
+ 00000000 44434241 44434241 44434241 44434241 |ABCDABCDABCDABCD|
267
+ ...
268
+
269
+ Decode `uint32` (big-endian) values:
270
+
271
+ $ ronin hexdump --type uint32_be abcd.txt
272
+ 00000000 41424344 41424344 41424344 41424344 |ABCDABCDABCDABCD|
273
+ ...
274
+
275
+ Decode `int32` values:
276
+
277
+ $ ronin hexdump --type int32 --base 10 data.bin
278
+ 00000000 65535 -1 |........|
279
+ 00000008
280
+
281
+ Decode characters:
282
+
283
+ $ ronin hexdump --type char hello.txt
284
+ 00000000 h e l l o \0 |hello.|
285
+ 00000006
286
+
287
+ Decode `float` values:
288
+
289
+ $ ronin hexdump --type float64_le floats.bin
290
+ 00000000 0.000000e+00 1.000000e+00 |...............?|
291
+ 00000010 -1.000000e+00 NaN |................|
292
+ ...
293
+
294
+ Skipping to an offset:
295
+
296
+ $ ronin hexdump --offset 7 data.bin
297
+
298
+ Zero-pad the data:
299
+
300
+ $ ronin hexdump --type uint32_be --zero-pad abcd.txt
301
+ 00000000 41424344 41424344 41424344 41424344 |ABCDABCDABCDABCD|
302
+ 00000010 41420000 |AB..|
303
+ 00000014
304
+
305
+ ANSI coloring:
306
+
307
+ $ ronin hexdump --style-index white \
308
+ --style-numeric green \
309
+ --style-chars cyan \
310
+ data.bin
311
+
312
+ ANSI highlighting:
313
+
314
+ $ ronin hexdump --highlight-index /00$/:white,bold \
315
+ --highlight-numeric /^[8-f][0-9a-f]$/:faint \
316
+ --highlight-numeric /f/:cyan \
317
+ --highlight-numeric 00:black,on_red \
318
+ --highlight-chars /[^\.]+/:green data.bin
319
+
191
320
  ## AUTHOR
192
321
 
193
322
  Postmodern <postmodern.mod3@gmail.com>
@@ -41,6 +41,36 @@ Adds a \fBDockerfile\fR to the new project\.
41
41
  \fB-h\fR, \fB--help\fR
42
42
  Print help information
43
43
  .LP
44
+ .SH EXAMPLES
45
+ .LP
46
+ .PP
47
+ Generate a new Ruby project:
48
+ .LP
49
+ .nf
50
+ ronin new project path\[sl]to\[sl]dir
51
+ .fi
52
+ .LP
53
+ .PP
54
+ Set the desired ruby version for the project:
55
+ .LP
56
+ .nf
57
+ ronin new project \-\-ruby\-version 3\.2\.0 path\[sl]to\[sl]dir
58
+ .fi
59
+ .LP
60
+ .PP
61
+ Add a \fBRakefile\fR to the project for defining automated tasks:
62
+ .LP
63
+ .nf
64
+ ronin new project \-\-rakefile path\[sl]to\[sl]dir
65
+ .fi
66
+ .LP
67
+ .PP
68
+ Add a \fBDockerfile\fR to the project:
69
+ .LP
70
+ .nf
71
+ ronin new project \-\-dockerfile path\[sl]to\[sl]dir
72
+ .fi
73
+ .LP
44
74
  .SH AUTHOR
45
75
  .LP
46
76
  .PP
@@ -31,6 +31,24 @@ Creates a new Ruby project directory.
31
31
  `-h`, `--help`
32
32
  Print help information
33
33
 
34
+ ## EXAMPLES
35
+
36
+ Generate a new Ruby project:
37
+
38
+ ronin new project path/to/dir
39
+
40
+ Set the desired ruby version for the project:
41
+
42
+ ronin new project --ruby-version 3.2.0 path/to/dir
43
+
44
+ Add a `Rakefile` to the project for defining automated tasks:
45
+
46
+ ronin new project --rakefile path/to/dir
47
+
48
+ Add a `Dockerfile` to the project:
49
+
50
+ ronin new project --dockerfile path/to/dir
51
+
34
52
  ## AUTHOR
35
53
 
36
54
  Postmodern <postmodern.mod3@gmail.com>
@@ -24,6 +24,15 @@ The path to the new script file\.
24
24
  \fB-h\fR, \fB--help\fR
25
25
  Print help information
26
26
  .LP
27
+ .SH EXAMPLES
28
+ .LP
29
+ .PP
30
+ Generate a new Ruby script:
31
+ .LP
32
+ .nf
33
+ ronin new script file\.rb
34
+ .fi
35
+ .LP
27
36
  .SH AUTHOR
28
37
  .LP
29
38
  .PP
@@ -18,6 +18,12 @@ Creates a new standalone Ruby script.
18
18
  `-h`, `--help`
19
19
  Print help information
20
20
 
21
+ ## EXAMPLES
22
+
23
+ Generate a new Ruby script:
24
+
25
+ ronin new script file.rb
26
+
21
27
  ## AUTHOR
22
28
 
23
29
  Postmodern <postmodern.mod3@gmail.com>
data/man/ronin-new.1 CHANGED
@@ -38,6 +38,22 @@ Generates a new standalone Ruby script\.
38
38
  \fIhelp\fP
39
39
  Lists available \fBronin new\fR commands\.
40
40
  .LP
41
+ .SH EXAMPLES
42
+ .LP
43
+ .PP
44
+ Generate a new Ruby script:
45
+ .LP
46
+ .nf
47
+ ronin new script file\.rb
48
+ .fi
49
+ .LP
50
+ .PP
51
+ Generate a new Ruby project:
52
+ .LP
53
+ .nf
54
+ ronin new project path\[sl]to\[sl]dir
55
+ .fi
56
+ .LP
41
57
  .SH AUTHOR
42
58
  .LP
43
59
  .PP
data/man/ronin-new.1.md CHANGED
@@ -29,6 +29,16 @@ Creates a new project or script.
29
29
  *help*
30
30
  Lists available `ronin new` commands.
31
31
 
32
+ ## EXAMPLES
33
+
34
+ Generate a new Ruby script:
35
+
36
+ ronin new script file.rb
37
+
38
+ Generate a new Ruby project:
39
+
40
+ ronin new project path/to/dir
41
+
32
42
  ## AUTHOR
33
43
 
34
44
  Postmodern <postmodern.mod3@gmail.com>
data/man/ronin-proxy.1 CHANGED
@@ -5,7 +5,7 @@
5
5
  .SH SYNOPSIS
6
6
  .LP
7
7
  .HP
8
- \fBronin proxy\fR \[lB]\fIoptions\fP\[rB] \[lB]\fIPROXY\[ru]HOST\fP:\[rB]\fIPROXY\[ru]PORT\fP \fIUPSTREAM\[ru]HOST\fP:\fIUPSTRAM\[ru]PORT\fP
8
+ \fBronin proxy\fR \[lB]\fIoptions\fP\[rB] \[lB]\fIPROXY\[ru]HOST\fP:\[rB]\fIPROXY\[ru]PORT\fP \fIUPSTREAM\[ru]HOST\fP:\fIUPSTREAM\[ru]PORT\fP
9
9
  .LP
10
10
  .SH DESCRIPTION
11
11
  .LP
@@ -104,15 +104,21 @@ Reset the connection if the server sends a message matching the REGEXP\.
104
104
  .LP
105
105
  .SH EXAMPLES
106
106
  .LP
107
- .TP
108
- \fBronin proxy 8080 google.com:80\fR
107
+ .PP
109
108
  Starts a TCP proxy listening on \fBlocalhost\fR port 8080 that forwards all data
110
- to \fBgoogle.com\fR port 80\.
109
+ to \fBgoogle.com\fR port 80:
111
110
  .LP
112
- .TP
113
- \fBsudo ronin proxy --udp --hexdump 0.0.0.0:53 8.8.8.8:53\fR
111
+ .nf
112
+ ronin proxy 8080 google\.com:80
113
+ .fi
114
+ .LP
115
+ .PP
114
116
  Starts a UDP proxy listening on \fB0.8.0.0\fR port 53 that forwards all data to
115
- \fB8.8.8.8\fR port 53\.
117
+ \fB8.8.8.8\fR port 53:
118
+ .LP
119
+ .nf
120
+ sudo ronin proxy \-\-udp \-\-hexdump 0\.0\.0\.0:53 8\.8\.8\.8:53
121
+ .fi
116
122
  .LP
117
123
  .SH AUTHOR
118
124
  .LP
data/man/ronin-proxy.1.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## SYNOPSIS
4
4
 
5
- `ronin proxy` [*options*] [*PROXY_HOST*:]*PROXY_PORT* *UPSTREAM_HOST*:*UPSTRAM_PORT*
5
+ `ronin proxy` [*options*] [*PROXY_HOST*:]*PROXY_PORT* *UPSTREAM_HOST*:*UPSTREAM_PORT*
6
6
 
7
7
  ## DESCRIPTION
8
8
 
@@ -79,13 +79,15 @@ Starts the Ronin TCP/UDP/SSL/TLS Proxy.
79
79
 
80
80
  ## EXAMPLES
81
81
 
82
- `ronin proxy 8080 google.com:80`
83
- Starts a TCP proxy listening on `localhost` port 8080 that forwards all data
84
- to `google.com` port 80.
82
+ Starts a TCP proxy listening on `localhost` port 8080 that forwards all data
83
+ to `google.com` port 80:
85
84
 
86
- `sudo ronin proxy --udp --hexdump 0.0.0.0:53 8.8.8.8:53`
87
- Starts a UDP proxy listening on `0.8.0.0` port 53 that forwards all data to
88
- `8.8.8.8` port 53.
85
+ ronin proxy 8080 google.com:80
86
+
87
+ Starts a UDP proxy listening on `0.8.0.0` port 53 that forwards all data to
88
+ `8.8.8.8` port 53:
89
+
90
+ sudo ronin proxy --udp --hexdump 0.0.0.0:53 8.8.8.8:53
89
91
 
90
92
  ## AUTHOR
91
93
 
@@ -25,6 +25,10 @@ The optional path to the file to un\-hexdump\.
25
25
  \fB-o\fR, \fB--output\fR \fIFILE\fP
26
26
  Optional path to the output file\.
27
27
  .LP
28
+ .HP
29
+ \fB-f\fR, \fB--format\fR \[lB]\fBhexdump\fR\[or]\fBod\fR\[rB]
30
+ Specifies the hexdump format to parse\.
31
+ .LP
28
32
  .TP
29
33
  \fB-t\fR, \fB--type\fR \fITYPE\fP
30
34
  The binary data type to decode the data as\. Must be one of the following:
@@ -174,6 +178,29 @@ Enables parsing of \fBod\fR\-style named characters (ex: \fBnul\fR)\.
174
178
  \fB-h\fR, \fB--help\fR
175
179
  Prints help information\.
176
180
  .LP
181
+ .SH EXAMPLES
182
+ .LP
183
+ .PP
184
+ Unhexdump a \fBhexdump -C\fR hexdump:
185
+ .LP
186
+ .nf
187
+ ronin unhexdump \-o raw\.bin hexdump\.txt
188
+ .fi
189
+ .LP
190
+ .PP
191
+ Unhexdump a \fBhexdump\fR hexdump:
192
+ .LP
193
+ .nf
194
+ ronin unhexdump \-o raw\.bin \-t uint16\[ru]le hexdump\.txt
195
+ .fi
196
+ .LP
197
+ .PP
198
+ Unhexdump an \fBod\fR hexdump:
199
+ .LP
200
+ .nf
201
+ ronin unhexdump \-o raw\.bin \-f od od\.txt
202
+ .fi
203
+ .LP
177
204
  .SH AUTHOR
178
205
  .LP
179
206
  .PP
@@ -19,6 +19,9 @@ Supports a variety of formats, bases, and encodings.
19
19
  `-o`, `--output` *FILE*
20
20
  Optional path to the output file.
21
21
 
22
+ `-f`, `--format` [`hexdump`\|`od`]
23
+ Specifies the hexdump format to parse.
24
+
22
25
  `-t`, `--type` *TYPE*
23
26
  The binary data type to decode the data as. Must be one of the following:
24
27
 
@@ -98,6 +101,20 @@ Supports a variety of formats, bases, and encodings.
98
101
  `-h`, `--help`
99
102
  Prints help information.
100
103
 
104
+ ## EXAMPLES
105
+
106
+ Unhexdump a `hexdump -C` hexdump:
107
+
108
+ ronin unhexdump -o raw.bin hexdump.txt
109
+
110
+ Unhexdump a `hexdump` hexdump:
111
+
112
+ ronin unhexdump -o raw.bin -t uint16_le hexdump.txt
113
+
114
+ Unhexdump an `od` hexdump:
115
+
116
+ ronin unhexdump -o raw.bin -f od od.txt
117
+
101
118
  ## AUTHOR
102
119
 
103
120
  Postmodern <postmodern.mod3@gmail.com>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ronin
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta4
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Postmodern
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-15 00:00:00.000000000 Z
11
+ date: 2023-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: open_namespace
@@ -72,154 +72,154 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.0.0.beta2
75
+ version: '1.0'
76
76
  type: :runtime
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: 1.0.0.beta2
82
+ version: '1.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: ronin-core
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.1.0.beta1
89
+ version: '0.1'
90
90
  type: :runtime
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: 0.1.0.beta1
96
+ version: '0.1'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: ronin-repos
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.1.0.beta1
103
+ version: '0.1'
104
104
  type: :runtime
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.1.0.beta1
110
+ version: '0.1'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: ronin-db
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 0.1.0.beta2
117
+ version: '0.1'
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 0.1.0.beta2
124
+ version: '0.1'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: ronin-fuzzer
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.1.0.beta1
131
+ version: '0.1'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 0.1.0.beta1
138
+ version: '0.1'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: ronin-web
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 1.0.0.beta3
145
+ version: '1.0'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 1.0.0.beta3
152
+ version: '1.0'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: ronin-code-asm
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 1.0.0.beta1
159
+ version: '1.0'
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 1.0.0.beta1
166
+ version: '1.0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: ronin-code-sql
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 2.0.0.beta1
173
+ version: '2.0'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 2.0.0.beta1
180
+ version: '2.0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: ronin-payloads
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 0.1.0.beta1
187
+ version: '0.1'
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: 0.1.0.beta1
194
+ version: '0.1'
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: ronin-exploits
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: 1.0.0.beta2
201
+ version: '1.0'
202
202
  type: :runtime
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: 1.0.0.beta2
208
+ version: '1.0'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: ronin-vulns
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: 0.1.0.beta1
215
+ version: '0.1'
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: 0.1.0.beta1
222
+ version: '0.1'
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: bundler
225
225
  requirement: !ruby/object:Gem::Requirement