ronin-support 0.5.1 → 1.0.0.beta1
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
- data/.editorconfig +11 -0
- data/.github/workflows/ruby.yml +27 -0
- data/.gitignore +7 -6
- data/.mailmap +1 -0
- data/.ruby-version +1 -0
- data/.yardopts +1 -2
- data/ChangeLog.md +533 -137
- data/Gemfile +20 -20
- data/README.md +137 -61
- data/Rakefile +29 -10
- data/data/text/homoglyphs/ascii.txt +8 -0
- data/data/text/homoglyphs/cyrillic.txt +33 -0
- data/data/text/homoglyphs/full_width.txt +81 -0
- data/data/text/homoglyphs/greek.txt +21 -0
- data/data/text/homoglyphs/latin_numbers.txt +14 -0
- data/data/text/homoglyphs/punctuation.txt +7 -0
- data/data/text/patterns/network/public_suffix.rb.erb +44 -0
- data/examples/ssl_proxy.rb +38 -0
- data/examples/tcp_proxy.rb +41 -0
- data/gemspec.yml +25 -15
- data/lib/ronin/support/archive/core_ext/file.rb +118 -0
- data/lib/ronin/{formatting/sql.rb → support/archive/core_ext.rb} +6 -7
- data/lib/ronin/support/archive/mixin.rb +213 -0
- data/lib/ronin/support/archive/tar/reader.rb +135 -0
- data/lib/ronin/support/archive/tar/writer.rb +197 -0
- data/lib/ronin/support/archive/tar.rb +155 -0
- data/lib/ronin/support/archive/zip/reader/entry.rb +134 -0
- data/lib/ronin/support/archive/zip/reader/statistics.rb +76 -0
- data/lib/ronin/support/archive/zip/reader.rb +273 -0
- data/lib/ronin/support/archive/zip/writer.rb +175 -0
- data/lib/ronin/support/archive/zip.rb +105 -0
- data/lib/ronin/support/archive.rb +211 -0
- data/lib/ronin/support/binary/array.rb +255 -0
- data/lib/ronin/support/binary/bit_flip.rb +147 -0
- data/lib/ronin/support/binary/buffer.rb +2027 -0
- data/lib/ronin/support/binary/byte_slice.rb +324 -0
- data/lib/ronin/support/binary/core_ext/array.rb +75 -0
- data/lib/ronin/support/binary/core_ext/float.rb +80 -0
- data/lib/ronin/support/binary/core_ext/integer.rb +305 -0
- data/lib/ronin/support/binary/core_ext/io.rb +38 -0
- data/lib/ronin/support/binary/core_ext/string.rb +115 -0
- data/lib/ronin/{formatting/extensions/text.rb → support/binary/core_ext.rb} +9 -9
- data/lib/ronin/support/binary/cstring.rb +259 -0
- data/lib/ronin/support/binary/ctypes/aggregate_type.rb +98 -0
- data/lib/ronin/support/binary/ctypes/arch/arm/big_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/arm.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/arm64/big_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/arm64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/mips/little_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/mips.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/mips64/little_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/mips64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/ppc.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/ppc64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/x86.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/x86_64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch.rb +30 -0
- data/lib/ronin/support/binary/ctypes/array_object_type.rb +164 -0
- data/lib/ronin/support/binary/ctypes/array_type.rb +232 -0
- data/lib/ronin/support/binary/ctypes/big_endian.rb +195 -0
- data/lib/ronin/support/binary/ctypes/char_type.rb +59 -0
- data/lib/ronin/support/binary/ctypes/char_types.rb +39 -0
- data/lib/ronin/support/binary/ctypes/enum_type.rb +181 -0
- data/lib/ronin/support/binary/ctypes/float32_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/float64_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/float_type.rb +62 -0
- data/lib/ronin/support/binary/ctypes/int16_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/int32_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/int64_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/int8_type.rb +41 -0
- data/lib/ronin/support/binary/ctypes/int_type.rb +62 -0
- data/lib/ronin/support/binary/ctypes/little_endian.rb +195 -0
- data/lib/ronin/support/binary/ctypes/mixin.rb +135 -0
- data/lib/ronin/support/binary/ctypes/native.rb +205 -0
- data/lib/ronin/support/binary/ctypes/network.rb +29 -0
- data/lib/ronin/support/binary/ctypes/object_type.rb +55 -0
- data/lib/ronin/support/binary/ctypes/os/bsd.rb +65 -0
- data/lib/ronin/support/binary/ctypes/os/freebsd.rb +215 -0
- data/lib/ronin/support/binary/ctypes/os/linux.rb +193 -0
- data/lib/ronin/support/binary/ctypes/os/macos.rb +151 -0
- data/lib/ronin/support/binary/ctypes/os/netbsd.rb +147 -0
- data/lib/ronin/support/binary/ctypes/os/openbsd.rb +168 -0
- data/lib/ronin/support/binary/ctypes/os/unix.rb +78 -0
- data/lib/ronin/support/binary/ctypes/os/windows.rb +125 -0
- data/lib/ronin/support/binary/ctypes/os.rb +125 -0
- data/lib/ronin/support/binary/ctypes/scalar_type.rb +200 -0
- data/lib/ronin/support/binary/ctypes/string_type.rb +143 -0
- data/lib/ronin/support/binary/ctypes/struct_object_type.rb +173 -0
- data/lib/ronin/support/binary/ctypes/struct_type.rb +359 -0
- data/lib/ronin/support/binary/ctypes/type.rb +193 -0
- data/lib/ronin/support/binary/ctypes/type_resolver.rb +206 -0
- data/lib/ronin/support/binary/ctypes/uint16_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/uint32_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/uint64_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/uint8_type.rb +41 -0
- data/lib/ronin/support/binary/ctypes/uint_type.rb +59 -0
- data/lib/ronin/support/binary/ctypes/unbounded_array_type.rb +258 -0
- data/lib/ronin/support/binary/ctypes/union_object_type.rb +173 -0
- data/lib/ronin/support/binary/ctypes/union_type.rb +261 -0
- data/lib/ronin/support/binary/ctypes.rb +462 -0
- data/lib/ronin/support/binary/hexdump/core_ext/file.rb +118 -0
- data/lib/ronin/support/binary/hexdump/core_ext/string.rb +115 -0
- data/lib/ronin/support/binary/hexdump/core_ext.rb +20 -0
- data/lib/ronin/support/binary/hexdump/parser.rb +492 -0
- data/lib/ronin/support/binary/hexdump.rb +20 -0
- data/lib/ronin/support/binary/memory.rb +268 -0
- data/lib/ronin/support/binary/packet.rb +33 -0
- data/lib/ronin/support/binary/stack.rb +256 -0
- data/lib/ronin/support/binary/stream/methods.rb +1755 -0
- data/lib/ronin/support/binary/stream.rb +151 -0
- data/lib/ronin/support/binary/struct/member.rb +86 -0
- data/lib/ronin/support/binary/struct.rb +830 -0
- data/lib/ronin/support/binary/template.rb +284 -0
- data/lib/ronin/support/binary/union.rb +162 -0
- data/lib/ronin/support/binary.rb +26 -0
- data/lib/ronin/support/cli/ansi.rb +330 -0
- data/lib/ronin/support/cli/io_shell/core_ext/io.rb +67 -0
- data/lib/ronin/{fuzzing/extensions.rb → support/cli/io_shell/core_ext.rb} +6 -7
- data/lib/ronin/support/cli/io_shell.rb +161 -0
- data/lib/ronin/support/cli/printing.rb +216 -0
- data/lib/ronin/support/cli.rb +20 -0
- data/lib/ronin/support/compression/core_ext/file.rb +70 -0
- data/lib/ronin/support/compression/core_ext/string.rb +101 -0
- data/lib/ronin/{formatting/html.rb → support/compression/core_ext.rb} +6 -7
- data/lib/ronin/support/compression/gzip/reader.rb +70 -0
- data/lib/ronin/support/compression/gzip/writer.rb +74 -0
- data/lib/ronin/support/compression/gzip.rb +105 -0
- data/lib/ronin/support/compression/mixin.rb +180 -0
- data/lib/ronin/{network/extensions/esmtp/net.rb → support/compression/zlib.rb} +9 -10
- data/lib/ronin/support/compression.rb +174 -0
- data/lib/ronin/{extensions → support/core_ext}/enumerable.rb +5 -6
- data/lib/ronin/{extensions → support/core_ext}/file.rb +11 -34
- data/lib/ronin/support/core_ext/integer.rb +37 -0
- data/lib/ronin/support/core_ext/ipaddr.rb +65 -0
- data/lib/ronin/{extensions → support/core_ext}/kernel.rb +10 -9
- data/lib/ronin/{extensions → support/core_ext}/resolv.rb +5 -28
- data/lib/ronin/{extensions → support/core_ext}/string.rb +117 -57
- data/lib/ronin/support/core_ext.rb +33 -0
- data/lib/ronin/support/crypto/cert.rb +522 -0
- data/lib/ronin/support/crypto/cert_chain.rb +204 -0
- data/lib/ronin/support/crypto/cipher/aes.rb +71 -0
- data/lib/ronin/support/crypto/cipher/aes128.rb +54 -0
- data/lib/ronin/support/crypto/cipher/aes256.rb +54 -0
- data/lib/ronin/support/crypto/cipher.rb +194 -0
- data/lib/ronin/support/crypto/core_ext/file.rb +660 -0
- data/lib/ronin/support/crypto/core_ext/string.rb +548 -0
- data/lib/ronin/{binary.rb → support/crypto/core_ext.rb} +7 -8
- data/lib/ronin/support/crypto/hmac.rb +48 -0
- data/lib/ronin/support/crypto/key/dh.rb +122 -0
- data/lib/ronin/support/crypto/key/dsa.rb +103 -0
- data/lib/ronin/support/crypto/key/ec.rb +99 -0
- data/lib/ronin/support/crypto/key/methods.rb +163 -0
- data/lib/ronin/support/crypto/key/rsa.rb +169 -0
- data/lib/ronin/support/crypto/key.rb +105 -0
- data/lib/ronin/support/crypto/mixin.rb +620 -0
- data/lib/ronin/{network/extensions/http/net.rb → support/crypto/openssl.rb} +9 -10
- data/lib/ronin/support/crypto.rb +779 -0
- data/lib/ronin/support/encoding/base16/core_ext/string.rb +63 -0
- data/lib/ronin/support/encoding/base16/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/base16.rb +82 -0
- data/lib/ronin/support/encoding/base32/core_ext/string.rb +63 -0
- data/lib/ronin/support/encoding/base32/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/base32.rb +164 -0
- data/lib/ronin/support/encoding/base64/core_ext/string.rb +76 -0
- data/lib/ronin/support/encoding/base64/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/base64.rb +78 -0
- data/lib/ronin/support/encoding/c/core_ext/integer.rb +82 -0
- data/lib/ronin/support/encoding/c/core_ext/string.rb +125 -0
- data/lib/ronin/support/encoding/c/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/c.rb +277 -0
- data/lib/ronin/support/encoding/core_ext/string.rb +107 -0
- data/lib/ronin/support/encoding/core_ext.rb +33 -0
- data/lib/ronin/support/encoding/hex/core_ext/integer.rb +82 -0
- data/lib/ronin/support/encoding/hex/core_ext/string.rb +133 -0
- data/lib/ronin/support/encoding/hex/core_ext.rb +22 -0
- data/lib/ronin/support/encoding/hex.rb +248 -0
- data/lib/ronin/support/encoding/html/core_ext/integer.rb +106 -0
- data/lib/ronin/support/encoding/html/core_ext/string.rb +130 -0
- data/lib/ronin/support/encoding/html/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/html.rb +233 -0
- data/lib/ronin/support/encoding/http/core_ext/integer.rb +95 -0
- data/lib/ronin/support/encoding/http/core_ext/string.rb +129 -0
- data/lib/ronin/support/encoding/http/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/http.rb +241 -0
- data/lib/ronin/support/encoding/js/core_ext/integer.rb +67 -0
- data/lib/ronin/support/encoding/js/core_ext/string.rb +125 -0
- data/lib/ronin/support/encoding/js/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/js.rb +279 -0
- data/lib/ronin/support/encoding/powershell/core_ext/integer.rb +87 -0
- data/lib/ronin/support/encoding/powershell/core_ext/string.rb +145 -0
- data/lib/ronin/support/encoding/powershell/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/powershell.rb +297 -0
- data/lib/ronin/support/encoding/punycode/core_ext/string.rb +63 -0
- data/lib/ronin/support/encoding/punycode/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/punycode.rb +76 -0
- data/lib/ronin/support/encoding/quoted_printable/core_ext/string.rb +75 -0
- data/lib/ronin/support/encoding/quoted_printable/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/quoted_printable.rb +102 -0
- data/lib/ronin/support/encoding/ruby/core_ext/string.rb +129 -0
- data/lib/ronin/{formatting/binary.rb → support/encoding/ruby/core_ext.rb} +6 -7
- data/lib/ronin/support/encoding/ruby.rb +235 -0
- data/lib/ronin/support/encoding/shell/core_ext/integer.rb +89 -0
- data/lib/ronin/support/encoding/shell/core_ext/string.rb +134 -0
- data/lib/ronin/support/encoding/shell/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/shell.rb +293 -0
- data/lib/ronin/{network/extensions → support/encoding}/smtp.rb +7 -7
- data/lib/ronin/support/encoding/sql/core_ext/string.rb +114 -0
- data/lib/ronin/{formatting/http.rb → support/encoding/sql/core_ext.rb} +6 -7
- data/lib/ronin/support/encoding/sql.rb +124 -0
- data/lib/ronin/support/encoding/uri/core_ext/integer.rb +149 -0
- data/lib/ronin/support/encoding/uri/core_ext/string.rb +195 -0
- data/lib/ronin/support/encoding/uri/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/uri.rb +424 -0
- data/lib/ronin/support/encoding/uuencoding/core_ext/string.rb +73 -0
- data/lib/ronin/support/encoding/uuencoding/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/uuencoding.rb +70 -0
- data/lib/ronin/support/encoding/xml/core_ext/integer.rb +100 -0
- data/lib/ronin/support/encoding/xml/core_ext/string.rb +124 -0
- data/lib/ronin/support/encoding/xml/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/xml.rb +328 -0
- data/lib/ronin/support/encoding.rb +46 -0
- data/lib/ronin/support/home.rb +88 -0
- data/lib/ronin/support/mixin.rb +42 -0
- data/lib/ronin/support/network/asn/dns_record.rb +112 -0
- data/lib/ronin/support/network/asn/list.rb +269 -0
- data/lib/ronin/support/network/asn/record.rb +164 -0
- data/lib/ronin/support/network/asn/record_set.rb +226 -0
- data/lib/ronin/support/network/asn.rb +88 -0
- data/lib/ronin/{binary/hexdump.rb → support/network/core_ext.rb} +6 -7
- data/lib/ronin/support/network/dns/idn.rb +38 -0
- data/lib/ronin/support/network/dns/mixin.rb +941 -0
- data/lib/ronin/support/network/dns/resolver.rb +707 -0
- data/lib/ronin/support/network/dns.rb +1109 -0
- data/lib/ronin/support/network/domain.rb +70 -0
- data/lib/ronin/support/network/email_address.rb +574 -0
- data/lib/ronin/support/network/esmtp/mixin.rb +115 -0
- data/lib/ronin/support/network/exceptions.rb +43 -0
- data/lib/ronin/support/network/ftp/mixin.rb +106 -0
- data/lib/ronin/support/network/host.rb +1473 -0
- data/lib/ronin/support/network/http/cookie.rb +245 -0
- data/lib/ronin/support/network/http/core_ext/uri/http.rb +63 -0
- data/lib/ronin/support/network/http/core_ext.rb +19 -0
- data/lib/ronin/support/network/http/mixin.rb +890 -0
- data/lib/ronin/support/network/http/request.rb +215 -0
- data/lib/ronin/support/network/http/set_cookie.rb +210 -0
- data/lib/ronin/support/network/http/user_agents.rb +115 -0
- data/lib/ronin/support/network/http.rb +2582 -0
- data/lib/ronin/support/network/imap/mixin.rb +133 -0
- data/lib/ronin/support/network/ip/mixin.rb +114 -0
- data/lib/ronin/support/network/ip.rb +540 -0
- data/lib/ronin/support/network/ip_range/cidr.rb +252 -0
- data/lib/ronin/support/network/ip_range/glob.rb +309 -0
- data/lib/ronin/support/network/ip_range/range.rb +249 -0
- data/lib/ronin/support/network/ip_range.rb +284 -0
- data/lib/ronin/support/network/mixin.rb +58 -0
- data/lib/ronin/support/network/packet.rb +27 -0
- data/lib/ronin/support/network/pop3/mixin.rb +113 -0
- data/lib/ronin/support/network/proxy.rb +602 -0
- data/lib/ronin/support/network/public_suffix/list.rb +339 -0
- data/lib/ronin/support/network/public_suffix/suffix.rb +118 -0
- data/lib/ronin/support/network/public_suffix/suffix_set.rb +150 -0
- data/lib/ronin/support/network/public_suffix.rb +41 -0
- data/lib/ronin/support/network/smtp/email.rb +190 -0
- data/lib/ronin/support/network/smtp/mixin.rb +290 -0
- data/lib/ronin/{extensions/meta.rb → support/network/smtp.rb} +6 -7
- data/lib/ronin/support/network/ssl/local_cert.rb +114 -0
- data/lib/ronin/support/network/ssl/local_key.rb +84 -0
- data/lib/ronin/support/network/ssl/mixin.rb +740 -0
- data/lib/ronin/{network/extensions/imap/net.rb → support/network/ssl/openssl.rb} +9 -10
- data/lib/ronin/support/network/ssl/proxy.rb +296 -0
- data/lib/ronin/support/network/ssl.rb +173 -0
- data/lib/ronin/support/network/tcp/mixin.rb +400 -0
- data/lib/ronin/support/network/tcp/proxy.rb +435 -0
- data/lib/ronin/support/network/tcp.rb +443 -0
- data/lib/ronin/support/network/telnet/mixin.rb +150 -0
- data/lib/ronin/support/network/telnet.rb +90 -0
- data/lib/ronin/support/network/tld/list.rb +266 -0
- data/lib/ronin/support/network/tld.rb +41 -0
- data/lib/ronin/support/network/tls/mixin.rb +670 -0
- data/lib/ronin/support/network/tls/proxy.rb +135 -0
- data/lib/ronin/support/network/tls.rb +53 -0
- data/lib/ronin/support/network/udp/mixin.rb +389 -0
- data/lib/ronin/support/network/udp/proxy.rb +192 -0
- data/lib/ronin/support/network/udp.rb +435 -0
- data/lib/ronin/support/network/unix/mixin.rb +273 -0
- data/lib/ronin/support/network.rb +37 -0
- data/lib/ronin/support/path.rb +136 -0
- data/lib/ronin/{network/extensions/dns/net.rb → support/text/core_ext/regexp.rb} +8 -9
- data/lib/ronin/support/text/core_ext/string.rb +46 -0
- data/lib/ronin/support/text/core_ext.rb +23 -0
- data/lib/ronin/support/text/entropy/core_ext/string.rb +45 -0
- data/lib/ronin/support/text/entropy/core_ext.rb +19 -0
- data/lib/ronin/support/text/entropy.rb +66 -0
- data/lib/ronin/support/text/erb/mixin.rb +44 -0
- data/lib/ronin/support/text/erb.rb +19 -0
- data/lib/ronin/support/text/homoglyph/core_ext/string.rb +108 -0
- data/lib/ronin/{formatting/digest.rb → support/text/homoglyph/core_ext.rb} +6 -7
- data/lib/ronin/{network/http/exceptions/unknown_request.rb → support/text/homoglyph/exceptions.rb} +10 -9
- data/lib/ronin/support/text/homoglyph/table.rb +228 -0
- data/lib/ronin/support/text/homoglyph.rb +142 -0
- data/lib/ronin/support/text/mixin.rb +31 -0
- data/lib/ronin/support/text/patterns/credentials.rb +75 -0
- data/lib/ronin/support/text/patterns/crypto.rb +67 -0
- data/lib/ronin/support/text/patterns/file_system.rb +93 -0
- data/lib/ronin/support/text/patterns/language.rb +37 -0
- data/lib/ronin/support/text/patterns/network/public_suffix.rb +44 -0
- data/lib/ronin/support/text/patterns/network.rb +140 -0
- data/lib/ronin/support/text/patterns/numeric.rb +52 -0
- data/lib/ronin/support/text/patterns/pii.rb +105 -0
- data/lib/ronin/support/text/patterns/source_code.rb +148 -0
- data/lib/ronin/support/text/patterns.rb +25 -0
- data/lib/ronin/support/text/random/mixin.rb +437 -0
- data/lib/ronin/support/text/random.rb +419 -0
- data/lib/ronin/support/text/typo/core_ext/string.rb +123 -0
- data/lib/ronin/support/text/typo/core_ext.rb +19 -0
- data/lib/ronin/support/text/typo/exceptions.rb +28 -0
- data/lib/ronin/support/text/typo/generator.rb +161 -0
- data/lib/ronin/support/text/typo.rb +260 -0
- data/lib/ronin/support/text.rb +26 -0
- data/lib/ronin/support/version.rb +6 -7
- data/lib/ronin/support.rb +20 -15
- data/ronin-support.gemspec +3 -1
- metadata +462 -369
- data/.gemtest +0 -0
- data/lib/ronin/binary/hexdump/parser.rb +0 -403
- data/lib/ronin/binary/struct.rb +0 -567
- data/lib/ronin/binary/template.rb +0 -454
- data/lib/ronin/extensions/ip_addr.rb +0 -217
- data/lib/ronin/extensions/meta/object.rb +0 -24
- data/lib/ronin/extensions/regexp.rb +0 -157
- data/lib/ronin/extensions.rb +0 -29
- data/lib/ronin/formatting/extensions/binary/array.rb +0 -61
- data/lib/ronin/formatting/extensions/binary/base64.rb +0 -106
- data/lib/ronin/formatting/extensions/binary/file.rb +0 -77
- data/lib/ronin/formatting/extensions/binary/float.rb +0 -65
- data/lib/ronin/formatting/extensions/binary/integer.rb +0 -180
- data/lib/ronin/formatting/extensions/binary/string.rb +0 -345
- data/lib/ronin/formatting/extensions/binary.rb +0 -26
- data/lib/ronin/formatting/extensions/digest/file.rb +0 -129
- data/lib/ronin/formatting/extensions/digest/string.rb +0 -86
- data/lib/ronin/formatting/extensions/digest.rb +0 -21
- data/lib/ronin/formatting/extensions/html/integer.rb +0 -142
- data/lib/ronin/formatting/extensions/html/string.rb +0 -194
- data/lib/ronin/formatting/extensions/html.rb +0 -21
- data/lib/ronin/formatting/extensions/http/integer.rb +0 -69
- data/lib/ronin/formatting/extensions/http/string.rb +0 -110
- data/lib/ronin/formatting/extensions/http.rb +0 -21
- data/lib/ronin/formatting/extensions/sql/string.rb +0 -128
- data/lib/ronin/formatting/extensions/sql.rb +0 -20
- data/lib/ronin/formatting/extensions/text/array.rb +0 -137
- data/lib/ronin/formatting/extensions/text/string.rb +0 -297
- data/lib/ronin/formatting/extensions.rb +0 -24
- data/lib/ronin/formatting/text.rb +0 -20
- data/lib/ronin/formatting.rb +0 -25
- data/lib/ronin/fuzzing/extensions/string.rb +0 -209
- data/lib/ronin/fuzzing/fuzzer.rb +0 -110
- data/lib/ronin/fuzzing/fuzzing.rb +0 -360
- data/lib/ronin/fuzzing/mutator.rb +0 -161
- data/lib/ronin/fuzzing/repeater.rb +0 -81
- data/lib/ronin/fuzzing/template.rb +0 -133
- data/lib/ronin/fuzzing.rb +0 -21
- data/lib/ronin/mixin.rb +0 -89
- data/lib/ronin/network/dns.rb +0 -201
- data/lib/ronin/network/esmtp.rb +0 -113
- data/lib/ronin/network/extensions/dns.rb +0 -20
- data/lib/ronin/network/extensions/esmtp.rb +0 -20
- data/lib/ronin/network/extensions/http/uri/http.rb +0 -228
- data/lib/ronin/network/extensions/http.rb +0 -21
- data/lib/ronin/network/extensions/imap.rb +0 -20
- data/lib/ronin/network/extensions/pop3/net.rb +0 -24
- data/lib/ronin/network/extensions/pop3.rb +0 -20
- data/lib/ronin/network/extensions/smtp/net.rb +0 -24
- data/lib/ronin/network/extensions/ssl/net.rb +0 -24
- data/lib/ronin/network/extensions/ssl.rb +0 -20
- data/lib/ronin/network/extensions/tcp/net.rb +0 -24
- data/lib/ronin/network/extensions/tcp.rb +0 -20
- data/lib/ronin/network/extensions/telnet/net.rb +0 -24
- data/lib/ronin/network/extensions/telnet.rb +0 -20
- data/lib/ronin/network/extensions/udp/net.rb +0 -24
- data/lib/ronin/network/extensions/udp.rb +0 -20
- data/lib/ronin/network/extensions.rb +0 -29
- data/lib/ronin/network/ftp.rb +0 -149
- data/lib/ronin/network/http/exceptions.rb +0 -20
- data/lib/ronin/network/http/http.rb +0 -1127
- data/lib/ronin/network/http/proxy.rb +0 -330
- data/lib/ronin/network/http.rb +0 -22
- data/lib/ronin/network/imap.rb +0 -158
- data/lib/ronin/network/mixins/dns.rb +0 -55
- data/lib/ronin/network/mixins/esmtp.rb +0 -164
- data/lib/ronin/network/mixins/ftp.rb +0 -155
- data/lib/ronin/network/mixins/http.rb +0 -227
- data/lib/ronin/network/mixins/imap.rb +0 -156
- data/lib/ronin/network/mixins/mixin.rb +0 -58
- data/lib/ronin/network/mixins/pop3.rb +0 -149
- data/lib/ronin/network/mixins/smtp.rb +0 -159
- data/lib/ronin/network/mixins/ssl.rb +0 -148
- data/lib/ronin/network/mixins/tcp.rb +0 -368
- data/lib/ronin/network/mixins/telnet.rb +0 -208
- data/lib/ronin/network/mixins/udp.rb +0 -381
- data/lib/ronin/network/mixins/unix.rb +0 -279
- data/lib/ronin/network/mixins.rb +0 -29
- data/lib/ronin/network/network.rb +0 -45
- data/lib/ronin/network/pop3.rb +0 -124
- data/lib/ronin/network/proxy.rb +0 -578
- data/lib/ronin/network/smtp/email.rb +0 -174
- data/lib/ronin/network/smtp/smtp.rb +0 -230
- data/lib/ronin/network/smtp.rb +0 -22
- data/lib/ronin/network/ssl.rb +0 -186
- data/lib/ronin/network/tcp/proxy.rb +0 -417
- data/lib/ronin/network/tcp/tcp.rb +0 -443
- data/lib/ronin/network/tcp.rb +0 -21
- data/lib/ronin/network/telnet.rb +0 -264
- data/lib/ronin/network/udp/proxy.rb +0 -191
- data/lib/ronin/network/udp/udp.rb +0 -450
- data/lib/ronin/network/udp.rb +0 -21
- data/lib/ronin/network/unix.rb +0 -286
- data/lib/ronin/network.rb +0 -31
- data/lib/ronin/path.rb +0 -137
- data/lib/ronin/spec/ui/output.rb +0 -22
- data/lib/ronin/support/inflector.rb +0 -92
- data/lib/ronin/support/support.rb +0 -42
- data/lib/ronin/templates/erb.rb +0 -78
- data/lib/ronin/templates/template.rb +0 -169
- data/lib/ronin/templates.rb +0 -21
- data/lib/ronin/ui/output/helpers.rb +0 -296
- data/lib/ronin/ui/output/output.rb +0 -146
- data/lib/ronin/ui/output/terminal/color.rb +0 -124
- data/lib/ronin/ui/output/terminal/raw.rb +0 -103
- data/lib/ronin/ui/output/terminal.rb +0 -21
- data/lib/ronin/ui/output.rb +0 -21
- data/lib/ronin/ui/shell.rb +0 -286
- data/lib/ronin/wordlist.rb +0 -287
- data/spec/binary/hexdump/helpers/hexdumps/ascii.bin +0 -0
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_decimal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_hex_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_hex_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_octal_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_octal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_repeated.txt +0 -6
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_ints.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_quads.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_doubles.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_floats.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_ints.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_quads.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_named_chars.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_ints.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_quads.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_repeated.txt +0 -6
- data/spec/binary/hexdump/helpers/hexdumps/repeated.bin +0 -1
- data/spec/binary/hexdump/helpers/hexdumps.rb +0 -13
- data/spec/binary/hexdump/parser_spec.rb +0 -302
- data/spec/binary/struct_spec.rb +0 -496
- data/spec/binary/template_spec.rb +0 -414
- data/spec/extensions/enumerable_spec.rb +0 -24
- data/spec/extensions/file_spec.rb +0 -63
- data/spec/extensions/ip_addr_spec.rb +0 -203
- data/spec/extensions/kernel_spec.rb +0 -30
- data/spec/extensions/regexp_spec.rb +0 -482
- data/spec/extensions/resolv_spec.rb +0 -18
- data/spec/extensions/string_spec.rb +0 -179
- data/spec/formatting/binary/array_spec.rb +0 -26
- data/spec/formatting/binary/base64_spec.rb +0 -50
- data/spec/formatting/binary/float_spec.rb +0 -34
- data/spec/formatting/binary/integer_spec.rb +0 -166
- data/spec/formatting/binary/string_spec.rb +0 -197
- data/spec/formatting/digest/string_spec.rb +0 -82
- data/spec/formatting/html/integer_spec.rb +0 -66
- data/spec/formatting/html/string_spec.rb +0 -103
- data/spec/formatting/http/integer_spec.rb +0 -42
- data/spec/formatting/http/string_spec.rb +0 -76
- data/spec/formatting/sql/string_spec.rb +0 -75
- data/spec/formatting/text/array_spec.rb +0 -105
- data/spec/formatting/text/string_spec.rb +0 -162
- data/spec/fuzzing/extensions/string_spec.rb +0 -87
- data/spec/fuzzing/fuzzer_spec.rb +0 -109
- data/spec/fuzzing/fuzzing_spec.rb +0 -24
- data/spec/fuzzing/mutator_spec.rb +0 -112
- data/spec/fuzzing/repeater_spec.rb +0 -57
- data/spec/fuzzing/template_spec.rb +0 -54
- data/spec/mixin_spec.rb +0 -53
- data/spec/network/dns_spec.rb +0 -201
- data/spec/network/ftp_spec.rb +0 -81
- data/spec/network/http/http_spec.rb +0 -466
- data/spec/network/http/proxy_spec.rb +0 -148
- data/spec/network/network_spec.rb +0 -8
- data/spec/network/proxy_spec.rb +0 -121
- data/spec/network/shared/unix_server.rb +0 -31
- data/spec/network/smtp/email_spec.rb +0 -100
- data/spec/network/ssl_spec.rb +0 -70
- data/spec/network/tcp/proxy_spec.rb +0 -116
- data/spec/network/tcp/tcp_spec.rb +0 -273
- data/spec/network/telnet_spec.rb +0 -67
- data/spec/network/udp/udp_spec.rb +0 -271
- data/spec/network/unix_spec.rb +0 -183
- data/spec/path_spec.rb +0 -86
- data/spec/spec_helper.rb +0 -9
- data/spec/support/inflector_spec.rb +0 -22
- data/spec/support_spec.rb +0 -8
- data/spec/templates/classes/example_erb.rb +0 -11
- data/spec/templates/classes/example_template.rb +0 -35
- data/spec/templates/erb_spec.rb +0 -21
- data/spec/templates/helpers/data/includes/_relative.erb +0 -1
- data/spec/templates/helpers/data/templates/example.erb +0 -1
- data/spec/templates/helpers/data.rb +0 -9
- data/spec/templates/template_spec.rb +0 -54
- data/spec/ui/classes/test_shell.rb +0 -22
- data/spec/ui/output_spec.rb +0 -32
- data/spec/ui/shell_spec.rb +0 -83
- data/spec/wordlist_spec.rb +0 -151
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
require 'ronin/extensions/resolv'
|
|
21
|
-
|
|
22
|
-
#
|
|
23
|
-
# @since 0.3.0
|
|
24
|
-
#
|
|
25
|
-
class Regexp
|
|
26
|
-
|
|
27
|
-
# Regular expression for finding words
|
|
28
|
-
#
|
|
29
|
-
# @since 0.5.0
|
|
30
|
-
WORD = /[A-Za-z][A-Za-z'\-\.]*[A-Za-z]/
|
|
31
|
-
|
|
32
|
-
# Regular expression for finding a decimal octet (0 - 255)
|
|
33
|
-
#
|
|
34
|
-
# @since 0.4.0
|
|
35
|
-
OCTET = /25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9]/
|
|
36
|
-
|
|
37
|
-
# Regular expression for finding MAC addresses in text
|
|
38
|
-
MAC = /[0-9a-fA-F]{2}(?::[0-9a-fA-F]{2}){5}/
|
|
39
|
-
|
|
40
|
-
# A regular expression for matching IPv4 Addresses.
|
|
41
|
-
IPv4 = /#{OCTET}(?:\.#{OCTET}){3}(?:\/\d{1,2})?/
|
|
42
|
-
|
|
43
|
-
# A regular expression for matching IPv6 Addresses.
|
|
44
|
-
IPv6 = union(
|
|
45
|
-
/(?:[0-9a-f]{1,4}:){6}#{IPv4}/,
|
|
46
|
-
/(?:[0-9a-f]{1,4}:){5}[0-9a-f]{1,4}:#{IPv4}/,
|
|
47
|
-
/(?:[0-9a-f]{1,4}:){5}:[0-9a-f]{1,4}:#{IPv4}/,
|
|
48
|
-
/(?:[0-9a-f]{1,4}:){1,1}(?::[0-9a-f]{1,4}){1,4}:#{IPv4}/,
|
|
49
|
-
/(?:[0-9a-f]{1,4}:){1,2}(?::[0-9a-f]{1,4}){1,3}:#{IPv4}/,
|
|
50
|
-
/(?:[0-9a-f]{1,4}:){1,3}(?::[0-9a-f]{1,4}){1,2}:#{IPv4}/,
|
|
51
|
-
/(?:[0-9a-f]{1,4}:){1,4}(?::[0-9a-f]{1,4}){1,1}:#{IPv4}/,
|
|
52
|
-
/:(?::[0-9a-f]{1,4}){1,5}:#{IPv4}/,
|
|
53
|
-
/(?:(?:[0-9a-f]{1,4}:){1,5}|:):#{IPv4}/,
|
|
54
|
-
/(?:[0-9a-f]{1,4}:){1,1}(?::[0-9a-f]{1,4}){1,6}(?:\/\d{1,3})?/,
|
|
55
|
-
/(?:[0-9a-f]{1,4}:){1,2}(?::[0-9a-f]{1,4}){1,5}(?:\/\d{1,3})?/,
|
|
56
|
-
/(?:[0-9a-f]{1,4}:){1,3}(?::[0-9a-f]{1,4}){1,4}(?:\/\d{1,3})?/,
|
|
57
|
-
/(?:[0-9a-f]{1,4}:){1,4}(?::[0-9a-f]{1,4}){1,3}(?:\/\d{1,3})?/,
|
|
58
|
-
/(?:[0-9a-f]{1,4}:){1,5}(?::[0-9a-f]{1,4}){1,2}(?:\/\d{1,3})?/,
|
|
59
|
-
/(?:[0-9a-f]{1,4}:){1,6}(?::[0-9a-f]{1,4}){1,1}(?:\/\d{1,3})?/,
|
|
60
|
-
/[0-9a-f]{1,4}(?::[0-9a-f]{1,4}){7}(?:\/\d{1,3})?/,
|
|
61
|
-
/:(?::[0-9a-f]{1,4}){1,7}(?:\/\d{1,3})?/,
|
|
62
|
-
/(?:(?:[0-9a-f]{1,4}:){1,7}|:):(?:\/\d{1,3})?/
|
|
63
|
-
)
|
|
64
|
-
|
|
65
|
-
# A regular expression for matching IP Addresses.
|
|
66
|
-
IP = /#{IPv4}|#{IPv6}/
|
|
67
|
-
|
|
68
|
-
# Regular expression used to find host-names in text
|
|
69
|
-
HOST_NAME = /(?:[a-zA-Z0-9]+(?:[_-][a-zA-Z0-9]+)*\.)+(?:#{union(Resolv::TLDS)})/i
|
|
70
|
-
|
|
71
|
-
# Regular expression to match a word in the username of an email address
|
|
72
|
-
USER_NAME = /[A-Za-z](?:[A-Za-z0-9]*[\._-])*[A-Za-z0-9]+/
|
|
73
|
-
|
|
74
|
-
# Regular expression to find email addresses in text
|
|
75
|
-
EMAIL_ADDR = /#{USER_NAME}\@#{HOST_NAME}/
|
|
76
|
-
|
|
77
|
-
# Regular expression to find phone numbers in text
|
|
78
|
-
#
|
|
79
|
-
# @since 0.5.0
|
|
80
|
-
PHONE_NUMBER = /(?:\d[ \-\.]?)?(?:\d{3}[ \-\.]?)?\d{3}[ \-\.]?\d{4}(?:x\d+)?/
|
|
81
|
-
|
|
82
|
-
# Regular expression to find deliminators in text
|
|
83
|
-
#
|
|
84
|
-
# @since 0.4.0
|
|
85
|
-
DELIM = /[;&\n\r]/
|
|
86
|
-
|
|
87
|
-
# Regular expression to find identifier in text
|
|
88
|
-
#
|
|
89
|
-
# @since 0.4.0
|
|
90
|
-
IDENTIFIER = /[_]*[a-zA-Z]+[a-zA-Z0-9_-]*/
|
|
91
|
-
|
|
92
|
-
# Regular expression to find File extensions in text
|
|
93
|
-
#
|
|
94
|
-
# @since 0.4.0
|
|
95
|
-
FILE_EXT = /(?:\.[A-Za-z0-9]+)+/
|
|
96
|
-
|
|
97
|
-
# Regular expression to find File names in text
|
|
98
|
-
#
|
|
99
|
-
# @since 0.4.0
|
|
100
|
-
FILE_NAME = /(?:[^\/\\\. ]|\\[\/\\ ])+/
|
|
101
|
-
|
|
102
|
-
# Regular expression to find Files in text
|
|
103
|
-
#
|
|
104
|
-
# @since 0.4.0
|
|
105
|
-
FILE = /#{FILE_NAME}(?:#{FILE_EXT})?/
|
|
106
|
-
|
|
107
|
-
# Regular expression to find Directory names in text
|
|
108
|
-
#
|
|
109
|
-
# @since 0.4.0
|
|
110
|
-
DIRECTORY = /(?:\.\.|\.|#{FILE})/
|
|
111
|
-
|
|
112
|
-
# Regular expression to find local UNIX Paths in text
|
|
113
|
-
#
|
|
114
|
-
# @since 0.4.0
|
|
115
|
-
RELATIVE_UNIX_PATH = /(?:#{DIRECTORY}\/)+#{DIRECTORY}\/?/
|
|
116
|
-
|
|
117
|
-
# Regular expression to find absolute UNIX Paths in text
|
|
118
|
-
#
|
|
119
|
-
# @since 0.4.0
|
|
120
|
-
ABSOLUTE_UNIX_PATH = /(?:\/#{FILE})+\/?/
|
|
121
|
-
|
|
122
|
-
# Regular expression to find UNIX Paths in text
|
|
123
|
-
#
|
|
124
|
-
# @since 0.4.0
|
|
125
|
-
UNIX_PATH = /#{ABSOLUTE_UNIX_PATH}|#{RELATIVE_UNIX_PATH}/
|
|
126
|
-
|
|
127
|
-
# Regular expression to find local Windows Paths in text
|
|
128
|
-
#
|
|
129
|
-
# @since 0.4.0
|
|
130
|
-
RELATIVE_WINDOWS_PATH = /(?:#{DIRECTORY}\\)+#{DIRECTORY}\\?/
|
|
131
|
-
|
|
132
|
-
# Regular expression to find absolute Windows Paths in text
|
|
133
|
-
#
|
|
134
|
-
# @since 0.4.0
|
|
135
|
-
ABSOLUTE_WINDOWS_PATH = /[A-Za-z]:(?:\\#{FILE})+\\?/
|
|
136
|
-
|
|
137
|
-
# Regular expression to find Windows Paths in text
|
|
138
|
-
#
|
|
139
|
-
# @since 0.4.0
|
|
140
|
-
WINDOWS_PATH = /#{ABSOLUTE_WINDOWS_PATH}|#{RELATIVE_WINDOWS_PATH}/
|
|
141
|
-
|
|
142
|
-
# Regular expression to find local Paths in text
|
|
143
|
-
#
|
|
144
|
-
# @since 0.4.0
|
|
145
|
-
RELATIVE_PATH = /#{RELATIVE_UNIX_PATH}|#{RELATIVE_WINDOWS_PATH}/
|
|
146
|
-
|
|
147
|
-
# Regular expression to find absolute Paths in text
|
|
148
|
-
#
|
|
149
|
-
# @since 0.4.0
|
|
150
|
-
ABSOLUTE_PATH = /#{ABSOLUTE_UNIX_PATH}|#{ABSOLUTE_WINDOWS_PATH}/
|
|
151
|
-
|
|
152
|
-
# Regular expression to find Paths in text
|
|
153
|
-
#
|
|
154
|
-
# @since 0.4.0
|
|
155
|
-
PATH = /#{UNIX_PATH}|#{WINDOWS_PATH}/
|
|
156
|
-
|
|
157
|
-
end
|
data/lib/ronin/extensions.rb
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
require 'ronin/extensions/meta'
|
|
21
|
-
require 'ronin/extensions/string'
|
|
22
|
-
require 'ronin/extensions/regexp'
|
|
23
|
-
require 'ronin/extensions/file'
|
|
24
|
-
require 'ronin/extensions/ip_addr'
|
|
25
|
-
require 'ronin/extensions/resolv'
|
|
26
|
-
require 'ronin/extensions/kernel'
|
|
27
|
-
|
|
28
|
-
require 'hexdump/extensions'
|
|
29
|
-
require 'uri/query_params/extensions'
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
require 'ronin/binary/template'
|
|
21
|
-
|
|
22
|
-
class Array
|
|
23
|
-
|
|
24
|
-
alias pack_original pack
|
|
25
|
-
|
|
26
|
-
#
|
|
27
|
-
# Packs the Array into a String.
|
|
28
|
-
#
|
|
29
|
-
# @param [String, Array<Symbol, (Symbol, Integer)>] arguments
|
|
30
|
-
# The `Array#pack` template or a list of {Ronin::Binary::Template} types.
|
|
31
|
-
#
|
|
32
|
-
# @return [String]
|
|
33
|
-
# The packed Array.
|
|
34
|
-
#
|
|
35
|
-
# @raise [ArgumentError]
|
|
36
|
-
# One of the arguments was not a known {Ronin::Binary::Template} type.
|
|
37
|
-
#
|
|
38
|
-
# @example using {Ronin::Binary::Template} types:
|
|
39
|
-
# [0x1234, "hello"].pack(:uint16_le, :string)
|
|
40
|
-
# # => "\x34\x12hello\0"
|
|
41
|
-
#
|
|
42
|
-
# @example using a `String#unpack` template:
|
|
43
|
-
# [0x1234, "hello"].pack('vZ*')
|
|
44
|
-
# # => "\x34\x12hello\0"
|
|
45
|
-
#
|
|
46
|
-
# @see http://rubydoc.info/stdlib/core/Array:pack
|
|
47
|
-
# @see Ronin::Binary::Template
|
|
48
|
-
#
|
|
49
|
-
# @since 0.5.0
|
|
50
|
-
#
|
|
51
|
-
# @api public
|
|
52
|
-
#
|
|
53
|
-
def pack(*arguments)
|
|
54
|
-
if (arguments.length == 1 && arguments.first.kind_of?(String))
|
|
55
|
-
pack_original(arguments.first)
|
|
56
|
-
else
|
|
57
|
-
pack_original(Ronin::Binary::Template.compile(arguments))
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
end
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
require 'base64'
|
|
21
|
-
|
|
22
|
-
#
|
|
23
|
-
# Adds Ruby 1.9 specific methods when running on Ruby 1.8.7.
|
|
24
|
-
#
|
|
25
|
-
module Base64
|
|
26
|
-
if RUBY_VERSION < '1.9.'
|
|
27
|
-
module_function
|
|
28
|
-
|
|
29
|
-
#
|
|
30
|
-
# Strictly encodes a base64 String.
|
|
31
|
-
#
|
|
32
|
-
# @param [String] bin
|
|
33
|
-
# The String to encode.
|
|
34
|
-
#
|
|
35
|
-
# @return [String]
|
|
36
|
-
# The strictly encoded base64 String.
|
|
37
|
-
#
|
|
38
|
-
# @note
|
|
39
|
-
# This method complies with RFC 4648.
|
|
40
|
-
# No line feeds are added.
|
|
41
|
-
#
|
|
42
|
-
def strict_encode64(bin)
|
|
43
|
-
encode64(bin).tr("\n",'')
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
#
|
|
47
|
-
# Decodes a strictly base64 encoded String.
|
|
48
|
-
#
|
|
49
|
-
# @param [String] str
|
|
50
|
-
# The strictly encoded base64 String.
|
|
51
|
-
#
|
|
52
|
-
# @return [String]
|
|
53
|
-
# The decoded String.
|
|
54
|
-
#
|
|
55
|
-
# @raise [ArgumentError]
|
|
56
|
-
# The String is incorrectly padded or contains non-alphabet characters.
|
|
57
|
-
# Note: CR or LF are also rejected.
|
|
58
|
-
#
|
|
59
|
-
# @note
|
|
60
|
-
# This method complies with RFC 4648.
|
|
61
|
-
#
|
|
62
|
-
def strict_decode64(str)
|
|
63
|
-
unless str.include?("\n")
|
|
64
|
-
decode64(str)
|
|
65
|
-
else
|
|
66
|
-
raise(ArgumentError,"invalid base64")
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
#
|
|
71
|
-
# Encodes a URL-safe base64 String.
|
|
72
|
-
#
|
|
73
|
-
# @param [String] bin
|
|
74
|
-
# The String to encode.
|
|
75
|
-
#
|
|
76
|
-
# @return [String]
|
|
77
|
-
# The URL-safe encoded base64 String.
|
|
78
|
-
#
|
|
79
|
-
# @note
|
|
80
|
-
# This method complies with ``Base 64 Encoding with URL and filename Safe
|
|
81
|
-
# Alphabet'' in RFC 4648.
|
|
82
|
-
# The alphabet uses '-' instead of '+' and '_' instead of '/'.
|
|
83
|
-
#
|
|
84
|
-
def urlsafe_encode64(bin)
|
|
85
|
-
strict_encode64(bin).tr("+/", "-_")
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
#
|
|
89
|
-
# Decodes a URL-safe base64 encoded String.
|
|
90
|
-
#
|
|
91
|
-
# @param [String] str
|
|
92
|
-
# The URL-safe encoded base64 String.
|
|
93
|
-
#
|
|
94
|
-
# @return [String]
|
|
95
|
-
# The decoded String.
|
|
96
|
-
#
|
|
97
|
-
# @note
|
|
98
|
-
# This method complies with ``Base 64 Encoding with URL and filename Safe
|
|
99
|
-
# Alphabet'' in RFC 4648.
|
|
100
|
-
# The alphabet uses '-' instead of '+' and '_' instead of '/'.
|
|
101
|
-
#
|
|
102
|
-
def urlsafe_decode64(str)
|
|
103
|
-
strict_decode64(str.tr("-_", "+/"))
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
end
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
require 'ronin/binary/hexdump/parser'
|
|
21
|
-
|
|
22
|
-
class File
|
|
23
|
-
|
|
24
|
-
#
|
|
25
|
-
# Converts a hexdump file to it's original binary data.
|
|
26
|
-
#
|
|
27
|
-
# @param [Pathname, String] path
|
|
28
|
-
# The path of the hexdump file.
|
|
29
|
-
#
|
|
30
|
-
# @param [Hash] options
|
|
31
|
-
# Additional options.
|
|
32
|
-
#
|
|
33
|
-
# @option options [Symbol] :format
|
|
34
|
-
# The expected format of the hexdump. Must be either `:od` or
|
|
35
|
-
# `:hexdump`.
|
|
36
|
-
#
|
|
37
|
-
# @option options [Symbol] :encoding
|
|
38
|
-
# Denotes the encoding used for the bytes within the hexdump.
|
|
39
|
-
# Must be one of the following:
|
|
40
|
-
#
|
|
41
|
-
# * `:binary`
|
|
42
|
-
# * `:octal`
|
|
43
|
-
# * `:octal_bytes`
|
|
44
|
-
# * `:octal_shorts`
|
|
45
|
-
# * `:octal_ints`
|
|
46
|
-
# * `:octal_quads` (Ruby 1.9 only)
|
|
47
|
-
# * `:decimal`
|
|
48
|
-
# * `:decimal_bytes`
|
|
49
|
-
# * `:decimal_shorts`
|
|
50
|
-
# * `:decimal_ints`
|
|
51
|
-
# * `:decimal_quads` (Ruby 1.9 only)
|
|
52
|
-
# * `:hex`
|
|
53
|
-
# * `:hex_chars`
|
|
54
|
-
# * `:hex_bytes`
|
|
55
|
-
# * `:hex_shorts`
|
|
56
|
-
# * `:hex_ints`
|
|
57
|
-
# * `:hex_quads`
|
|
58
|
-
# * `:named_chars` (Ruby 1.9 only)
|
|
59
|
-
# * `:floats`
|
|
60
|
-
# * `:doubles`
|
|
61
|
-
#
|
|
62
|
-
# @option options [:little, :big, :network] :endian (:little)
|
|
63
|
-
# The endianness of the words.
|
|
64
|
-
#
|
|
65
|
-
# @option options [Integer] :segment (16)
|
|
66
|
-
# The length in bytes of each segment in the hexdump.
|
|
67
|
-
#
|
|
68
|
-
# @return [String]
|
|
69
|
-
# The raw-data from the hexdump.
|
|
70
|
-
#
|
|
71
|
-
# @api public
|
|
72
|
-
#
|
|
73
|
-
def File.unhexdump(path,options={})
|
|
74
|
-
Ronin::Binary::Hexdump::Parser.new(options).parse(File.new(path))
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
end
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
require 'ronin/binary/template'
|
|
21
|
-
|
|
22
|
-
class Float
|
|
23
|
-
|
|
24
|
-
#
|
|
25
|
-
# Packs the Float into a String.
|
|
26
|
-
#
|
|
27
|
-
# @param [String, Symbol] argument
|
|
28
|
-
# The `Array#pack` String code or {Ronin::Binary::Template} type.
|
|
29
|
-
#
|
|
30
|
-
# @return [String]
|
|
31
|
-
# The packed float.
|
|
32
|
-
#
|
|
33
|
-
# @raise [ArgumentError]
|
|
34
|
-
# The given Symbol could not be found in
|
|
35
|
-
# {Ronin::Binary::Template::FLOAT_TYPES}.
|
|
36
|
-
#
|
|
37
|
-
# @example using `Array#pack` template:
|
|
38
|
-
# 0.42.pack('F')
|
|
39
|
-
# # => =\n\xD7>"
|
|
40
|
-
#
|
|
41
|
-
# @example using {Ronin::Binary::Template} types:
|
|
42
|
-
# 0x42.pack(:float_be)
|
|
43
|
-
# # => ">\xD7\n="
|
|
44
|
-
#
|
|
45
|
-
# @see http://rubydoc.info/stdlib/core/Array:pack
|
|
46
|
-
# @see Ronin::Binary::Template
|
|
47
|
-
#
|
|
48
|
-
# @since 0.5.0
|
|
49
|
-
#
|
|
50
|
-
# @api public
|
|
51
|
-
#
|
|
52
|
-
def pack(argument)
|
|
53
|
-
case argument
|
|
54
|
-
when String
|
|
55
|
-
[self].pack(argument)
|
|
56
|
-
else
|
|
57
|
-
unless Ronin::Binary::Template::FLOAT_TYPES.include?(argument)
|
|
58
|
-
raise(ArgumentError,"unsupported integer type: #{argument}")
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
[self].pack(Ronin::Binary::Template::TYPES[argument])
|
|
62
|
-
end
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
end
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
require 'ronin/binary/template'
|
|
21
|
-
|
|
22
|
-
class Integer
|
|
23
|
-
|
|
24
|
-
#
|
|
25
|
-
# Extracts a sequence of bytes which represent the Integer.
|
|
26
|
-
#
|
|
27
|
-
# @param [Integer] length
|
|
28
|
-
# The number of bytes to decode from the Integer.
|
|
29
|
-
#
|
|
30
|
-
# @param [Symbol, String] endian
|
|
31
|
-
# The endianness to use while decoding the bytes of the Integer.
|
|
32
|
-
# May be one of:
|
|
33
|
-
#
|
|
34
|
-
# * `big`
|
|
35
|
-
# * `little`
|
|
36
|
-
# * `net`
|
|
37
|
-
#
|
|
38
|
-
# @return [Array]
|
|
39
|
-
# The bytes decoded from the Integer.
|
|
40
|
-
#
|
|
41
|
-
# @raise [ArgumentError]
|
|
42
|
-
# The given `endian` was not one of:
|
|
43
|
-
#
|
|
44
|
-
# * `little`
|
|
45
|
-
# * `net`
|
|
46
|
-
# * `big`
|
|
47
|
-
#
|
|
48
|
-
# @example
|
|
49
|
-
# 0xff41.bytes(2)
|
|
50
|
-
# # => [65, 255]
|
|
51
|
-
#
|
|
52
|
-
# @example
|
|
53
|
-
# 0xff41.bytes(4, :big)
|
|
54
|
-
# # => [0, 0, 255, 65]
|
|
55
|
-
#
|
|
56
|
-
# @api public
|
|
57
|
-
#
|
|
58
|
-
def bytes(length,endian=:little)
|
|
59
|
-
endian = endian.to_sym
|
|
60
|
-
buffer = []
|
|
61
|
-
|
|
62
|
-
case endian
|
|
63
|
-
when :little
|
|
64
|
-
mask = 0xff
|
|
65
|
-
shift = 0
|
|
66
|
-
|
|
67
|
-
length.times do |i|
|
|
68
|
-
buffer << ((self & mask) >> shift)
|
|
69
|
-
|
|
70
|
-
mask <<= 8
|
|
71
|
-
shift += 8
|
|
72
|
-
end
|
|
73
|
-
when :big, :net
|
|
74
|
-
shift = ((length - 1) * 8)
|
|
75
|
-
mask = (0xff << shift)
|
|
76
|
-
|
|
77
|
-
length.times do |i|
|
|
78
|
-
buffer << ((self & mask) >> shift)
|
|
79
|
-
|
|
80
|
-
mask >>= 8
|
|
81
|
-
shift -= 8
|
|
82
|
-
end
|
|
83
|
-
else
|
|
84
|
-
raise(ArgumentError,"invalid endian #{endian}")
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
return buffer
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
#
|
|
91
|
-
# Packs the Integer into a String.
|
|
92
|
-
#
|
|
93
|
-
# @param [String, Symbol, arch] arguments
|
|
94
|
-
# The `Array#pack` code, {Ronin::Binary::Template} type or Architecture
|
|
95
|
-
# object with `#endian` and `#address_length` methods.
|
|
96
|
-
#
|
|
97
|
-
# @return [String]
|
|
98
|
-
# The packed Integer.
|
|
99
|
-
#
|
|
100
|
-
# @raise [ArgumentError]
|
|
101
|
-
# The given Symbol could not be found in
|
|
102
|
-
# {Ronin::Binary::Template::INT_TYPES}.
|
|
103
|
-
#
|
|
104
|
-
# @example using a `Array#pack` template:
|
|
105
|
-
# 0x41.pack('V')
|
|
106
|
-
# # => "A\0\0\0"
|
|
107
|
-
#
|
|
108
|
-
# @example using {Ronin::Binary::Template} types:
|
|
109
|
-
# 0x41.pack(:uint32_le)
|
|
110
|
-
#
|
|
111
|
-
# @example using archs other than `Ronin::Arch` (**deprecated**):
|
|
112
|
-
# arch = OpenStruct.new(:endian => :little, :address_length => 4)
|
|
113
|
-
#
|
|
114
|
-
# 0x41.pack(arch)
|
|
115
|
-
# # => "A\0\0\0"
|
|
116
|
-
#
|
|
117
|
-
# @example using a `Ronin::Arch` arch (**deprecated**):
|
|
118
|
-
# 0x41.pack(Arch.i686)
|
|
119
|
-
# # => "A\0\0\0"
|
|
120
|
-
#
|
|
121
|
-
# @example specifying a custom address-length (**deprecated**):
|
|
122
|
-
# 0x41.pack(Arch.ppc,2)
|
|
123
|
-
# # => "\0A"
|
|
124
|
-
#
|
|
125
|
-
# @see http://rubydoc.info/stdlib/core/Array:pack
|
|
126
|
-
# @see Ronin::Binary::Template
|
|
127
|
-
#
|
|
128
|
-
# @api public
|
|
129
|
-
#
|
|
130
|
-
def pack(*arguments)
|
|
131
|
-
if (arguments.length == 1 && arguments.first.kind_of?(String))
|
|
132
|
-
[self].pack(arguments.first)
|
|
133
|
-
elsif (arguments.length == 1 && arguments.first.kind_of?(Symbol))
|
|
134
|
-
type = arguments.first
|
|
135
|
-
|
|
136
|
-
unless Ronin::Binary::Template::INT_TYPES.include?(type)
|
|
137
|
-
raise(ArgumentError,"unsupported integer type: #{type}")
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
[self].pack(Ronin::Binary::Template::TYPES[type])
|
|
141
|
-
elsif (arguments.length == 1 || arguments.length == 2)
|
|
142
|
-
# TODO: deprecate this calling convention
|
|
143
|
-
arch, address_length = arguments
|
|
144
|
-
|
|
145
|
-
unless arch.respond_to?(:address_length)
|
|
146
|
-
raise(ArgumentError,"first argument to Ineger#pack must respond to address_length")
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
unless arch.respond_to?(:endian)
|
|
150
|
-
raise(ArgumentError,"first argument to Ineger#pack must respond to endian")
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
address_length ||= arch.address_length
|
|
154
|
-
|
|
155
|
-
integer_bytes = bytes(address_length,arch.endian)
|
|
156
|
-
integer_bytes.map! { |b| b.chr }
|
|
157
|
-
|
|
158
|
-
return integer_bytes.join
|
|
159
|
-
else
|
|
160
|
-
raise(ArgumentError,"wrong number of arguments (#{arguments.length} for 1..2)")
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
|
|
164
|
-
#
|
|
165
|
-
# @return [String]
|
|
166
|
-
# The hex escaped version of the Integer.
|
|
167
|
-
#
|
|
168
|
-
# @example
|
|
169
|
-
# 42.hex_escape
|
|
170
|
-
# # => "\\x2a"
|
|
171
|
-
#
|
|
172
|
-
# @api public
|
|
173
|
-
#
|
|
174
|
-
def hex_escape
|
|
175
|
-
"\\x%.2x" % self
|
|
176
|
-
end
|
|
177
|
-
|
|
178
|
-
alias char chr
|
|
179
|
-
|
|
180
|
-
end
|