ronin-support 1.0.0.beta2 → 1.0.0.beta3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +1 -0
- data/.yardopts +1 -1
- data/ChangeLog.md +5 -3
- data/Gemfile +2 -2
- data/README.md +139 -69
- data/gemspec.yml +3 -2
- data/lib/ronin/support/archive/core_ext/file.rb +1 -1
- data/lib/ronin/support/archive/core_ext.rb +1 -1
- data/lib/ronin/support/archive/mixin.rb +1 -1
- data/lib/ronin/support/archive/tar/reader.rb +1 -1
- data/lib/ronin/support/archive/tar/writer.rb +1 -1
- data/lib/ronin/support/archive/tar.rb +1 -1
- data/lib/ronin/support/archive/zip/reader/entry.rb +1 -1
- data/lib/ronin/support/archive/zip/reader/statistics.rb +1 -1
- data/lib/ronin/support/archive/zip/reader.rb +1 -1
- data/lib/ronin/support/archive/zip/writer.rb +1 -1
- data/lib/ronin/support/archive/zip.rb +1 -1
- data/lib/ronin/support/archive.rb +10 -1
- data/lib/ronin/support/binary/array.rb +1 -1
- data/lib/ronin/support/binary/bit_flip/core_ext/integer.rb +79 -0
- data/lib/ronin/support/binary/bit_flip/core_ext/string.rb +61 -0
- data/lib/ronin/support/binary/{hexdump.rb → bit_flip/core_ext.rb} +3 -3
- data/lib/ronin/support/binary/bit_flip.rb +18 -1
- data/lib/ronin/support/binary/buffer.rb +1 -1
- data/lib/ronin/support/binary/byte_slice.rb +1 -1
- data/lib/ronin/support/binary/core_ext/array.rb +1 -1
- data/lib/ronin/support/binary/core_ext/float.rb +1 -1
- data/lib/ronin/support/binary/core_ext/integer.rb +1 -58
- data/lib/ronin/support/binary/core_ext/io.rb +1 -1
- data/lib/ronin/support/binary/core_ext/string.rb +1 -40
- data/lib/ronin/support/binary/core_ext.rb +3 -1
- data/lib/ronin/support/binary/cstring.rb +1 -1
- data/lib/ronin/support/binary/ctypes/aggregate_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/arm/big_endian.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/arm.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/arm64/big_endian.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/arm64.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/mips/little_endian.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/mips.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/mips64/little_endian.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/mips64.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/ppc.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/ppc64.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/x86.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch/x86_64.rb +1 -1
- data/lib/ronin/support/binary/ctypes/arch.rb +1 -1
- data/lib/ronin/support/binary/ctypes/array_object_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/array_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/big_endian.rb +1 -1
- data/lib/ronin/support/binary/ctypes/char_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/char_types.rb +1 -1
- data/lib/ronin/support/binary/ctypes/enum_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/float32_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/float64_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/float_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/int16_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/int32_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/int64_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/int8_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/int_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/little_endian.rb +1 -1
- data/lib/ronin/support/binary/ctypes/mixin.rb +1 -1
- data/lib/ronin/support/binary/ctypes/native.rb +1 -1
- data/lib/ronin/support/binary/ctypes/network.rb +1 -1
- data/lib/ronin/support/binary/ctypes/object_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/os/bsd.rb +1 -1
- data/lib/ronin/support/binary/ctypes/os/freebsd.rb +1 -1
- data/lib/ronin/support/binary/ctypes/os/linux.rb +1 -1
- data/lib/ronin/support/binary/ctypes/os/macos.rb +1 -1
- data/lib/ronin/support/binary/ctypes/os/netbsd.rb +1 -1
- data/lib/ronin/support/binary/ctypes/os/openbsd.rb +1 -1
- data/lib/ronin/support/binary/ctypes/os/unix.rb +1 -1
- data/lib/ronin/support/binary/ctypes/os/windows.rb +1 -1
- data/lib/ronin/support/binary/ctypes/os.rb +1 -1
- data/lib/ronin/support/binary/ctypes/scalar_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/string_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/struct_object_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/struct_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/type_resolver.rb +1 -1
- data/lib/ronin/support/binary/ctypes/uint16_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/uint32_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/uint64_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/uint8_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/uint_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/unbounded_array_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/union_object_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes/union_type.rb +1 -1
- data/lib/ronin/support/binary/ctypes.rb +1 -1
- data/lib/ronin/support/binary/memory.rb +1 -1
- data/lib/ronin/support/binary/packet.rb +1 -1
- data/lib/ronin/support/binary/stack.rb +1 -1
- data/lib/ronin/support/binary/stream/methods.rb +1 -1
- data/lib/ronin/support/binary/stream.rb +1 -1
- data/lib/ronin/support/binary/struct/member.rb +1 -1
- data/lib/ronin/support/binary/struct.rb +1 -1
- data/lib/ronin/support/binary/template.rb +1 -1
- data/lib/ronin/support/binary/{hexdump → unhexdump}/core_ext/file.rb +16 -4
- data/lib/ronin/support/binary/{hexdump → unhexdump}/core_ext/string.rb +16 -4
- data/lib/ronin/support/binary/{hexdump → unhexdump}/core_ext.rb +3 -3
- data/lib/ronin/support/binary/{hexdump → unhexdump}/parser.rb +2 -2
- data/lib/ronin/support/binary/unhexdump.rb +37 -0
- data/lib/ronin/support/binary/union.rb +1 -1
- data/lib/ronin/support/binary.rb +28 -2
- data/lib/ronin/support/cli/ansi.rb +1 -1
- data/lib/ronin/support/cli/io_shell/core_ext/io.rb +1 -1
- data/lib/ronin/support/cli/io_shell/core_ext.rb +1 -1
- data/lib/ronin/support/cli/io_shell.rb +1 -1
- data/lib/ronin/support/cli/printing.rb +1 -1
- data/lib/ronin/support/cli.rb +1 -1
- data/lib/ronin/support/compression/core_ext/file.rb +1 -1
- data/lib/ronin/support/compression/core_ext/string.rb +1 -1
- data/lib/ronin/support/compression/core_ext.rb +1 -1
- data/lib/ronin/support/compression/gzip/reader.rb +2 -2
- data/lib/ronin/support/compression/gzip/writer.rb +2 -2
- data/lib/ronin/support/compression/gzip.rb +1 -1
- data/lib/ronin/support/compression/mixin.rb +1 -1
- data/lib/ronin/support/compression/zlib.rb +56 -1
- data/lib/ronin/support/compression.rb +14 -3
- data/lib/ronin/support/core_ext/enumerable.rb +1 -1
- data/lib/ronin/support/core_ext/file.rb +1 -1
- data/lib/ronin/support/core_ext/integer.rb +1 -1
- data/lib/ronin/support/core_ext/ipaddr.rb +1 -1
- data/lib/ronin/support/core_ext/kernel.rb +1 -1
- data/lib/ronin/support/core_ext/string.rb +1 -1
- data/lib/ronin/support/core_ext.rb +1 -2
- data/lib/ronin/support/crypto/cert.rb +1 -1
- data/lib/ronin/support/crypto/cert_chain.rb +1 -1
- data/lib/ronin/support/crypto/cipher/aes.rb +1 -1
- data/lib/ronin/support/crypto/cipher/aes128.rb +1 -1
- data/lib/ronin/support/crypto/cipher/aes256.rb +1 -1
- data/lib/ronin/support/crypto/cipher.rb +1 -1
- data/lib/ronin/support/crypto/core_ext/file.rb +1 -1
- data/lib/ronin/support/crypto/core_ext/string.rb +1 -1
- data/lib/ronin/support/crypto/core_ext.rb +1 -1
- data/lib/ronin/support/crypto/hmac.rb +1 -1
- data/lib/ronin/support/crypto/key/dh.rb +1 -1
- data/lib/ronin/support/crypto/key/dsa.rb +1 -1
- data/lib/ronin/support/crypto/key/ec.rb +1 -1
- data/lib/ronin/support/crypto/key/methods.rb +1 -1
- data/lib/ronin/support/crypto/key/rsa.rb +1 -1
- data/lib/ronin/support/crypto/key.rb +1 -1
- data/lib/ronin/support/crypto/mixin.rb +1 -1
- data/lib/ronin/support/crypto/openssl.rb +1 -1
- data/lib/ronin/support/crypto.rb +41 -1
- data/lib/ronin/support/encoding/base16/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/base16/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/base16.rb +6 -1
- data/lib/ronin/support/encoding/base32/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/base32/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/base32.rb +8 -3
- data/lib/ronin/support/encoding/base64/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/base64/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/base64.rb +9 -2
- data/lib/ronin/support/encoding/c/core_ext/integer.rb +1 -1
- data/lib/ronin/support/encoding/c/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/c/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/c.rb +11 -1
- data/lib/ronin/support/encoding/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/hex/core_ext/integer.rb +1 -1
- data/lib/ronin/support/encoding/hex/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/hex/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/hex.rb +13 -1
- data/lib/ronin/support/encoding/html/core_ext/integer.rb +1 -1
- data/lib/ronin/support/encoding/html/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/html/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/html.rb +10 -1
- data/lib/ronin/support/encoding/http/core_ext/integer.rb +1 -1
- data/lib/ronin/support/encoding/http/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/http/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/http.rb +10 -1
- data/lib/ronin/support/encoding/js/core_ext/integer.rb +1 -1
- data/lib/ronin/support/encoding/js/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/js/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/js.rb +12 -1
- data/lib/ronin/support/encoding/powershell/core_ext/integer.rb +1 -1
- data/lib/ronin/support/encoding/powershell/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/powershell/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/powershell.rb +12 -1
- data/lib/ronin/support/encoding/punycode/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/punycode/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/punycode.rb +6 -1
- data/lib/ronin/support/encoding/quoted_printable/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/quoted_printable/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/quoted_printable.rb +6 -1
- data/lib/ronin/support/encoding/ruby/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/ruby/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/ruby.rb +10 -1
- data/lib/ronin/support/encoding/shell/core_ext/integer.rb +1 -1
- data/lib/ronin/support/encoding/shell/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/shell/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/shell.rb +12 -1
- data/lib/ronin/support/encoding/smtp.rb +1 -1
- data/lib/ronin/support/encoding/sql/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/sql/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/sql.rb +13 -1
- data/lib/ronin/support/encoding/uri/core_ext/integer.rb +1 -1
- data/lib/ronin/support/encoding/uri/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/uri/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/uri.rb +16 -1
- data/lib/ronin/support/encoding/uuencoding/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/uuencoding/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/uuencoding.rb +6 -1
- data/lib/ronin/support/encoding/xml/core_ext/integer.rb +1 -1
- data/lib/ronin/support/encoding/xml/core_ext/string.rb +1 -1
- data/lib/ronin/support/encoding/xml/core_ext.rb +1 -1
- data/lib/ronin/support/encoding/xml.rb +10 -1
- data/lib/ronin/support/encoding.rb +1 -1
- data/lib/ronin/support/home.rb +1 -1
- data/lib/ronin/support/mixin.rb +1 -1
- data/lib/ronin/support/network/asn/dns_record.rb +1 -1
- data/lib/ronin/support/network/asn/list.rb +1 -1
- data/lib/ronin/support/network/asn/record.rb +1 -1
- data/lib/ronin/support/network/asn/record_set.rb +1 -1
- data/lib/ronin/support/network/asn.rb +1 -1
- data/lib/ronin/support/network/core_ext.rb +1 -1
- data/lib/ronin/support/network/dns/idn.rb +1 -1
- data/lib/ronin/support/network/dns/mixin.rb +1 -1
- data/lib/ronin/support/network/dns/resolver.rb +1 -1
- data/lib/ronin/support/network/dns.rb +1 -1
- data/lib/ronin/support/network/domain.rb +1 -1
- data/lib/ronin/support/network/email_address.rb +1 -1
- data/lib/ronin/support/network/esmtp/mixin.rb +1 -1
- data/lib/ronin/support/network/exceptions.rb +1 -1
- data/lib/ronin/support/network/ftp/mixin.rb +1 -1
- data/lib/ronin/support/network/host.rb +1 -1
- data/lib/ronin/support/network/http/cookie.rb +1 -1
- data/lib/ronin/support/network/http/core_ext/uri/http.rb +1 -1
- data/lib/ronin/support/network/http/core_ext.rb +1 -1
- data/lib/ronin/support/network/http/mixin.rb +1 -1
- data/lib/ronin/support/network/http/request.rb +1 -1
- data/lib/ronin/support/network/http/set_cookie.rb +1 -1
- data/lib/ronin/support/network/http/user_agents.rb +1 -1
- data/lib/ronin/support/network/http.rb +6 -1
- data/lib/ronin/support/network/imap/mixin.rb +1 -1
- data/lib/ronin/support/network/ip/mixin.rb +1 -1
- data/lib/ronin/support/network/ip.rb +1 -1
- data/lib/ronin/support/network/ip_range/cidr.rb +1 -1
- data/lib/ronin/support/network/ip_range/glob.rb +1 -1
- data/lib/ronin/support/network/ip_range/range.rb +1 -1
- data/lib/ronin/support/network/ip_range.rb +1 -1
- data/lib/ronin/support/network/mixin.rb +1 -1
- data/lib/ronin/support/network/packet.rb +6 -1
- data/lib/ronin/support/network/pop3/mixin.rb +1 -1
- data/lib/ronin/support/network/proxy.rb +1 -1
- data/lib/ronin/support/network/public_suffix/list.rb +1 -1
- data/lib/ronin/support/network/public_suffix/suffix.rb +1 -1
- data/lib/ronin/support/network/public_suffix/suffix_set.rb +1 -1
- data/lib/ronin/support/network/public_suffix.rb +1 -1
- data/lib/ronin/support/network/smtp/email.rb +1 -1
- data/lib/ronin/support/network/smtp/mixin.rb +1 -1
- data/lib/ronin/support/network/smtp.rb +1 -1
- data/lib/ronin/support/network/ssl/local_cert.rb +1 -1
- data/lib/ronin/support/network/ssl/local_key.rb +1 -1
- data/lib/ronin/support/network/ssl/mixin.rb +1 -1
- data/lib/ronin/support/network/ssl/openssl.rb +1 -1
- data/lib/ronin/support/network/ssl/proxy.rb +1 -1
- data/lib/ronin/support/network/ssl.rb +1 -1
- data/lib/ronin/support/network/tcp/mixin.rb +1 -1
- data/lib/ronin/support/network/tcp/proxy.rb +1 -1
- data/lib/ronin/support/network/tcp.rb +1 -1
- data/lib/ronin/support/network/telnet/mixin.rb +1 -1
- data/lib/ronin/support/network/telnet.rb +1 -1
- data/lib/ronin/support/network/tld/list.rb +1 -1
- data/lib/ronin/support/network/tld.rb +1 -1
- data/lib/ronin/support/network/tls/mixin.rb +1 -1
- data/lib/ronin/support/network/tls/proxy.rb +1 -1
- data/lib/ronin/support/network/tls.rb +1 -1
- data/lib/ronin/support/network/udp/mixin.rb +1 -1
- data/lib/ronin/support/network/udp/proxy.rb +1 -1
- data/lib/ronin/support/network/udp.rb +1 -1
- data/lib/ronin/support/network/unix/mixin.rb +1 -1
- data/lib/ronin/support/network.rb +1 -1
- data/lib/ronin/support/path.rb +1 -1
- data/lib/ronin/support/text/core_ext/regexp.rb +1 -1
- data/lib/ronin/support/text/core_ext/string.rb +1 -1
- data/lib/ronin/support/text/core_ext.rb +1 -1
- data/lib/ronin/support/text/entropy/core_ext/string.rb +1 -1
- data/lib/ronin/support/text/entropy/core_ext.rb +1 -1
- data/lib/ronin/support/text/entropy.rb +1 -1
- data/lib/ronin/support/text/erb/mixin.rb +1 -1
- data/lib/ronin/support/text/erb.rb +1 -1
- data/lib/ronin/support/text/homoglyph/core_ext/string.rb +1 -1
- data/lib/ronin/support/text/homoglyph/core_ext.rb +1 -1
- data/lib/ronin/support/text/homoglyph/exceptions.rb +1 -1
- data/lib/ronin/support/text/homoglyph/table.rb +1 -1
- data/lib/ronin/support/text/homoglyph.rb +10 -1
- data/lib/ronin/support/text/mixin.rb +1 -1
- data/lib/ronin/support/text/patterns/credentials.rb +1 -1
- data/lib/ronin/support/text/patterns/crypto.rb +1 -1
- data/lib/ronin/support/text/patterns/file_system.rb +1 -1
- data/lib/ronin/support/text/patterns/language.rb +1 -1
- data/lib/ronin/support/text/patterns/network/public_suffix.rb +1 -1
- data/lib/ronin/support/text/patterns/network.rb +1 -1
- data/lib/ronin/support/text/patterns/numeric.rb +1 -1
- data/lib/ronin/support/text/patterns/pii.rb +1 -1
- data/lib/ronin/support/text/patterns/source_code.rb +1 -1
- data/lib/ronin/support/text/patterns.rb +1 -1
- data/lib/ronin/support/text/random/mixin.rb +1 -1
- data/lib/ronin/support/text/random.rb +1 -1
- data/lib/ronin/support/text/typo/core_ext/string.rb +1 -1
- data/lib/ronin/support/text/typo/core_ext.rb +1 -1
- data/lib/ronin/support/text/typo/exceptions.rb +1 -1
- data/lib/ronin/support/text/typo/generator.rb +1 -1
- data/lib/ronin/support/text/typo.rb +12 -1
- data/lib/ronin/support/text.rb +1 -1
- data/lib/ronin/support/version.rb +2 -2
- data/lib/ronin/support.rb +1 -1
- data/ronin-support.gemspec +2 -2
- metadata +13 -10
- data/lib/ronin/support/core_ext/resolv.rb +0 -55
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a415c3911b85e9e91bf65516137c0ad9efef4941206fb428150081d64f8ad5e9
|
4
|
+
data.tar.gz: fcb32969d49e88aa7b78c6293ad884aa9f5e6584178381b52a817cd6cf6c6e91
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3da437502dba45f3daa30d12f28c591a69aa9fe5eed3627407a7056cda319c405a63cd2869da59806b9e581e7397941b92340ab089a33fa1d141f073dfdefe52
|
7
|
+
data.tar.gz: bb9d8c9511c329a2dcb7e1c1dd0b51956b60c494c6e07668952b4ca3d59ae82f8e1e62f610ab0d147e8fe1866f58cfd0f4225748d2221d0a9a8a4eeadd5c89e6
|
data/.github/workflows/ruby.yml
CHANGED
data/.yardopts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
--markup markdown --title '
|
1
|
+
--markup markdown --title 'Ronin::Support Documentation' --protected
|
data/ChangeLog.md
CHANGED
@@ -100,8 +100,8 @@
|
|
100
100
|
* Added {Ronin::Support::Binary::Stack}.
|
101
101
|
* Added {Ronin::Support::Binary::Stream}.
|
102
102
|
* Added {Ronin::Support::Binary::Union}.
|
103
|
-
* Added {Ronin::Support::Binary::
|
104
|
-
* Added {Ronin::Support::Binary::
|
103
|
+
* Added {Ronin::Support::Binary::Unhexdump::Parser#unpack}.
|
104
|
+
* Added {Ronin::Support::Binary::Unhexdump::Parser#unhexdump}.
|
105
105
|
* Added {Ronin::Support::CLI::ANSI}.
|
106
106
|
* Added {Ronin::Support::CLI::Printing}.
|
107
107
|
* Added {Ronin::Support::Compression}.
|
@@ -304,10 +304,12 @@
|
|
304
304
|
* Added {Ronin::Support::Text::Random::Mixin}.
|
305
305
|
* Added {Ronin::Support::Text::Typo}.
|
306
306
|
* Added {Ronin::Support::Text::Typo::Generator}.
|
307
|
-
* Renamed `ronin/support/formatting` to `ronin/support/encoding`.
|
308
307
|
* Moved all `Ronin::` constants into the {Ronin::Support} namespace.
|
309
308
|
* Moved `ronin/support/formatting/digest` core-ext methods into
|
310
309
|
`ronin/support/crypto`.
|
310
|
+
* Renamed `ronin/support/formatting` to `ronin/support/encoding`.
|
311
|
+
* Renamed `Ronin::Support::Binary::Hexdump::Parser` to
|
312
|
+
{Ronin::Support::Binary::Unhexdump::Parser}.
|
311
313
|
* Merged `ronin/support/network/network` into `ronin/support/network`.
|
312
314
|
* Removed the `data_paths` gem dependency.
|
313
315
|
* Removed the `parameters` gem dependency.
|
data/Gemfile
CHANGED
@@ -25,6 +25,6 @@ group :development do
|
|
25
25
|
gem 'yard-spellcheck', require: false
|
26
26
|
|
27
27
|
gem 'dead_end', require: false
|
28
|
-
gem 'sord', require: false
|
29
|
-
gem 'stackprof', require: false
|
28
|
+
gem 'sord', require: false, platform: :mri
|
29
|
+
gem 'stackprof', require: false, platform: :mri
|
30
30
|
end
|
data/README.md
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
[![CI](https://github.com/ronin-rb/ronin-support/actions/workflows/ruby.yml/badge.svg)](https://github.com/ronin-rb/ronin-support/actions/workflows/ruby.yml)
|
4
4
|
[![Code Climate](https://codeclimate.com/github/ronin-rb/ronin-support.svg)](https://codeclimate.com/github/ronin-rb/ronin-support)
|
5
|
+
[![Gem Version](https://badge.fury.io/rb/ronin-support.svg)](https://badge.fury.io/rb/ronin-support)
|
5
6
|
|
6
7
|
* [Source](https://github.com/ronin-rb/ronin-support)
|
7
8
|
* [Issues](https://github.com/ronin-rb/ronin-support/issues)
|
@@ -13,84 +14,86 @@
|
|
13
14
|
## Description
|
14
15
|
|
15
16
|
ronin-support is a support library for [Ronin][ronin-rb]. ronin-support provides
|
16
|
-
many Core Extensions to Ruby's built-in classes as well as
|
17
|
+
many Core Extensions to Ruby's built-in classes as well as its own
|
17
18
|
Classes/Modules. ronin-support can be used by other Ruby libraries, tools, or
|
18
|
-
scripts.
|
19
|
+
[scripts](#examples).
|
19
20
|
|
20
|
-
It's like [pwntools] combined with [activesupport].
|
21
|
+
**tl;dr** It's like [pwntools] combined with [activesupport].
|
21
22
|
|
22
|
-
[
|
23
|
+
ronin-support is part of the [ronin-rb] project, a [Ruby] toolkit for security
|
24
|
+
research and development.
|
23
25
|
|
24
26
|
## Features
|
25
27
|
|
26
28
|
* Provides user-friendly APIs for:
|
27
|
-
* Bit-flipping
|
28
|
-
* Hexdump/unhexdump data.
|
29
|
+
* [Bit-flipping][docs-binary-bit_flip]
|
30
|
+
* [Hexdump][hexdump] / [unhexdump][docs-unhexdump] data.
|
29
31
|
* Packing/unpacking binary data:
|
30
|
-
* C types
|
31
|
-
* Buffers
|
32
|
-
* IO streams
|
33
|
-
* Stacks
|
34
|
-
* Strings
|
35
|
-
* Arrays
|
36
|
-
* Structs
|
37
|
-
* Unions
|
32
|
+
* [C types][docs-binary-ctypes]
|
33
|
+
* [Buffers][docs-binary-buffer]
|
34
|
+
* [IO streams][docs-binary-stream]
|
35
|
+
* [Stacks][docs-binary-stack]
|
36
|
+
* [Strings][docs-binary-cstring]
|
37
|
+
* [Arrays][docs-binary-array]
|
38
|
+
* [Structs][docs-binary-struct]
|
39
|
+
* [Unions][docs-binary-union]
|
38
40
|
* Encoding data:
|
39
|
-
* Base16
|
40
|
-
* Base32
|
41
|
-
* Base64
|
42
|
-
* C strings
|
43
|
-
* Hex
|
44
|
-
* HTML
|
45
|
-
* HTTP
|
46
|
-
* JavaScript
|
47
|
-
* PowerShell
|
48
|
-
* Punycode
|
49
|
-
* Quoted-printable
|
50
|
-
* Ruby strings
|
51
|
-
* Shell
|
52
|
-
* SQL
|
53
|
-
* URI
|
54
|
-
* UUencoding
|
55
|
-
* XML
|
56
|
-
* Reading/writing compressed data:
|
57
|
-
* Zlib
|
58
|
-
*
|
59
|
-
* Reading/writing archive files:
|
60
|
-
* Tar
|
61
|
-
* Zip
|
62
|
-
* Cryptography:
|
63
|
-
* RSA
|
64
|
-
* DSA
|
65
|
-
* DH
|
66
|
-
* EC
|
67
|
-
* HMAC
|
68
|
-
* Ciphers
|
69
|
-
* X509 certificates
|
41
|
+
* [Base16][docs-encoding-base16]
|
42
|
+
* [Base32][docs-encoding-base32]
|
43
|
+
* [Base64][docs-encoding-base64]
|
44
|
+
* [C strings][docs-encoding-c]
|
45
|
+
* [Hex][docs-encoding-hex]
|
46
|
+
* [HTML][docs-encoding-html]
|
47
|
+
* [HTTP][docs-encoding-http]
|
48
|
+
* [JavaScript][docs-encoding-js]
|
49
|
+
* [PowerShell][docs-encoding-powershell]
|
50
|
+
* [Punycode][docs-encoding-punycode]
|
51
|
+
* [Quoted-printable][docs-encoding-quoted-printable]
|
52
|
+
* [Ruby strings][docs-encoding-ruby]
|
53
|
+
* [Shell][docs-encoding-shell]
|
54
|
+
* [SQL][docs-encoding-sql]
|
55
|
+
* [URI][docs-encoding-uri]
|
56
|
+
* [UUencoding][docs-encoding-uuencoding]
|
57
|
+
* [XML][docs-encoding-xml]
|
58
|
+
* [Reading/writing compressed data][docs-compression]:
|
59
|
+
* [Zlib][docs-compression-zlib]
|
60
|
+
* [Gzip][docs-compression-gzip]
|
61
|
+
* [Reading/writing archive files][docs-archive]:
|
62
|
+
* [Tar][docs-archive-tar]
|
63
|
+
* [Zip][docs-archive-zip]
|
64
|
+
* [Cryptography][docs-crypto]:
|
65
|
+
* [RSA][docs-crypto-key-rsa]
|
66
|
+
* [DSA][docs-crypto-key-dsa]
|
67
|
+
* [DH][docs-crypto-key-dh]
|
68
|
+
* [EC][docs-crypto-key-ec]
|
69
|
+
* [HMAC][docs-crypto-hmac]
|
70
|
+
* [Ciphers][docs-crypto-cipher]
|
71
|
+
* [X509 certificates][docs-crypto-cert]
|
70
72
|
* Networking:
|
71
|
-
* DNS
|
72
|
-
* UNIX
|
73
|
-
* TCP
|
74
|
-
* UDP
|
75
|
-
* SSL / TLS
|
76
|
-
* FTP
|
77
|
-
* SMTP / ESMTP
|
78
|
-
* POP3
|
79
|
-
* IMAP
|
80
|
-
* Telnet
|
81
|
-
* HTTP / HTTPS
|
82
|
-
* Raw packets
|
83
|
-
* ASNs
|
84
|
-
* IP addresses
|
85
|
-
* IP ranges
|
86
|
-
* TLDs
|
87
|
-
* Public Suffix List
|
88
|
-
* Host names
|
89
|
-
* Domain names
|
73
|
+
* [DNS][docs-network-dns]
|
74
|
+
* [UNIX][docs-network-unix-mixin]
|
75
|
+
* [TCP][docs-network-tcp-mixin]
|
76
|
+
* [UDP][docs-network-udp-mixin]
|
77
|
+
* [SSL][docs-network-ssl-mixin] / [TLS][docs-network-tls-mixin]
|
78
|
+
* [FTP][docs-network-ftp-mixin]
|
79
|
+
* [SMTP][docs-network-smtp-mixin] / [ESMTP][docs-network-esmtp-mixin]
|
80
|
+
* [POP3][docs-network-pop3-mixin]
|
81
|
+
* [IMAP][docs-network-imap-mixin]
|
82
|
+
* [Telnet][docs-network-telnet-mixin]
|
83
|
+
* [HTTP / HTTPS][docs-network-http]
|
84
|
+
* [Raw packets][docs-network-packet]
|
85
|
+
* [ASNs][docs-network-asn]
|
86
|
+
* [IP addresses][docs-network-ip]
|
87
|
+
* [IP ranges][docs-network-ip_range]
|
88
|
+
* [TLDs][docs-network-tld]
|
89
|
+
* [Public Suffix List][docs-network-public_suffix]
|
90
|
+
* [Host names][docs-network-host]
|
91
|
+
* [Domain names][docs-network-domain]
|
90
92
|
* Working with text:
|
91
|
-
* Generating typos.
|
92
|
-
* Generating homoglyphs.
|
93
|
-
* Regexs for matching/extracting common types of data.
|
93
|
+
* [Generating typos][docs-text-typo].
|
94
|
+
* [Generating homoglyphs][docs-text-homoglyp].
|
95
|
+
* [Regexs for matching/extracting common types of data][docs-text-patterns].
|
96
|
+
* Adds additional methods to many of [Ruby's core classes][docs-core-exts].
|
94
97
|
* Small memory footprint (~46Kb).
|
95
98
|
* Has 95% documentation coverage.
|
96
99
|
* Has 93% test coverage.
|
@@ -123,7 +126,7 @@ please see the [API documentation](https://ronin-rb.dev/docs/ronin-support).
|
|
123
126
|
|
124
127
|
## Requirements
|
125
128
|
|
126
|
-
* [Ruby] >=
|
129
|
+
* [Ruby] >= 3.0.0
|
127
130
|
* [chars] ~> 0.3, >= 0.3.2
|
128
131
|
* [hexdump] ~> 1.0
|
129
132
|
* [combinatorics] ~> 0.4
|
@@ -155,7 +158,7 @@ gem 'ronin-support', '~> 0.5'
|
|
155
158
|
|
156
159
|
## License
|
157
160
|
|
158
|
-
Copyright (c) 2006-
|
161
|
+
Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
159
162
|
|
160
163
|
ronin-support is free software: you can redistribute it and/or modify
|
161
164
|
it under the terms of the GNU Lesser General Public License as published
|
@@ -181,3 +184,70 @@ along with ronin-support. If not, see <https://www.gnu.org/licenses/>.
|
|
181
184
|
[combinatorics]: https://github.com/postmodern/combinatorics#readme
|
182
185
|
[addressable]: https://github.com/sporkmonger/addressable#readme
|
183
186
|
[uri-query_params]: https://github.com/postmodern/uri-query_params#readme
|
187
|
+
|
188
|
+
[docs-binary-bit_flip]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Binary/BitFlip.html
|
189
|
+
[docs-unhexdump]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Binary/Unhexdump.html
|
190
|
+
[docs-binary-ctypes]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Binary/CTypes.html
|
191
|
+
[docs-binary-buffer]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Binary/Buffer.html
|
192
|
+
[docs-binary-stream]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Binary/Stream.html
|
193
|
+
[docs-binary-stack]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Binary/Stack.html
|
194
|
+
[docs-binary-cstring]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Binary/CString.html
|
195
|
+
[docs-binary-array]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Binary/Array.html
|
196
|
+
[docs-binary-struct]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Binary/Struct.html
|
197
|
+
[docs-binary-union]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Binary/Union.html
|
198
|
+
[docs-encoding-base16]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/Base16.html
|
199
|
+
[docs-encoding-base32]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/Base32.html
|
200
|
+
[docs-encoding-base64]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/Base64.html
|
201
|
+
[docs-encoding-c]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/C.html
|
202
|
+
[docs-encoding-hex]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/Hex.html
|
203
|
+
[docs-encoding-html]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/HTML.html
|
204
|
+
[docs-encoding-http]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/HTTP.html
|
205
|
+
[docs-encoding-js]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/JS.html
|
206
|
+
[docs-encoding-powershell]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/PowerShell.html
|
207
|
+
[docs-encoding-punycode]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/Punycode.html
|
208
|
+
[docs-encoding-quoted-printable]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/QuotedPrintable.html
|
209
|
+
[docs-encoding-ruby]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/Ruby.html
|
210
|
+
[docs-encoding-shell]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/Shell.html
|
211
|
+
[docs-encoding-sql]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/SQL.html
|
212
|
+
[docs-encoding-uri]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/URI.html
|
213
|
+
[docs-encoding-uuencoding]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/UUEncoding.html
|
214
|
+
[docs-encoding-xml]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Encoding/XML.html
|
215
|
+
[docs-compression]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Compression.html
|
216
|
+
[docs-compression-zlib]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Compression/Zlib.html
|
217
|
+
[docs-compression-gzip]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Compression/Gzip.html
|
218
|
+
[docs-archive]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Archive.html
|
219
|
+
[docs-archive-tar]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Archive/Tar.html
|
220
|
+
[docs-archive-zip]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Archive/Zip.html
|
221
|
+
[docs-crypto]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Crypto.html
|
222
|
+
[docs-crypto-key-rsa]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Crypto/Key/RSA.html
|
223
|
+
[docs-crypto-key-dsa]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Crypto/Key/DSA.html
|
224
|
+
[docs-crypto-key-dh]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Crypto/Key/DH.html
|
225
|
+
[docs-crypto-key-ec]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Crypto/Key/EC.html
|
226
|
+
[docs-crypto-hmac]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Crypto/Key/EC.html
|
227
|
+
[docs-crypto-cipher]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Crypto/Cipher.html
|
228
|
+
[docs-crypto-cert]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Crypto/Cert.html
|
229
|
+
[docs-network-dns]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/DNS.html
|
230
|
+
[docs-network-unix-mixin]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/UNIX/Mixin.html
|
231
|
+
[docs-network-tcp-mixin]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/TCP/Mixin.html
|
232
|
+
[docs-network-udp-mixin]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/UDP/Mixin.html
|
233
|
+
[docs-network-ssl-mixin]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/SSL/Mixin.html
|
234
|
+
[docs-network-tls-mixin]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/TLS/Mixin.html
|
235
|
+
[docs-network-ftp-mixin]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/FTP/Mixin.html
|
236
|
+
[docs-network-smtp-mixin]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/SMTP/Mixin.html
|
237
|
+
[docs-network-esmtp-mixin]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/ESMTP/Mixin.html
|
238
|
+
[docs-network-pop3-mixin]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/POP3/Mixin.html
|
239
|
+
[docs-network-imap-mixin]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/IMAP/Mixin.html
|
240
|
+
[docs-network-telnet-mixin]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/Telnet/Mixin.html
|
241
|
+
[docs-network-http]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/HTTP.html
|
242
|
+
[docs-network-packet]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Binary/Packet.html
|
243
|
+
[docs-network-asn]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/ASN.html
|
244
|
+
[docs-network-ip]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/IP.html
|
245
|
+
[docs-network-ip_range]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/IPRange.html
|
246
|
+
[docs-network-tld]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/TLD.html
|
247
|
+
[docs-network-public_suffix]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/PublicSuffix.html
|
248
|
+
[docs-network-host]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/Host.html
|
249
|
+
[docs-network-domain]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Network/Domain.html
|
250
|
+
[docs-text-typo]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Text/Typo.html
|
251
|
+
[docs-text-homoglyp]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Text/Homoglyph.html
|
252
|
+
[docs-text-patterns]: https://ronin-rb.dev/docs/ronin-support/Ronin/Support/Text/Patterns.html
|
253
|
+
[docs-core-exts]: https://ronin-rb.dev/docs/ronin-support/top-level-namespace.html
|
data/gemspec.yml
CHANGED
@@ -2,13 +2,14 @@ name: ronin-support
|
|
2
2
|
summary: A support library for ronin-rb.
|
3
3
|
description: |
|
4
4
|
ronin-support is a support library for ronin-rb. ronin-support provides
|
5
|
-
many Core Extensions to Ruby's built-in classes as well as
|
5
|
+
many Core Extensions to Ruby's built-in classes as well as its own
|
6
6
|
Classes/Modules. ronin-support can be used by other Ruby libraries, tools, or
|
7
7
|
scripts.
|
8
8
|
|
9
9
|
It's like pwntools combined with activesupport.
|
10
10
|
|
11
|
-
|
11
|
+
ronin-support is part of the ronin-rb project, a Ruby toolkit for security
|
12
|
+
research and development.
|
12
13
|
|
13
14
|
license: LGPL-3.0
|
14
15
|
authors: Postmodern
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -22,6 +22,15 @@ require 'ronin/support/archive/core_ext'
|
|
22
22
|
|
23
23
|
module Ronin
|
24
24
|
module Support
|
25
|
+
#
|
26
|
+
# Methods for reading or writing archive files.
|
27
|
+
#
|
28
|
+
# ## Core-Ext Methods
|
29
|
+
#
|
30
|
+
# * {File.tar}
|
31
|
+
# * {File.untar}
|
32
|
+
# * {File.zip}
|
33
|
+
# * {File.unzip}
|
25
34
|
#
|
26
35
|
# @api public
|
27
36
|
#
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
|
+
#
|
5
|
+
# ronin-support is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published
|
7
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# ronin-support is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with ronin-support. If not, see <https://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'ronin/support/binary/bit_flip'
|
20
|
+
|
21
|
+
class Integer
|
22
|
+
|
23
|
+
#
|
24
|
+
# Enumerates over every bit flip in the integer.
|
25
|
+
#
|
26
|
+
# @param [Integer, Range(Integer)] bits
|
27
|
+
# The number of bits to flip or a range of bit indexes to flip.
|
28
|
+
#
|
29
|
+
# @yield [int]
|
30
|
+
# If a block is given, it will be passed each bit-flipped integer.
|
31
|
+
#
|
32
|
+
# @yieldparam [Integer] int
|
33
|
+
# The integer but with one of it's bits flipped.
|
34
|
+
#
|
35
|
+
# @return [Enumerator]
|
36
|
+
# If no block is given, an Enumerator object will be returned.
|
37
|
+
#
|
38
|
+
# @raise [ArgumentError]
|
39
|
+
# The given bits must be either a Range or an Integer.
|
40
|
+
#
|
41
|
+
# @example bit-flip all eight bits:
|
42
|
+
# 0x41.each_bit_flip(8) { |int| puts "%.8b" % int }
|
43
|
+
#
|
44
|
+
# @example bit-flip bits 8-16:
|
45
|
+
# 0xffff.each_bit_flip(8...16) { |int| puts "%.16b" % int }
|
46
|
+
#
|
47
|
+
# @api public
|
48
|
+
#
|
49
|
+
def each_bit_flip(bits,&block)
|
50
|
+
Ronin::Support::Binary::BitFlip::Integer.each_bit_flip(self,bits,&block)
|
51
|
+
end
|
52
|
+
|
53
|
+
#
|
54
|
+
# Returns every bit flip in the integer.
|
55
|
+
#
|
56
|
+
# @param [Integer, Range(Integer)] bits
|
57
|
+
# The number of bits to flip or a range of bit indexes to flip.
|
58
|
+
#
|
59
|
+
# @return [Array<Integer>]
|
60
|
+
# The bit-flipped integers.
|
61
|
+
#
|
62
|
+
# @raise [ArgumentError]
|
63
|
+
# The given bits must be either a Range or an Integer.
|
64
|
+
#
|
65
|
+
# @example bit-flip all eight bits:
|
66
|
+
# 0x41.bit_flips(8)
|
67
|
+
#
|
68
|
+
# @example bit-flip bits 8-16:
|
69
|
+
# 0xffff.bit_flips(8...16)
|
70
|
+
#
|
71
|
+
# @api public
|
72
|
+
#
|
73
|
+
def bit_flips(bits)
|
74
|
+
Ronin::Support::Binary::BitFlip::Integer.bit_flips(self,bits)
|
75
|
+
end
|
76
|
+
|
77
|
+
alias flip_bits bit_flips
|
78
|
+
|
79
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
#
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
|
+
#
|
5
|
+
# ronin-support is free software: you can redistribute it and/or modify
|
6
|
+
# it under the terms of the GNU Lesser General Public License as published
|
7
|
+
# by the Free Software Foundation, either version 3 of the License, or
|
8
|
+
# (at your option) any later version.
|
9
|
+
#
|
10
|
+
# ronin-support is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
# GNU Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public License
|
16
|
+
# along with ronin-support. If not, see <https://www.gnu.org/licenses/>.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'ronin/support/binary/bit_flip'
|
20
|
+
|
21
|
+
class String
|
22
|
+
|
23
|
+
#
|
24
|
+
# Enumerates over every bit flip of every byte in the string.
|
25
|
+
#
|
26
|
+
# @yield [string]
|
27
|
+
# If a block is given, it will be passed each bit-flipped string.
|
28
|
+
#
|
29
|
+
# @yieldparam [String] string
|
30
|
+
# The String, but with one of it's bits flipped.
|
31
|
+
#
|
32
|
+
# @return [Enumerator]
|
33
|
+
# If no block is given, an Enumerator object will be returned.
|
34
|
+
#
|
35
|
+
# @example bit-flip all bytes in the String:
|
36
|
+
# "foo".each_bit_flip { |string| puts string }
|
37
|
+
#
|
38
|
+
# @api public
|
39
|
+
#
|
40
|
+
def each_bit_flip(&block)
|
41
|
+
Ronin::Support::Binary::BitFlip::String.each_bit_flip(self,&block)
|
42
|
+
end
|
43
|
+
|
44
|
+
#
|
45
|
+
# Returns every bit flip of every byte in the string.
|
46
|
+
#
|
47
|
+
# @return [Array<String>]
|
48
|
+
# The bit-flipped strings.
|
49
|
+
#
|
50
|
+
# @example bit-flip all bytes in the String:
|
51
|
+
# "foo".bit_flips
|
52
|
+
#
|
53
|
+
# @api public
|
54
|
+
#
|
55
|
+
def bit_flips
|
56
|
+
Ronin::Support::Binary::BitFlip::String.bit_flips(self)
|
57
|
+
end
|
58
|
+
|
59
|
+
alias flip_bits bit_flips
|
60
|
+
|
61
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
#
|
3
|
-
# Copyright (c) 2006-
|
3
|
+
# Copyright (c) 2006-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
|
4
4
|
#
|
5
5
|
# ronin-support is free software: you can redistribute it and/or modify
|
6
6
|
# it under the terms of the GNU Lesser General Public License as published
|
@@ -16,5 +16,5 @@
|
|
16
16
|
# along with ronin-support. If not, see <https://www.gnu.org/licenses/>.
|
17
17
|
#
|
18
18
|
|
19
|
-
require 'ronin/support/binary/
|
20
|
-
require 'ronin/support/binary/
|
19
|
+
require 'ronin/support/binary/bit_flip/core_ext/integer'
|
20
|
+
require 'ronin/support/binary/bit_flip/core_ext/string'
|