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,345 +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/formatting/extensions/binary/base64'
|
|
21
|
-
require 'ronin/formatting/extensions/binary/integer'
|
|
22
|
-
require 'ronin/formatting/extensions/text/string'
|
|
23
|
-
require 'ronin/binary/hexdump/parser'
|
|
24
|
-
require 'ronin/binary/template'
|
|
25
|
-
|
|
26
|
-
begin
|
|
27
|
-
require 'zlib'
|
|
28
|
-
rescue ::LoadError
|
|
29
|
-
$stderr.puts "WARNING: Ruby was not compiled with zlib support"
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
class String
|
|
33
|
-
|
|
34
|
-
alias unpack_original unpack
|
|
35
|
-
|
|
36
|
-
#
|
|
37
|
-
# Unpacks the String.
|
|
38
|
-
#
|
|
39
|
-
# @param [String, Array<Symbol, (Symbol, Integer)>] arguments
|
|
40
|
-
# The `String#unpack` template or a list of {Ronin::Binary::Template} types.
|
|
41
|
-
#
|
|
42
|
-
# @return [Array]
|
|
43
|
-
# The values unpacked from the String.
|
|
44
|
-
#
|
|
45
|
-
# @raise [ArgumentError]
|
|
46
|
-
# One of the arguments was not a known {Ronin::Binary::Template} type.
|
|
47
|
-
#
|
|
48
|
-
# @example using {Ronin::Binary::Template} types:
|
|
49
|
-
# "A\0\0\0hello\0".unpack(:uint32_le, :string)
|
|
50
|
-
# # => [10, "hello"]
|
|
51
|
-
#
|
|
52
|
-
# @example using a `String#unpack` template:
|
|
53
|
-
# "A\0\0\0".unpack('V')
|
|
54
|
-
# # => 65
|
|
55
|
-
#
|
|
56
|
-
# @see http://rubydoc.info/stdlib/core/String:unpack
|
|
57
|
-
# @see Ronin::Binary::Template
|
|
58
|
-
#
|
|
59
|
-
# @since 0.5.0
|
|
60
|
-
#
|
|
61
|
-
# @api public
|
|
62
|
-
#
|
|
63
|
-
def unpack(*arguments)
|
|
64
|
-
if (arguments.length == 1 && arguments.first.kind_of?(String))
|
|
65
|
-
unpack_original(arguments.first)
|
|
66
|
-
else
|
|
67
|
-
unpack_original(Ronin::Binary::Template.compile(arguments))
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
#
|
|
72
|
-
# Unpacks the String into an Integer.
|
|
73
|
-
#
|
|
74
|
-
# @param [Ronin::Arch, #endian, #address_length, String] arch
|
|
75
|
-
# The architecture that the Integer was originally packed with.
|
|
76
|
-
#
|
|
77
|
-
# @param [Integer] address_length
|
|
78
|
-
# The number of bytes to depack.
|
|
79
|
-
#
|
|
80
|
-
# @return [Integer]
|
|
81
|
-
# The depacked Integer.
|
|
82
|
-
#
|
|
83
|
-
# @raise [ArgumentError]
|
|
84
|
-
# The given `arch` does not respond to the `endian` or `address_length`
|
|
85
|
-
# methods.
|
|
86
|
-
#
|
|
87
|
-
# @example using archs other than `Ronin::Arch`:
|
|
88
|
-
# arch = OpenStruct.new(:endian => :little, :address_length => 4)
|
|
89
|
-
#
|
|
90
|
-
# "A\0\0\0".depack(arch)
|
|
91
|
-
# # => 65
|
|
92
|
-
#
|
|
93
|
-
# @example using a `Ronin::Arch` arch:
|
|
94
|
-
# "A\0\0\0".depack(Arch.i386)
|
|
95
|
-
# # => 65
|
|
96
|
-
#
|
|
97
|
-
# @example specifying a custom address-length:
|
|
98
|
-
# "A\0".depack(Arch.ppc,2)
|
|
99
|
-
# # => 65
|
|
100
|
-
#
|
|
101
|
-
# @example using a `String#unpack` template:
|
|
102
|
-
# "A\0\0\0".depack('V')
|
|
103
|
-
# # => 65
|
|
104
|
-
#
|
|
105
|
-
# @deprecated
|
|
106
|
-
# Deprecated as of 0.5.0, use {#unpack} instead.
|
|
107
|
-
#
|
|
108
|
-
# @api public
|
|
109
|
-
#
|
|
110
|
-
def depack(arch,address_length=nil)
|
|
111
|
-
if arch.kind_of?(String)
|
|
112
|
-
return unpack(arch)
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
unless arch.respond_to?(:address_length)
|
|
116
|
-
raise(ArgumentError,"first argument to Ineger#pack must respond to address_length")
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
unless arch.respond_to?(:endian)
|
|
120
|
-
raise(ArgumentError,"first argument to Ineger#pack must respond to endian")
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
endian = arch.endian.to_sym
|
|
124
|
-
address_length ||= arch.address_length
|
|
125
|
-
|
|
126
|
-
integer = 0x0
|
|
127
|
-
byte_index = 0
|
|
128
|
-
|
|
129
|
-
case endian
|
|
130
|
-
when :little
|
|
131
|
-
mask = lambda { |b| b << (byte_index * 8) }
|
|
132
|
-
when :big
|
|
133
|
-
mask = lambda { |b|
|
|
134
|
-
b << ((address_length - byte_index - 1) * 8)
|
|
135
|
-
}
|
|
136
|
-
else
|
|
137
|
-
raise(ArgumentError,"invalid endian #{arch.endian.inspect}")
|
|
138
|
-
end
|
|
139
|
-
|
|
140
|
-
each_byte do |b|
|
|
141
|
-
break if byte_index >= address_length
|
|
142
|
-
|
|
143
|
-
integer |= mask.call(b)
|
|
144
|
-
byte_index += 1
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
return integer
|
|
148
|
-
end
|
|
149
|
-
|
|
150
|
-
#
|
|
151
|
-
# Hex-escapes characters in the String.
|
|
152
|
-
#
|
|
153
|
-
# @return [String]
|
|
154
|
-
# The hex escaped version of the String.
|
|
155
|
-
#
|
|
156
|
-
# @example
|
|
157
|
-
# "hello".hex_escape
|
|
158
|
-
# # => "\\x68\\x65\\x6c\\x6c\\x6f"
|
|
159
|
-
#
|
|
160
|
-
# @see String#format_bytes
|
|
161
|
-
#
|
|
162
|
-
# @api public
|
|
163
|
-
#
|
|
164
|
-
def hex_escape(options={})
|
|
165
|
-
format_bytes(options) { |b| b.hex_escape }
|
|
166
|
-
end
|
|
167
|
-
|
|
168
|
-
alias hex_unescape unescape
|
|
169
|
-
|
|
170
|
-
#
|
|
171
|
-
# XOR encodes the String.
|
|
172
|
-
#
|
|
173
|
-
# @param [Enumerable, Integer] key
|
|
174
|
-
# The byte to XOR against each byte in the String.
|
|
175
|
-
#
|
|
176
|
-
# @return [String]
|
|
177
|
-
# The XOR encoded String.
|
|
178
|
-
#
|
|
179
|
-
# @example
|
|
180
|
-
# "hello".xor(0x41)
|
|
181
|
-
# # => ")$--."
|
|
182
|
-
#
|
|
183
|
-
# @example
|
|
184
|
-
# "hello again".xor([0x55, 0x41, 0xe1])
|
|
185
|
-
# # => "=$\x8d9.\xc14&\x80</"
|
|
186
|
-
#
|
|
187
|
-
# @api public
|
|
188
|
-
#
|
|
189
|
-
def xor(key)
|
|
190
|
-
key = case key
|
|
191
|
-
when Integer then [key]
|
|
192
|
-
when String then key.bytes
|
|
193
|
-
else key
|
|
194
|
-
end
|
|
195
|
-
|
|
196
|
-
key = key.cycle
|
|
197
|
-
result = ''
|
|
198
|
-
|
|
199
|
-
bytes.each do |b|
|
|
200
|
-
result << (b ^ key.next).chr
|
|
201
|
-
end
|
|
202
|
-
|
|
203
|
-
return result
|
|
204
|
-
end
|
|
205
|
-
|
|
206
|
-
#
|
|
207
|
-
# Base64 encodes a string.
|
|
208
|
-
#
|
|
209
|
-
# @param [Symbol, nil] mode
|
|
210
|
-
# The base64 mode to use. May be either:
|
|
211
|
-
#
|
|
212
|
-
# * `:normal`
|
|
213
|
-
# * `:strict`
|
|
214
|
-
# * `:url` / `:urlsafe`
|
|
215
|
-
#
|
|
216
|
-
# @return [String]
|
|
217
|
-
# The base64 encoded form of the string.
|
|
218
|
-
#
|
|
219
|
-
# @example
|
|
220
|
-
# "hello".base64_encode
|
|
221
|
-
# # => "aGVsbG8=\n"
|
|
222
|
-
#
|
|
223
|
-
# @api public
|
|
224
|
-
#
|
|
225
|
-
def base64_encode(mode=nil)
|
|
226
|
-
case mode
|
|
227
|
-
when :strict then Base64.strict_encode64(self)
|
|
228
|
-
when :url, :urlsafe then Base64.urlsafe_encode64(self)
|
|
229
|
-
else Base64.encode64(self)
|
|
230
|
-
end
|
|
231
|
-
end
|
|
232
|
-
|
|
233
|
-
#
|
|
234
|
-
# Base64 decodes a string.
|
|
235
|
-
#
|
|
236
|
-
# @param [Symbol, nil] mode
|
|
237
|
-
# The base64 mode to use. May be either:
|
|
238
|
-
#
|
|
239
|
-
# * `nil`
|
|
240
|
-
# * `:strict`
|
|
241
|
-
# * `:url` / `:urlsafe`
|
|
242
|
-
#
|
|
243
|
-
# @return [String]
|
|
244
|
-
# The base64 decoded form of the string.
|
|
245
|
-
#
|
|
246
|
-
# @note
|
|
247
|
-
# `mode` argument is only available on Ruby >= 1.9.
|
|
248
|
-
#
|
|
249
|
-
# @example
|
|
250
|
-
# "aGVsbG8=\n".base64_decode
|
|
251
|
-
# # => "hello"
|
|
252
|
-
#
|
|
253
|
-
# @api public
|
|
254
|
-
#
|
|
255
|
-
def base64_decode(mode=nil)
|
|
256
|
-
case mode
|
|
257
|
-
when :strict then Base64.strict_decode64(self)
|
|
258
|
-
when :url, :urlsafe then Base64.urlsafe_decode64(self)
|
|
259
|
-
else Base64.decode64(self)
|
|
260
|
-
end
|
|
261
|
-
end
|
|
262
|
-
|
|
263
|
-
#
|
|
264
|
-
# Zlib inflate a string.
|
|
265
|
-
#
|
|
266
|
-
# @return [String]
|
|
267
|
-
# The Zlib inflated form of the string.
|
|
268
|
-
#
|
|
269
|
-
# @example
|
|
270
|
-
# "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15".zlib_inflate
|
|
271
|
-
# # => "hello"
|
|
272
|
-
#
|
|
273
|
-
# @api public
|
|
274
|
-
#
|
|
275
|
-
def zlib_inflate
|
|
276
|
-
Zlib::Inflate.inflate(self)
|
|
277
|
-
end
|
|
278
|
-
|
|
279
|
-
#
|
|
280
|
-
# Zlib deflate a string.
|
|
281
|
-
#
|
|
282
|
-
# @return [String]
|
|
283
|
-
# The Zlib deflated form of the string.
|
|
284
|
-
#
|
|
285
|
-
# @example
|
|
286
|
-
# "hello".zlib_deflate
|
|
287
|
-
# # => "x\x9C\xCBH\xCD\xC9\xC9\a\x00\x06,\x02\x15"
|
|
288
|
-
#
|
|
289
|
-
# @api public
|
|
290
|
-
#
|
|
291
|
-
def zlib_deflate
|
|
292
|
-
Zlib::Deflate.deflate(self)
|
|
293
|
-
end
|
|
294
|
-
|
|
295
|
-
#
|
|
296
|
-
# Converts a multitude of hexdump formats back into raw-data.
|
|
297
|
-
#
|
|
298
|
-
# @param [Hash] options
|
|
299
|
-
# Additional options.
|
|
300
|
-
#
|
|
301
|
-
# @option options [Symbol] :format
|
|
302
|
-
# The expected format of the hexdump. Must be either `:od` or
|
|
303
|
-
# `:hexdump`.
|
|
304
|
-
#
|
|
305
|
-
# @option options [Symbol] :encoding
|
|
306
|
-
# Denotes the encoding used for the bytes within the hexdump.
|
|
307
|
-
# Must be one of the following:
|
|
308
|
-
#
|
|
309
|
-
# * `:binary`
|
|
310
|
-
# * `:octal`
|
|
311
|
-
# * `:octal_bytes`
|
|
312
|
-
# * `:octal_shorts`
|
|
313
|
-
# * `:octal_ints`
|
|
314
|
-
# * `:octal_quads` (Ruby 1.9 only)
|
|
315
|
-
# * `:decimal`
|
|
316
|
-
# * `:decimal_bytes`
|
|
317
|
-
# * `:decimal_shorts`
|
|
318
|
-
# * `:decimal_ints`
|
|
319
|
-
# * `:decimal_quads` (Ruby 1.9 only)
|
|
320
|
-
# * `:hex`
|
|
321
|
-
# * `:hex_chars`
|
|
322
|
-
# * `:hex_bytes`
|
|
323
|
-
# * `:hex_shorts`
|
|
324
|
-
# * `:hex_ints`
|
|
325
|
-
# * `:hex_quads`
|
|
326
|
-
# * `:named_chars` (Ruby 1.9 only)
|
|
327
|
-
# * `:floats`
|
|
328
|
-
# * `:doubles`
|
|
329
|
-
#
|
|
330
|
-
# @option options [:little, :big, :network] :endian (:little)
|
|
331
|
-
# The endianness of the words.
|
|
332
|
-
#
|
|
333
|
-
# @option options [Integer] :segment (16)
|
|
334
|
-
# The length in bytes of each segment in the hexdump.
|
|
335
|
-
#
|
|
336
|
-
# @return [String]
|
|
337
|
-
# The raw-data from the hexdump.
|
|
338
|
-
#
|
|
339
|
-
# @api public
|
|
340
|
-
#
|
|
341
|
-
def unhexdump(options={})
|
|
342
|
-
Ronin::Binary::Hexdump::Parser.new(options).parse(self)
|
|
343
|
-
end
|
|
344
|
-
|
|
345
|
-
end
|
|
@@ -1,26 +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/formatting/extensions/binary/integer'
|
|
21
|
-
require 'ronin/formatting/extensions/binary/float'
|
|
22
|
-
require 'ronin/formatting/extensions/binary/string'
|
|
23
|
-
require 'ronin/formatting/extensions/binary/array'
|
|
24
|
-
require 'ronin/formatting/extensions/binary/file'
|
|
25
|
-
|
|
26
|
-
require 'hexdump/extensions'
|
|
@@ -1,129 +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 'digest/md5'
|
|
21
|
-
require 'digest/sha1'
|
|
22
|
-
require 'digest/sha2'
|
|
23
|
-
|
|
24
|
-
class File
|
|
25
|
-
|
|
26
|
-
#
|
|
27
|
-
# Calculates the MD5 checksum of a file.
|
|
28
|
-
#
|
|
29
|
-
# @param [String] path
|
|
30
|
-
# The path to the file.
|
|
31
|
-
#
|
|
32
|
-
# @return [String]
|
|
33
|
-
# The MD5 checksum of the file.
|
|
34
|
-
#
|
|
35
|
-
# @example
|
|
36
|
-
# File.md5('data.txt')
|
|
37
|
-
# # => "5d41402abc4b2a76b9719d911017c592"
|
|
38
|
-
#
|
|
39
|
-
# @api public
|
|
40
|
-
#
|
|
41
|
-
def File.md5(path)
|
|
42
|
-
Digest::MD5.file(path).hexdigest
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
#
|
|
46
|
-
# Calculates the SHA1 checksum of a file.
|
|
47
|
-
#
|
|
48
|
-
# @param [String] path
|
|
49
|
-
# The path to the file.
|
|
50
|
-
#
|
|
51
|
-
# @return [String]
|
|
52
|
-
# The SHA1 checksum of the file.
|
|
53
|
-
#
|
|
54
|
-
# @example
|
|
55
|
-
# File.sha1('data.txt')
|
|
56
|
-
# # => "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"
|
|
57
|
-
#
|
|
58
|
-
# @api public
|
|
59
|
-
#
|
|
60
|
-
def File.sha1(path)
|
|
61
|
-
Digest::SHA1.file(path).hexdigest
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
#
|
|
65
|
-
# @see File.sha1
|
|
66
|
-
#
|
|
67
|
-
# @api public
|
|
68
|
-
#
|
|
69
|
-
def File.sha128(path)
|
|
70
|
-
File.sha1(path)
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
#
|
|
74
|
-
# Calculates the SHA256 checksum of a file.
|
|
75
|
-
#
|
|
76
|
-
# @param [String] path
|
|
77
|
-
# The path to the file.
|
|
78
|
-
#
|
|
79
|
-
# @return [String]
|
|
80
|
-
# The SHA256 checksum of the file.
|
|
81
|
-
#
|
|
82
|
-
# @example
|
|
83
|
-
# File.sha256('data.txt')
|
|
84
|
-
# # => "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
|
|
85
|
-
#
|
|
86
|
-
# @api public
|
|
87
|
-
#
|
|
88
|
-
def File.sha256(path)
|
|
89
|
-
Digest::SHA256.file(path).hexdigest
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
#
|
|
93
|
-
# @see File.sha256
|
|
94
|
-
#
|
|
95
|
-
# @api public
|
|
96
|
-
#
|
|
97
|
-
def File.sha2(path)
|
|
98
|
-
File.sha256(path)
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
#
|
|
102
|
-
# Calculates the SHA512 checksum of a file.
|
|
103
|
-
#
|
|
104
|
-
# @param [String] path
|
|
105
|
-
# The path to the file.
|
|
106
|
-
#
|
|
107
|
-
# @return [String]
|
|
108
|
-
# The SHA512 checksum of the file.
|
|
109
|
-
#
|
|
110
|
-
# @example
|
|
111
|
-
# File.sha512('data.txt')
|
|
112
|
-
# # => "9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043"
|
|
113
|
-
#
|
|
114
|
-
# @api public
|
|
115
|
-
#
|
|
116
|
-
def File.sha512(path)
|
|
117
|
-
Digest::SHA512.file(path).hexdigest
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
#
|
|
121
|
-
# @see File.sha512
|
|
122
|
-
#
|
|
123
|
-
# @api public
|
|
124
|
-
#
|
|
125
|
-
def File.sha5(path)
|
|
126
|
-
File.sha512(path)
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
end
|
|
@@ -1,86 +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 'digest/md5'
|
|
21
|
-
require 'digest/sha1'
|
|
22
|
-
require 'digest/sha2'
|
|
23
|
-
|
|
24
|
-
class String
|
|
25
|
-
|
|
26
|
-
#
|
|
27
|
-
# @return [String]
|
|
28
|
-
# The MD5 checksum of the String.
|
|
29
|
-
#
|
|
30
|
-
# @example
|
|
31
|
-
# "hello".md5
|
|
32
|
-
# # => "5d41402abc4b2a76b9719d911017c592"
|
|
33
|
-
#
|
|
34
|
-
# @api public
|
|
35
|
-
#
|
|
36
|
-
def md5
|
|
37
|
-
Digest::MD5.hexdigest(self)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
#
|
|
41
|
-
# @return [String]
|
|
42
|
-
# The SHA1 checksum of the String.
|
|
43
|
-
#
|
|
44
|
-
# @example
|
|
45
|
-
# "hello".sha1
|
|
46
|
-
# # => "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"
|
|
47
|
-
#
|
|
48
|
-
# @api public
|
|
49
|
-
#
|
|
50
|
-
def sha1
|
|
51
|
-
Digest::SHA1.hexdigest(self)
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
alias sha128 sha1
|
|
55
|
-
|
|
56
|
-
#
|
|
57
|
-
# @return [String]
|
|
58
|
-
# The SHA2 checksum of the String.
|
|
59
|
-
#
|
|
60
|
-
# @example
|
|
61
|
-
# "hello".sha2
|
|
62
|
-
# # => "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
|
|
63
|
-
#
|
|
64
|
-
# @api public
|
|
65
|
-
#
|
|
66
|
-
def sha256
|
|
67
|
-
Digest::SHA256.hexdigest(self)
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
alias sha2 sha256
|
|
71
|
-
|
|
72
|
-
#
|
|
73
|
-
# @return [String]
|
|
74
|
-
# The SHA512 checksum of the String.
|
|
75
|
-
#
|
|
76
|
-
# @example
|
|
77
|
-
# "hello".sha512
|
|
78
|
-
# # => "9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043"
|
|
79
|
-
#
|
|
80
|
-
# @api public
|
|
81
|
-
#
|
|
82
|
-
def sha512
|
|
83
|
-
Digest::SHA512.hexdigest(self)
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
end
|
|
@@ -1,21 +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/formatting/extensions/digest/string'
|
|
21
|
-
require 'ronin/formatting/extensions/digest/file'
|