ronin-support 0.4.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.editorconfig +11 -0
- data/.github/workflows/ruby.yml +28 -0
- data/.ruby-version +1 -0
- data/.yardopts +1 -1
- data/ChangeLog.md +121 -33
- data/Gemfile +17 -18
- data/README.md +57 -33
- data/Rakefile +10 -3
- data/gemspec.yml +16 -7
- data/lib/ronin/binary.rb +21 -0
- data/lib/ronin/binary/hexdump.rb +20 -0
- data/lib/ronin/binary/hexdump/parser.rb +403 -0
- data/lib/ronin/binary/struct.rb +567 -0
- data/lib/ronin/binary/template.rb +454 -0
- data/lib/ronin/extensions.rb +5 -5
- data/lib/ronin/extensions/enumerable.rb +5 -5
- data/lib/ronin/extensions/file.rb +39 -33
- data/lib/ronin/extensions/ip_addr.rb +29 -31
- data/lib/ronin/extensions/kernel.rb +5 -5
- data/lib/ronin/extensions/meta.rb +5 -5
- data/lib/ronin/extensions/regexp.rb +50 -5
- data/lib/ronin/extensions/resolv.rb +7 -9
- data/lib/ronin/extensions/string.rb +10 -10
- data/lib/ronin/formatting.rb +5 -5
- data/lib/ronin/formatting/binary.rb +5 -5
- data/lib/ronin/formatting/digest.rb +5 -5
- data/lib/ronin/formatting/extensions.rb +5 -5
- data/lib/ronin/formatting/extensions/binary.rb +7 -5
- data/lib/ronin/formatting/extensions/binary/array.rb +61 -0
- data/lib/ronin/formatting/extensions/binary/base64.rb +106 -0
- data/lib/ronin/formatting/extensions/binary/file.rb +44 -11
- data/lib/ronin/formatting/extensions/binary/float.rb +65 -0
- data/lib/ronin/formatting/extensions/binary/integer.rb +66 -50
- data/lib/ronin/formatting/extensions/binary/string.rb +81 -205
- data/lib/ronin/formatting/extensions/digest.rb +5 -5
- data/lib/ronin/formatting/extensions/digest/file.rb +5 -5
- data/lib/ronin/formatting/extensions/digest/string.rb +5 -5
- data/lib/ronin/formatting/extensions/html.rb +5 -5
- data/lib/ronin/formatting/extensions/html/integer.rb +9 -13
- data/lib/ronin/formatting/extensions/html/string.rb +31 -39
- data/lib/ronin/formatting/extensions/http.rb +5 -5
- data/lib/ronin/formatting/extensions/http/integer.rb +6 -6
- data/lib/ronin/formatting/extensions/http/string.rb +7 -7
- data/lib/ronin/formatting/extensions/sql.rb +5 -5
- data/lib/ronin/formatting/extensions/sql/string.rb +22 -24
- data/lib/ronin/formatting/extensions/text.rb +5 -5
- data/lib/ronin/formatting/extensions/text/array.rb +13 -11
- data/lib/ronin/formatting/extensions/text/string.rb +70 -13
- data/lib/ronin/formatting/html.rb +5 -5
- data/lib/ronin/formatting/http.rb +5 -5
- data/lib/ronin/formatting/sql.rb +5 -5
- data/lib/ronin/formatting/text.rb +5 -5
- data/lib/ronin/fuzzing.rb +5 -5
- data/lib/ronin/fuzzing/extensions.rb +5 -5
- data/lib/ronin/fuzzing/extensions/string.rb +42 -213
- data/lib/ronin/fuzzing/fuzzer.rb +110 -0
- data/lib/ronin/fuzzing/fuzzing.rb +33 -26
- data/lib/ronin/fuzzing/mutator.rb +161 -0
- data/lib/ronin/fuzzing/repeater.rb +81 -0
- data/lib/ronin/fuzzing/template.rb +133 -0
- data/lib/ronin/mixin.rb +2 -2
- data/lib/ronin/network.rb +7 -5
- data/lib/ronin/network/dns.rb +64 -24
- data/lib/ronin/network/esmtp.rb +5 -5
- data/lib/ronin/network/extensions.rb +5 -5
- data/lib/ronin/network/extensions/dns.rb +5 -5
- data/lib/ronin/network/extensions/dns/net.rb +5 -5
- data/lib/ronin/network/extensions/esmtp.rb +5 -5
- data/lib/ronin/network/extensions/esmtp/net.rb +5 -5
- data/lib/ronin/network/extensions/http.rb +5 -5
- data/lib/ronin/network/extensions/http/net.rb +5 -5
- data/lib/ronin/network/extensions/http/uri/http.rb +5 -5
- data/lib/ronin/network/extensions/imap.rb +5 -5
- data/lib/ronin/network/extensions/imap/net.rb +5 -5
- data/lib/ronin/network/extensions/pop3.rb +5 -5
- data/lib/ronin/network/extensions/pop3/net.rb +5 -5
- data/lib/ronin/network/extensions/smtp.rb +5 -5
- data/lib/ronin/network/extensions/smtp/net.rb +5 -5
- data/lib/ronin/network/extensions/ssl.rb +5 -5
- data/lib/ronin/network/extensions/ssl/net.rb +5 -5
- data/lib/ronin/network/extensions/tcp.rb +5 -5
- data/lib/ronin/network/extensions/tcp/net.rb +5 -5
- data/lib/ronin/network/extensions/telnet.rb +5 -5
- data/lib/ronin/network/extensions/telnet/net.rb +5 -5
- data/lib/ronin/network/extensions/udp.rb +5 -5
- data/lib/ronin/network/extensions/udp/net.rb +5 -5
- data/lib/ronin/network/ftp.rb +149 -0
- data/lib/ronin/network/http.rb +5 -5
- data/lib/ronin/network/http/exceptions.rb +5 -5
- data/lib/ronin/network/http/exceptions/unknown_request.rb +5 -5
- data/lib/ronin/network/http/http.rb +65 -70
- data/lib/ronin/network/http/proxy.rb +5 -5
- data/lib/ronin/network/imap.rb +16 -15
- data/lib/ronin/network/mixins.rb +6 -5
- data/lib/ronin/network/mixins/dns.rb +5 -5
- data/lib/ronin/network/mixins/esmtp.rb +5 -5
- data/lib/ronin/network/mixins/ftp.rb +155 -0
- data/lib/ronin/network/mixins/http.rb +58 -587
- data/lib/ronin/network/mixins/imap.rb +5 -5
- data/lib/ronin/network/mixins/mixin.rb +5 -5
- data/lib/ronin/network/mixins/pop3.rb +5 -5
- data/lib/ronin/network/mixins/smtp.rb +5 -5
- data/lib/ronin/network/mixins/ssl.rb +5 -5
- data/lib/ronin/network/mixins/tcp.rb +43 -10
- data/lib/ronin/network/mixins/telnet.rb +5 -5
- data/lib/ronin/network/mixins/udp.rb +126 -6
- data/lib/ronin/network/mixins/unix.rb +279 -0
- data/lib/ronin/network/network.rb +5 -5
- data/lib/ronin/network/pop3.rb +10 -10
- data/lib/ronin/network/proxy.rb +578 -0
- data/lib/ronin/network/smtp.rb +5 -5
- data/lib/ronin/network/smtp/email.rb +6 -6
- data/lib/ronin/network/smtp/smtp.rb +12 -13
- data/lib/ronin/network/ssl.rb +16 -17
- data/lib/ronin/network/tcp.rb +7 -310
- data/lib/ronin/network/tcp/proxy.rb +417 -0
- data/lib/ronin/network/tcp/tcp.rb +452 -0
- data/lib/ronin/network/telnet.rb +34 -28
- data/lib/ronin/network/udp.rb +7 -271
- data/lib/ronin/network/udp/proxy.rb +191 -0
- data/lib/ronin/network/udp/udp.rb +452 -0
- data/lib/ronin/network/unix.rb +286 -0
- data/lib/ronin/path.rb +35 -39
- data/lib/ronin/spec/ui/output.rb +6 -12
- data/lib/ronin/support.rb +6 -5
- data/lib/ronin/support/inflector.rb +8 -12
- data/lib/ronin/support/support.rb +7 -5
- data/lib/ronin/support/version.rb +6 -6
- data/lib/ronin/templates.rb +5 -5
- data/lib/ronin/templates/erb.rb +5 -5
- data/lib/ronin/templates/template.rb +5 -5
- data/lib/ronin/ui/output.rb +5 -5
- data/lib/ronin/ui/output/helpers.rb +42 -28
- data/lib/ronin/ui/output/output.rb +17 -21
- data/lib/ronin/ui/output/terminal.rb +5 -5
- data/lib/ronin/ui/output/terminal/color.rb +15 -9
- data/lib/ronin/ui/output/terminal/raw.rb +5 -5
- data/lib/ronin/ui/shell.rb +8 -11
- data/lib/ronin/wordlist.rb +110 -30
- data/ronin-support.gemspec +39 -109
- data/spec/binary/hexdump/helpers/hexdumps.rb +13 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/ascii.bin +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/hexdump_decimal_shorts.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/hexdump_hex_bytes.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/hexdump_hex_shorts.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/hexdump_octal_bytes.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/hexdump_octal_shorts.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/hexdump_repeated.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_decimal_bytes.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_decimal_ints.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_decimal_quads.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_decimal_shorts.txt +0 -0
- data/spec/binary/hexdump/helpers/hexdumps/od_doubles.txt +17 -0
- data/spec/binary/hexdump/helpers/hexdumps/od_floats.txt +17 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_hex_bytes.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_hex_ints.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_hex_quads.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_hex_shorts.txt +0 -0
- data/spec/binary/hexdump/helpers/hexdumps/od_named_chars.txt +17 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_octal_bytes.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_octal_ints.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_octal_quads.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_octal_shorts.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/od_repeated.txt +0 -0
- data/spec/{formatting/binary → binary/hexdump}/helpers/hexdumps/repeated.bin +0 -0
- data/spec/binary/hexdump/parser_spec.rb +302 -0
- data/spec/binary/struct_spec.rb +496 -0
- data/spec/binary/template_spec.rb +416 -0
- data/spec/extensions/enumerable_spec.rb +4 -4
- data/spec/extensions/file_spec.rb +12 -14
- data/spec/extensions/ip_addr_spec.rb +76 -50
- data/spec/extensions/kernel_spec.rb +7 -7
- data/spec/extensions/regexp_spec.rb +119 -59
- data/spec/extensions/resolv_spec.rb +2 -2
- data/spec/extensions/string_spec.rb +31 -30
- data/spec/formatting/binary/array_spec.rb +26 -0
- data/spec/formatting/binary/base64_spec.rb +50 -0
- data/spec/formatting/binary/float_spec.rb +36 -0
- data/spec/formatting/binary/integer_spec.rb +76 -50
- data/spec/formatting/binary/string_spec.rb +91 -198
- data/spec/formatting/digest/string_spec.rb +5 -5
- data/spec/formatting/html/integer_spec.rb +6 -6
- data/spec/formatting/html/string_spec.rb +10 -10
- data/spec/formatting/http/integer_spec.rb +3 -3
- data/spec/formatting/http/string_spec.rb +5 -5
- data/spec/formatting/sql/string_spec.rb +21 -19
- data/spec/formatting/text/array_spec.rb +15 -15
- data/spec/formatting/text/string_spec.rb +58 -28
- data/spec/fuzzing/extensions/string_spec.rb +87 -0
- data/spec/fuzzing/fuzzer_spec.rb +109 -0
- data/spec/fuzzing/fuzzing_spec.rb +24 -0
- data/spec/fuzzing/mutator_spec.rb +112 -0
- data/spec/fuzzing/repeater_spec.rb +57 -0
- data/spec/fuzzing/template_spec.rb +54 -0
- data/spec/mixin_spec.rb +10 -12
- data/spec/network/dns_spec.rb +89 -23
- data/spec/network/ftp_spec.rb +81 -0
- data/spec/network/http/http_spec.rb +237 -144
- data/spec/network/http/proxy_spec.rb +37 -37
- data/spec/network/network_spec.rb +2 -2
- data/spec/network/proxy_spec.rb +121 -0
- data/spec/network/shared/unix_server.rb +31 -0
- data/spec/network/smtp/email_spec.rb +14 -14
- data/spec/network/ssl_spec.rb +53 -3
- data/spec/network/tcp/proxy_spec.rb +118 -0
- data/spec/network/tcp/tcp_spec.rb +316 -0
- data/spec/network/telnet_spec.rb +67 -0
- data/spec/network/udp/udp_spec.rb +298 -0
- data/spec/network/unix_spec.rb +182 -0
- data/spec/path_spec.rb +43 -18
- data/spec/spec_helper.rb +2 -3
- data/spec/support/inflector_spec.rb +4 -4
- data/spec/support_spec.rb +1 -1
- data/spec/templates/erb_spec.rb +3 -3
- data/spec/templates/template_spec.rb +10 -10
- data/spec/ui/shell_spec.rb +15 -15
- data/spec/wordlist_spec.rb +80 -19
- metadata +176 -121
- data/.gemtest +0 -0
- data/spec/formatting/binary/helpers/hexdumps.rb +0 -16
- data/spec/fuzzing/string_spec.rb +0 -158
- data/spec/network/tcp_spec.rb +0 -247
- data/spec/network/udp_spec.rb +0 -248
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b09de7aeb48e4982f04cf079b79afdb6cdc5f133979440ee57470f7d121e3701
|
4
|
+
data.tar.gz: 17c1b5906bddf040dd705d4f3186db54dd8ca4a60789e77188d51ffd61d97ffa
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 1c897be3967938ebce021b834b504a453fbbceac6375a7733714cc7995265a28bd3f002124ed4fd78179f188240315bacd20618f120389f7b1ad1c022e4b313b
|
7
|
+
data.tar.gz: 322fd58c49d71eefd767bc11a451a6ec0a0b58c802b95b64423a9e554d0c5e1a26581be10bb4674fcc737e5e5e463801c0fad5a8a471e061f542352dc58c6b05
|
data/.editorconfig
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on: [ push, pull_request ]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
tests:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
strategy:
|
9
|
+
fail-fast: false
|
10
|
+
matrix:
|
11
|
+
ruby:
|
12
|
+
- 2.4
|
13
|
+
- 2.5
|
14
|
+
- 2.6
|
15
|
+
- 2.7
|
16
|
+
- 3.0
|
17
|
+
- jruby
|
18
|
+
name: Ruby ${{ matrix.ruby }}
|
19
|
+
steps:
|
20
|
+
- uses: actions/checkout@v2
|
21
|
+
- name: Set up Ruby
|
22
|
+
uses: ruby/setup-ruby@v1
|
23
|
+
with:
|
24
|
+
ruby-version: ${{ matrix.ruby }}
|
25
|
+
- name: Install dependencies
|
26
|
+
run: bundle install --jobs 4 --retry 3
|
27
|
+
- name: Run tests
|
28
|
+
run: bundle exec rake test
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby-2.7
|
data/.yardopts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
--markup markdown --title '
|
1
|
+
--markup markdown --title 'ronin-support Documentation' --protected
|
2
2
|
--plugin yard-parameters
|
data/ChangeLog.md
CHANGED
@@ -1,19 +1,107 @@
|
|
1
|
-
### 0.
|
1
|
+
### 0.5.2 / 2021-02-28
|
2
2
|
|
3
|
-
*
|
4
|
-
|
5
|
-
|
6
|
-
*
|
7
|
-
|
8
|
-
*
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
*
|
13
|
-
|
14
|
-
*
|
15
|
-
|
16
|
-
|
3
|
+
* Ruby 3.0 support:
|
4
|
+
* Temporarily added the [net-telnet] gem as a dependency, since Ruby 3.0 moved
|
5
|
+
`net/telnet` out of the stdlib.
|
6
|
+
* {Ronin::Fuzzing::SHORT_LENGTHS} and {Ronin::Fuzzing::LONG_LENGTHS} are now
|
7
|
+
`Set` objects, instead of `SortedSet`, which Ruby 3.0 moved out of stdlib.
|
8
|
+
* Use `URI::DEFAULT_PARSER.escape` / `.unescape` in {String#uri_encode},
|
9
|
+
{String#uri_decode}, and {Integer#uri_encode} now that `URI.encode`,
|
10
|
+
`URI.decode`, `URI.escape`, `URI.unescape` have all been removed in
|
11
|
+
Ruby 3.0.
|
12
|
+
* Deprecated {Ronin::Network::Telnet}.
|
13
|
+
* Allow {Ronin::Path#initialize} to accept a separator argument.
|
14
|
+
* No longer bind new sockets to `0.0.0.0` by default in {Ronin::Network::TCP}
|
15
|
+
and {Ronin::Network::UDP}. `0.0.0.0` is the IPv4 Any address, which makes the
|
16
|
+
socket IPv4 and thus incompatible with IPv6 hosts.
|
17
|
+
* Fixed a bug in {Ronin::Network::UDP#udp_open?} where it would always timeout
|
18
|
+
and return `nil`, even when the UDP port was open.
|
19
|
+
* Filter out `nil` or empty `:query` options passed to
|
20
|
+
{Ronin::Network::HTTP.request}.
|
21
|
+
* No longer append the query String to the path in
|
22
|
+
{Ronin::Network::HTTP.expand_url}.
|
23
|
+
* Support escaping `"\`"` tick-marks in {String#sql_escape}.
|
24
|
+
* Allow setting the request body or form-data in {Ronin::Network::HTTP.request},
|
25
|
+
even for request types that typically do not use a body or form-data.
|
26
|
+
|
27
|
+
[net-telnet]: https://github.com/ruby/net-telnet
|
28
|
+
|
29
|
+
### 0.5.1 / 2012-06-29
|
30
|
+
|
31
|
+
* Added {Ronin::Binary::Template#inspect}.
|
32
|
+
* Added the `:passive` option to {Ronin::Network::FTP#ftp_connect}.
|
33
|
+
* Forgot to require `ronin/formatting/extensions/binary/array`.
|
34
|
+
* Fixed a bug where {Array#pack} would not accept tuples (ex: `[:uint8, 2]`).
|
35
|
+
* Fixed a bug in {String#sql_decode} where `"\\'\\'"` would incorrectly be
|
36
|
+
converted to `'"'`.
|
37
|
+
* Ensure that {Integer#pack} only accepts one argument.
|
38
|
+
* Have {String#hex_unescape} to decode every two characters.
|
39
|
+
* Enable passive-mode by default in {Ronin::Network::FTP#ftp_connect}.
|
40
|
+
|
41
|
+
### 0.5.0 / 2012-06-16
|
42
|
+
|
43
|
+
* Require uri-query_params ~> 0.6.
|
44
|
+
* Added {Float#pack}.
|
45
|
+
* Added {Regexp::WORD}.
|
46
|
+
* Added {Regexp::PHONE_NUMBER}.
|
47
|
+
* Added {Ronin::Binary::Template}.
|
48
|
+
* Added {Ronin::Binary::Struct}.
|
49
|
+
* Added {Ronin::Binary::Hexdump::Parser}.
|
50
|
+
* Added {Ronin::Fuzzing::Template}.
|
51
|
+
* Added {Ronin::Fuzzing::Repeater}.
|
52
|
+
* Added {Ronin::Fuzzing::Fuzzer}.
|
53
|
+
* Added {Ronin::Fuzzing::Mutator}.
|
54
|
+
* Added {Ronin::Wordlist.create}.
|
55
|
+
* Added {Ronin::Wordlist#path} and {Ronin::Wordlist#words}.
|
56
|
+
* Added {Ronin::Wordlist#save}.
|
57
|
+
* Added {Ronin::Network::Proxy}, {Ronin::Network::TCP::Proxy} and
|
58
|
+
{Ronin::Network::UDP::Proxy}.
|
59
|
+
* Added {Ronin::Network::TCP#tcp_open?}.
|
60
|
+
* Added {Ronin::Network::TCP#tcp_server_loop}.
|
61
|
+
* Added {Ronin::Network::UDP#udp_open?}.
|
62
|
+
* Added {Ronin::Network::UDP#udp_server_loop}.
|
63
|
+
* Added {Ronin::Network::Mixins::TCP#tcp_open?}.
|
64
|
+
* Added {Ronin::Network::Mixins::UDP#udp_open?}.
|
65
|
+
* Added {Ronin::Network::Mixins::UDP#udp_server_loop}.
|
66
|
+
* Added {Ronin::Network::Mixins::UDP#udp_recv}.
|
67
|
+
* Added {Ronin::Network::FTP}.
|
68
|
+
* Added {Ronin::Network::UNIX}.
|
69
|
+
* Added {Ronin::Network::Mixins::FTP}.
|
70
|
+
* Added {Ronin::Network::Mixins::UNIX}.
|
71
|
+
* Aliased {String#escape} to {String#dump}.
|
72
|
+
* Renamed {String#hex_unescape} to {String#unescape}.
|
73
|
+
* Aliased {String#hex_unescape} to {String#unescape}.
|
74
|
+
* Renamed {Ronin::Network::TCP#tcp_single_server} to
|
75
|
+
{Ronin::Network::TCP#tcp_accept}.
|
76
|
+
* Renamed {Ronin::Network::UDP#udp_single_server} to
|
77
|
+
{Ronin::Network::UDP#udp_recv}.
|
78
|
+
* Deprecated {Ronin::Network::TCP#tcp_single_server}.
|
79
|
+
* Deprecated {Ronin::Network::UDP#udp_single_server}.
|
80
|
+
* Backported Ruby 1.9 only {Base64} methods.
|
81
|
+
* Allow {Integer#pack} to accept a type from {Ronin::Binary::Template::TYPES}.
|
82
|
+
* Allow {Array#pack} to accept types from {Ronin::Binary::Template::TYPES}.
|
83
|
+
* Allow {String#unpack} to accept types from {Ronin::Binary::Template::TYPES}.
|
84
|
+
* Support nmap-style `i,j-k` globbed IP address ranges in {IPAddr.each}.
|
85
|
+
* Moved {String#unhexdump} logic into {Ronin::Binary::Hexdump::Parser}.
|
86
|
+
* Added the `:named_chars` option.
|
87
|
+
* Improved the parsing of `od` hexdumps.
|
88
|
+
* Support unhexdumping specific endianness.
|
89
|
+
* Support unhexdumping floats / doubles.
|
90
|
+
* Allow {String#mutate} to accept Symbols that map to {Ronin::Fuzzing}
|
91
|
+
generator methods.
|
92
|
+
* {Ronin::Fuzzing.[]} now raises a `NoMethodError` for unknown fuzzing methods.
|
93
|
+
* Use `module_function` in {Ronin::Fuzzing}, so the generator methods can be
|
94
|
+
included into other Classes/Modules.
|
95
|
+
* Use `$stdout` instead of calling `Kernel.puts` or `STDOUT`.
|
96
|
+
Prevents infinite recursion if another library overrides `Kernel.puts`.
|
97
|
+
* Allow {Ronin::Network::DNS} methods to yield resolved addresses.
|
98
|
+
* Inject {Ronin::Network::DNS} into {Net} for backwards compatibility.
|
99
|
+
* Allow {Ronin::Network::TCP#tcp_server} to accept a `backlog` argument.
|
100
|
+
* Default the server host to `0.0.0.0` in
|
101
|
+
{Ronin::Network::TCP#tcp_accept}.
|
102
|
+
* No longer honor the `VERBOSE` environment variable for enabling verbose output
|
103
|
+
in {Ronin::UI::Output}. Use `ruby -w` or `ruby -d` instead.
|
104
|
+
* No longer support loading `extlib` in `ronin/support/inflector`.
|
17
105
|
|
18
106
|
### 0.4.0 / 2012-02-12
|
19
107
|
|
@@ -40,23 +128,23 @@
|
|
40
128
|
* Added {String#mutate}.
|
41
129
|
* Added {Ronin::Fuzzing}.
|
42
130
|
* Added {Ronin::Fuzzing.[]}.
|
43
|
-
* Added
|
44
|
-
* Added
|
45
|
-
* Added
|
46
|
-
* Added
|
47
|
-
* Added
|
48
|
-
* Added
|
49
|
-
* Added
|
50
|
-
* Added
|
51
|
-
* Added
|
52
|
-
* Added
|
53
|
-
* Added
|
54
|
-
* Added
|
55
|
-
* Added
|
56
|
-
* Added
|
57
|
-
* Added
|
58
|
-
* Added
|
59
|
-
* Added
|
131
|
+
* Added `Ronin::Fuzzing.bad_strings`.
|
132
|
+
* Added `Ronin::Fuzzing.format_strings`.
|
133
|
+
* Added `Ronin::Fuzzing.bad_paths`.
|
134
|
+
* Added `Ronin::Fuzzing.bit_fields`.
|
135
|
+
* Added `Ronin::Fuzzing.signed_bit_fields`.
|
136
|
+
* Added `Ronin::Fuzzing.uint8`.
|
137
|
+
* Added `Ronin::Fuzzing.uint16`.
|
138
|
+
* Added `Ronin::Fuzzing.uint32`.
|
139
|
+
* Added `Ronin::Fuzzing.uint64`.
|
140
|
+
* Added `Ronin::Fuzzing.int8`.
|
141
|
+
* Added `Ronin::Fuzzing.int16`.
|
142
|
+
* Added `Ronin::Fuzzing.int32`.
|
143
|
+
* Added `Ronin::Fuzzing.int64`.
|
144
|
+
* Added `Ronin::Fuzzing.sint8`.
|
145
|
+
* Added `Ronin::Fuzzing.sint16`.
|
146
|
+
* Added `Ronin::Fuzzing.sint32`.
|
147
|
+
* Added `Ronin::Fuzzing.sint64`.
|
60
148
|
* Added {Ronin::Wordlist}.
|
61
149
|
* Added {Ronin::Network::DNS}.
|
62
150
|
* Added {Ronin::Network::Mixins::Mixin}.
|
@@ -84,7 +172,7 @@
|
|
84
172
|
was not being escaped.
|
85
173
|
* Allow {Ronin::Network::HTTP.request} to accept `:query` and `:query_params`
|
86
174
|
options.
|
87
|
-
* Fixed a bug in
|
175
|
+
* Fixed a bug in `Ronin::Network::Mixins::HTTP#http_session`, where
|
88
176
|
normalized options were not being yielded.
|
89
177
|
* {Ronin::Network::HTTP#http_get_headers} and
|
90
178
|
{Ronin::Network::HTTP#http_post_headers} now return a Hash of Capitalized
|
data/Gemfile
CHANGED
@@ -2,29 +2,28 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
platforms :jruby
|
6
|
-
gem 'jruby-openssl', '~> 0.7'
|
7
|
-
end
|
5
|
+
gem 'jruby-openssl', '~> 0.7.0', :platforms => :jruby
|
8
6
|
|
9
7
|
group :development do
|
10
|
-
gem 'rake'
|
8
|
+
gem 'rake'
|
9
|
+
gem 'rubygems-tasks', '~> 0.1'
|
10
|
+
gem 'rspec', '~> 3.0'
|
11
11
|
|
12
|
-
gem '
|
13
|
-
gem '
|
12
|
+
gem 'ripl', '~> 0.3'
|
13
|
+
gem 'ripl-multi_line', '~> 0.2'
|
14
|
+
gem 'ripl-auto_indent', '~> 0.1'
|
15
|
+
gem 'ripl-color_result', '~> 0.3'
|
14
16
|
|
15
|
-
gem 'kramdown',
|
17
|
+
gem 'kramdown', '~> 2.0'
|
16
18
|
end
|
17
19
|
|
18
20
|
group :test do
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
'activesupport'
|
24
|
-
|
25
|
-
'
|
26
|
-
|
27
|
-
|
28
|
-
inflector = ENV.fetch('INFLECTOR','dm-core')
|
29
|
-
gem(inflector,INFLECTORS[inflector])
|
21
|
+
case ENV['INFLECTOR']
|
22
|
+
when 'activesupport'
|
23
|
+
gem 'i18n', '~> 1.0'
|
24
|
+
gem 'tzinfo', '~> 2.0'
|
25
|
+
gem 'activesupport', '~> 6.0'
|
26
|
+
else
|
27
|
+
gem 'dm-core', '~> 1.0'
|
28
|
+
end
|
30
29
|
end
|
data/README.md
CHANGED
@@ -1,17 +1,24 @@
|
|
1
|
-
#
|
1
|
+
# ronin-support
|
2
|
+
|
3
|
+
[![CI](https://github.com/ronin-rb/ronin-support/actions/workflows/ruby.yml/badge.svg)](https://github.com/ronin-rb/ronin-support/actions/workflows/ruby.yml)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/ronin-rb/ronin-support.svg)](https://codeclimate.com/github/ronin-rb/ronin-support)
|
2
5
|
|
3
6
|
* [Source](https://github.com/ronin-ruby/ronin-support)
|
4
7
|
* [Issues](https://github.com/ronin-ruby/ronin-support/issues)
|
5
|
-
* [Documentation](
|
6
|
-
* [
|
7
|
-
|
8
|
+
* [Documentation](https://ronin-rb.dev/docs/ronin-support/frames)
|
9
|
+
* [Slack](https://ronin-rb.slack.com) |
|
10
|
+
[Discord](https://discord.gg/6WAb3PsVX9) |
|
11
|
+
[Twitter](https://twitter.com/ronin_rb) |
|
12
|
+
[IRC](https://ronin-rb.dev/irc/)
|
8
13
|
|
9
14
|
## Description
|
10
15
|
|
11
|
-
|
16
|
+
ronin-support is a support library for ronin-rb. ronin-support contains many of
|
12
17
|
the convenience methods used by Ronin and additional libraries.
|
13
18
|
|
14
|
-
|
19
|
+
It's like activesupport, but for hacking!
|
20
|
+
|
21
|
+
[ronin-rb] is a Ruby platform for exploit development and security research.
|
15
22
|
Ronin allows for the rapid development and distribution of code, exploits
|
16
23
|
or payloads over many common Source-Code-Management (SCM) systems.
|
17
24
|
|
@@ -20,18 +27,23 @@ or payloads over many common Source-Code-Management (SCM) systems.
|
|
20
27
|
* Provides convenience methods for:
|
21
28
|
* Formatting data:
|
22
29
|
* Binary
|
30
|
+
* Structs
|
23
31
|
* Text
|
24
|
-
* HTTP
|
25
32
|
* URIs
|
33
|
+
* HTTP
|
26
34
|
* HTML
|
27
35
|
* JavaScript
|
28
36
|
* SQL
|
29
37
|
* Fuzzing
|
38
|
+
* Generating
|
39
|
+
* Mutating
|
30
40
|
* Networking:
|
31
41
|
* DNS
|
42
|
+
* UNIX
|
32
43
|
* TCP
|
33
44
|
* UDP
|
34
45
|
* SSL
|
46
|
+
* FTP
|
35
47
|
* SMTP / ESMTP
|
36
48
|
* POP3
|
37
49
|
* Imap
|
@@ -44,6 +56,7 @@ or payloads over many common Source-Code-Management (SCM) systems.
|
|
44
56
|
* Handling exceptions.
|
45
57
|
* Provides Modules/Classes for:
|
46
58
|
* Paths
|
59
|
+
* Fuzzing
|
47
60
|
* Wordlists
|
48
61
|
* Erb Templates
|
49
62
|
* UI:
|
@@ -53,52 +66,63 @@ or payloads over many common Source-Code-Management (SCM) systems.
|
|
53
66
|
## Examples
|
54
67
|
|
55
68
|
For examples of the convenience methods provided by ronin-support,
|
56
|
-
please see [Everyday Ronin]
|
69
|
+
please see [Everyday Ronin].
|
57
70
|
|
58
71
|
## Requirements
|
59
72
|
|
60
|
-
* [Ruby]
|
61
|
-
* [chars]
|
62
|
-
|
63
|
-
* [
|
64
|
-
|
65
|
-
* [
|
66
|
-
|
67
|
-
* [uri-query_params](https://github.com/postmodern/uri-query_params#readme)
|
68
|
-
~> 0.6
|
69
|
-
* [data_paths](https://github.com/postmodern/data_paths#readme)
|
70
|
-
~> 0.3
|
71
|
-
* [parameters](https://github.com/postmodern/parameters#readme)
|
72
|
-
~> 0.4
|
73
|
+
* [Ruby] >= 1.8.7
|
74
|
+
* [chars] ~> 0.2
|
75
|
+
* [hexdump] ~> 0.1
|
76
|
+
* [combinatorics] ~> 0.4
|
77
|
+
* [uri-query_params] ~> 0.6
|
78
|
+
* [data_paths] ~> 0.3
|
79
|
+
* [parameters] ~> 0.4
|
73
80
|
|
74
81
|
## Install
|
75
82
|
|
76
|
-
### Stable
|
77
|
-
|
78
83
|
$ gem install ronin-support
|
79
84
|
|
80
|
-
###
|
85
|
+
### Gemfile
|
86
|
+
|
87
|
+
gem 'ronin-support', '~> 0.5'
|
88
|
+
|
89
|
+
## Development
|
81
90
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
91
|
+
1. [Fork It!](https://github.com/ronin-rb/ronin-support/fork)
|
92
|
+
2. Clone It!
|
93
|
+
3. `cd ronin-support`
|
94
|
+
4. `bundle install`
|
95
|
+
5. `git checkout -b my_feature`
|
96
|
+
6. Code It!
|
97
|
+
7. `bundle exec rake spec`
|
98
|
+
8. `git push origin my_feature`
|
86
99
|
|
87
100
|
## License
|
88
101
|
|
89
|
-
Copyright (c) 2006-
|
102
|
+
Copyright (c) 2006-2021 Hal Brodigan (postmodern.mod3 at gmail.com)
|
90
103
|
|
91
|
-
This file is part of
|
104
|
+
This file is part of ronin-support.
|
92
105
|
|
93
|
-
|
106
|
+
ronin-support is free software: you can redistribute it and/or modify
|
94
107
|
it under the terms of the GNU Lesser General Public License as published
|
95
108
|
by the Free Software Foundation, either version 3 of the License, or
|
96
109
|
(at your option) any later version.
|
97
110
|
|
98
|
-
|
111
|
+
ronin-support is distributed in the hope that it will be useful,
|
99
112
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
100
113
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
101
114
|
GNU Lesser General Public License for more details.
|
102
115
|
|
103
116
|
You should have received a copy of the GNU Lesser General Public License
|
104
|
-
along with
|
117
|
+
along with ronin-support. If not, see <https://www.gnu.org/licenses/>.
|
118
|
+
|
119
|
+
[ronin-rb]: https://ronin-rb.dev
|
120
|
+
[Everyday Ronin]: https://ronin-rb.dev/guides/everyday_ronin.html
|
121
|
+
[Ruby]: https://www.ruby-lang.org/
|
122
|
+
|
123
|
+
[chars]: https://github.com/postmodern/chars#readme
|
124
|
+
[hexdump]: https://github.com/postmodern/hexdump#readme
|
125
|
+
[combinatorics]: https://github.com/postmodern/combinatorics#readme
|
126
|
+
[uri-query_params]: https://github.com/postmodern/uri-query_params#readme
|
127
|
+
[data_paths]: https://github.com/postmodern/data_paths#readme
|
128
|
+
[parameters]: https://github.com/postmodern/parameters#readme
|
data/Rakefile
CHANGED
@@ -18,8 +18,15 @@ end
|
|
18
18
|
|
19
19
|
require 'rake'
|
20
20
|
|
21
|
-
require '
|
22
|
-
|
21
|
+
require 'rubygems/tasks'
|
22
|
+
Gem::Tasks.new(:sign => {:checksum => true, :pgp => true}) do |tasks|
|
23
|
+
tasks.console.command = 'ripl'
|
24
|
+
tasks.console.options = %w[
|
25
|
+
-rripl/multi_line
|
26
|
+
-rripl/auto_indent
|
27
|
+
-rripl/color_result
|
28
|
+
]
|
29
|
+
end
|
23
30
|
|
24
31
|
require 'rspec/core/rake_task'
|
25
32
|
RSpec::Core::RakeTask.new
|
@@ -31,7 +38,7 @@ namespace :spec do
|
|
31
38
|
end
|
32
39
|
end
|
33
40
|
|
34
|
-
task :test
|
41
|
+
task :test => :spec
|
35
42
|
task :default => :spec
|
36
43
|
|
37
44
|
require 'yard'
|