Skip to content

Latest commit

 

History

History
840 lines (807 loc) · 36 KB

ChangeLog.md

File metadata and controls

840 lines (807 loc) · 36 KB

1.1.0 / 2024-07-22

  • Added {Ronin::Support::Binary::CTypes::OS::Android}.
  • Added {Ronin::Support::Binary::CTypes::OS::AppleIOS}.
  • Added the ca: keyword argument to {Ronin::Support::Crypto::Cert.generate}.
  • Added the subject_alt_names: keyword argument to {Ronin::Support::Crypto::Cert.generate}.
  • Added {Ronin::Support::Crypto::Cert::Name#email_address}.
  • Added the email_address: keyword to {Ronin::Support::Crypto::Cert::Name.build}.
  • Added {Ronin::Support::Crypto::Key::EC#curve}.
  • Added {Ronin::Support::Crypto::Key::EC#size}.
  • Added {Ronin::Support::Crypto.Key}.
  • Added support for parsing PEM encoded DH keys in {Ronin::Support::Crypto::Key#load}.
  • Added {Ronin::Support::Encoding::Base36}.
  • Added {Ronin::Support::Encoding::Base62}.
  • Added the content_type: keyword argument to {Ronin::Support::Network::HTTP#request}.
  • Added the accept: keyword argument to {Ronin::Support::Network::HTTP#request}.
  • Added the json: keyword argument to {Ronin::Support::Network::HTTP#request}.
  • Added {Ronin::Support::Network::HTTP.post_cookies}.
  • Added {Ronin::Support::Network::HTTP#post_cookies}.
  • Added {Ronin::Support::Network::HTTP::Mixin#http_post_cookies}.
  • Added {Ronin::Support::Network::IP#ipv4}.
  • Added {Ronin::Support::Network::IPRange#first}.
  • Added {Ronin::Support::Network::IPRange#last}.
  • Added {Ronin::Support::Network::IPRange#include?}.
  • Added {Ronin::Support::Network::IPRange#==}.
  • Added {Ronin::Support::Network::IPRange#===}.
  • Added {Ronin::Support::Network::IPRange#size}.
  • Added {Ronin::Support::Network::IPRange::CIDR#first}.
  • Added {Ronin::Support::Network::IPRange::CIDR#last}.
  • Added {Ronin::Support::Network::IPRange::CIDR#include?}.
  • Added {Ronin::Support::Network::IPRange::CIDR#==}.
  • Added {Ronin::Support::Network::IPRange::CIDR#===}.
  • Added {Ronin::Support::Network::IPRange::CIDR#prefix_address}.
  • Added {Ronin::Support::Network::IPRange::CIDR#size}.
  • Added {Ronin::Support::Network::IPRange::Glob#first}.
  • Added {Ronin::Support::Network::IPRange::Glob#last}.
  • Added {Ronin::Support::Network::IPRange::Glob#include?}.
  • Added {Ronin::Support::Network::IPRange::Glob#==}.
  • Added {Ronin::Support::Network::IPRange::Glob#===}.
  • Added {Ronin::Support::Network::IPRange::Glob#size}.
  • Added {Ronin::Support::Network::IPRange::Range#===}.
  • Added {Ronin::Support::Network::IPRange::Range#size}.
  • Added {Ronin::Support::Network::SSL.socket}.
  • Added {Ronin::Support::Network::SSL.open?}.
  • Added {Ronin::Support::Network::SSL.connect}.
  • Added {Ronin::Support::Network::SSL.connect_and_send}.
  • Added {Ronin::Support::Network::SSL.get_cert}.
  • Added {Ronin::Support::Network::SSL.banner}.
  • Added {Ronin::Support::Network::SSL.send}.
  • Added {Ronin::Support::Network::SSL.server}.
  • Added {Ronin::Support::Network::SSL.server_session}.
  • Added {Ronin::Support::Network::SSL.server_socket}.
  • Added {Ronin::Support::Network::SSL.server_loop}.
  • Added {Ronin::Support::Network::SSL.accept}.
  • Added {Ronin::Support::Network::SSL::Mixin#ssl_server}.
  • Added {Ronin::Support::Network::SSL::Mixin#ssl_server_session}.
  • Added the min_version: and max_version: keyword arguments to all methods in {Ronin::Support::Network::SSL}, {Ronin::Support::Network::SSL::Mixin}, {Ronin::Support::Network::TLS}, {Ronin::Support::Network::TLS::Mixin}, {Ronin::Support::Network::HTTP}, and {Ronin::Support::Network::HTTP::Mixin}.
    • Default the SSL min_version: to 1.
  • Added {Ronin::Support::Network::TLS.socket}.
  • Added {Ronin::Support::Network::TLS.open?}.
  • Added {Ronin::Support::Network::TLS.connect}.
  • Added {Ronin::Support::Network::TLS.connect_and_send}.
  • Added {Ronin::Support::Network::TLS.get_cert}.
  • Added {Ronin::Support::Network::TLS.banner}.
  • Added {Ronin::Support::Network::TLS.send}.
  • Added {Ronin::Support::Network::TLS.server}.
  • Added {Ronin::Support::Network::TLS.server_session}.
  • Added {Ronin::Support::Network::TLS.server_socket}.
  • Added {Ronin::Support::Network::TLS.server_loop}.
  • Added {Ronin::Support::Network::TLS.accept}.
  • Added {Ronin::Support::Network::TLS::Mixin#tls_server}.
  • Added {Ronin::Support::Network::TLS::Mixin#tls_server_session}.
  • Added the hostname: keyword argument to all methods in {Ronin::Support::Network::SSL::Mixin} and {Ronin::Support::Network::TLS::Mixin} methods.
  • Added {Ronin::Support::Network::Wildcard}.
  • No longer automatically require lesser used network protocols in ronin/support/network/mixin:
    • ronin/support/network/ftp/mixin
    • ronin/support/network/smtp/mixin
    • ronin/support/network/esmtp/mixin
    • ronin/support/network/pop3/mixin
    • ronin/support/network/imap/mixin
  • Improve the validation of IP ranges in {Ronin::Support::Network::IPRange#initialize}.
  • Improve the validation of IP CIDR ranges in {Ronin::Support::Network::IPRange::CIDR#initialize}.
  • Improve the validation of IP glob ranges in {Ronin::Support::Network::IPRange::Glob#initialize}.
  • No longer use deprecated Net::HTTP methods in {Ronin::Support::Network::HTTP#initialize}.
  • Add support for specify a SSL version of 1.3 in all {Ronin::Support::Network::SSL}, {Ronin::Support::Network::SSL::Mixin}, {Ronin::Support::Network::TLS}, {Ronin::Support::Network::TLS::Mixin}, {Ronin::Support::Network::HTTP}, and {Ronin::Support::Network::HTTP::Mixin} methods.

1.0.7 / 2024-07-13

  • Improved the performance of {Ronin::Support::Encoding::JS.unescape} and {String#js_unescape} by 2x.
  • Correctly parse Unicode surrogate character pairs in JavaScript strings (ex: "\uD83D\uDE80") in {Ronin::Support::Encoding::JS.unescape}, {String#js_unescape}, {Ronin::Support::Encoding::JS.unquote}, and {String#js_unquote}.

1.0.6 / 2024-06-19

  • Fixed error messages in {Ronin::Support::Encoding::Base64.encode} and {Ronin::Support::Encoding::Base64.decode}.
  • Fixed {Ronin::Support::Network::IPRange::Glob#each} to support * in IPv6 glob ranges.
  • {Ronin::Support::Network::TCP.connect}, {Ronin::Support::Network::UDP.connect}, and {Ronin::Support::Network::HTTP.connect}, when given a block, now returns the block's return value.
  • {Ronin::Support::Network::TCP.connect} and {Ronin::Support::Network::UDP.connect} properly closes the socket when passed a block that raises an exception.

1.0.5 / 2023-12-27

  • Fixed a bug in {Ronin::Support::Binary::Stream::Methods#read_string} on Ruby 3.3.0.

1.0.4 / 2023-12-15

  • Fixed a bug in {Array#pack} where complex types (ex: [[:uint32, 4], 10]) were not being packed correctly.
  • Fixed a bug in {String#unpack} where complex types (ex: [[:uint32, 4], 10]) were not being unpacked correctly.
  • Fixed a bug in {Ronin::Support::Binary::CTypes::ObjectType#initialize} when the object's type has an infinite size, such as an unbounded Array type.
  • Allow using non-RSA keys in all SSL/TLS methods.

1.0.3 / 2023-09-19

  • {Ronin::Support::Crypto::Cert::Name#entries} now returns UTF-8 encoded Strings.
  • {Ronin::Support::Crypto::Cert.Name} now passes through {Ronin::Support::Crypto::Cert::Name} objects instead of copying them.
  • Fixed a bug in {Ronin::Support::Crypto::Cert.generate} when it is given a OpenSSL::PKey::EC signing key.
  • Fixed a bug in {Ronin::Support::Network::SSL::Mixin#ssl_connect} where the OpenSSL::SSL::SSLSocket#hostname attribute was not being set to the host being connected to, which prevented connecting to TLS servers that use SNI.
  • Fixed {Ronin::Support::Network::IP#set} to return self.
  • Fixed {Ronin::Support::Network::IP#inspect} to call the lazy-initialized {Ronin::Support::Network::IP#address} method instead of the @address instance variable directly.

1.0.2 / 2023-06-09

  • Fixed a bug in {Ronin::Support::Encoding::Base32.decode}, {Ronin::Support::Encoding::Hex.unescape}, {Ronin::Support::Encoding::C.unescape}, {Ronin::Support::Encoding::JS.unescape}, {Ronin::Support::Encoding::PowerShell.unescape}, {Ronin::Support::Encoding::Ruby.unescape}, {Ronin::Support::Encoding::XML.unescape}, {Ronin::Support::Path#join}, {String#encode_bytes}, and {String#encode_chars} where ASCII-bit Strings were always being returned instead of UTF-8 Strings.
  • Fixed a bug where {Ronin::Support::Network::IP#address} was being improperly cached.
  • Added missing require for {File.tar}, {File.untar}, {File.zip}, and {File.unzip} core-ext methods.
  • Added missing require for {Integer#pack} and {Float#pack} core-ext methods.
  • No longer include {Ronin::Support::Mixin} into {Kernel} which caused Mixin methods to be included into every Class and object.
  • Added more example code to documentation.
  • Documentation fixes.

1.0.1 / 2023-03-01

  • {Ronin::Support::Network::HTTP.connect_uri} can now infer when to enable SSL/TLS from the given URI.
  • {Ronin::Support::Network::HTTP.connect_uri} can now use the user and password information from the given URI.
  • All {Ronin::Support::Network::HTTP} class methods which accept URI objects can now accept URLs with International Domain Names (IDN).
  • Changed {Kernel#try} to not silently ignore SyntaxError exceptions.
  • Documentation improvements.

1.0.0 / 2023-02-01

  • Added {File.aes_encrypt}.
  • Added {File.aes_decrypt}.
  • Added {File.aes128_encrypt}.
  • Added {File.aes128_decrypt}.
  • Added {File.aes256_encrypt}.
  • Added {File.aes256_decrypt}.
  • Added {File.rsa_encrypt}.
  • Added {File.rsa_decrypt}.
  • Added {File.gzip}.
  • Added {File.gunzip}.
  • Added {File.tar}.
  • Added {File.untar}.
  • Added {File.zip}.
  • Added {File.unzip}.
  • Added {Integer#c_escape}.
  • Added {Integer#c_encode}.
  • Added {Integer#powershell_encode}.
  • Added {Integer#powershell_escape}.
  • Added {Integer#shell_encode}.
  • Added {Integer#shell_escape}.
  • Added {Integer#uri_form_escape}.
  • Added {Integer#uri_form_encode}.
  • Added {Integer#to_hex}.
  • Added {Integer#to_int8}.
  • Added {Integer#to_int16}.
  • Added {Integer#to_int32}.
  • Added {Integer#to_int64}.
  • Added {Integer#to_uint8}.
  • Added {Integer#to_uint16}.
  • Added {Integer#to_uint32}.
  • Added {Integer#to_uint64}.
  • Added {String#base16_encode}.
  • Added {String#base16_decode}.
  • Added {String#base32_encode}.
  • Added {String#base32_decode}.
  • Added {String#c_escape}.
  • Added {String#c_unescape}.
  • Added {String#c_encode}.
  • Added {String#c_string}.
  • Added {String#c_unquote}.
  • Added {String#hex_string}.
  • Added {String#hex_unquote}.
  • Added {String#http_encode}.
  • Added {String#js_encode}.
  • Added {String#js_string}.
  • Added {String#js_unquote}.
  • Added {String#powershell_escape}.
  • Added {String#powershell_unescape}.
  • Added {String#powershell_encode}.
  • Added {String#powershell_string}.
  • Added {String#powershell_unquote}.
  • Added {String#punycode_encode}.
  • Added {String#punycode_decode}.
  • Added {String#quoted_printable_escape}.
  • Added {String#quoted_printable_unescape}.
  • Added {String#ruby_escape}.
  • Added {String#ruby_unescape}.
  • Added {String#ruby_encode}.
  • Added {String#ruby_string}.
  • Added {String#ruby_unquote}.
  • Added {String#shell_escape}.
  • Added {String#shell_unescape}.
  • Added {String#shell_encode}.
  • Added {String#shell_string}.
  • Added {String#shell_unquote}.
  • Added {String#sql_unescape}.
  • Added {String#uri_form_escape}.
  • Added {String#uri_form_encode}.
  • Added {String#uu_encode}.
  • Added {String#uu_decode}.
  • Added {String#xml_encode}.
  • Added {String#aes_encrypt}.
  • Added {String#aes_decrypt}.
  • Added {String#aes128_encrypt}.
  • Added {String#aes128_decrypt}.
  • Added {String#aes256_encrypt}.
  • Added {String#aes256_decrypt}.
  • Added {String#rsa_encrypt}.
  • Added {String#rsa_decrypt}.
  • Added {String#gzip}.
  • Added {String#gunzip}.
  • Added {String#entropy}.
  • Added {String#homoglyph}.
  • Added {String#each_homoglyph}.
  • Added {String#homoglyphs}.
  • Added {String#typo}.
  • Added {String#each_typo}.
  • Added {String#typos}.
  • Added {Ronin::Support::Archive}.
  • Added {Ronin::Support::Archive::Tar}.
  • Added {Ronin::Support::Archive::Zip}.
  • Added {Ronin::Support::Archive::Mixin}.
  • Added {Ronin::Support::Binary::CTypes}.
  • Added {Ronin::Support::Binary::Array}.
  • Added {Ronin::Support::Binary::Memory}.
  • Added {Ronin::Support::Binary::Buffer}.
  • Added {Ronin::Support::Binary::CString}.
  • Added {Ronin::Support::Binary::Stack}.
  • Added {Ronin::Support::Binary::Stream}.
  • Added {Ronin::Support::Binary::Union}.
  • Added {Ronin::Support::Binary::Unhexdump::Parser#unpack}.
  • Added {Ronin::Support::Binary::Unhexdump::Parser#unhexdump}.
  • Added {Ronin::Support::CLI::ANSI}.
  • Added {Ronin::Support::CLI::Printing}.
  • Added {Ronin::Support::Compression}.
  • Added {Ronin::Support::Compression::Gzip}.
  • Added {Ronin::Support::Compression::Gzip::Reader}.
  • Added {Ronin::Support::Compression::Gzip::Writer}.
  • Added {Ronin::Support::Compression::Mixin}.
  • Added {Ronin::Support::Crypto}.
  • Added {Ronin::Support::Crypto::HMAC}.
  • Added {Ronin::Support::Crypto::Key}.
  • Added {Ronin::Support::Crypto::Key::DH}.
  • Added {Ronin::Support::Crypto::Key::DSA}.
  • Added {Ronin::Support::Crypto::Key::EC}.
  • Added {Ronin::Support::Crypto::Key::RSA}.
  • Added {Ronin::Support::Crypto::Mixin}.
  • Added {Ronin::Support::Encoding}.
  • Added {Ronin::Support::Encoding::Base16}.
  • Added {Ronin::Support::Encoding::Base32}.
  • Added {Ronin::Support::Encoding::Base64}.
  • Added {Ronin::Support::Encoding::C}.
  • Added {Ronin::Support::Encoding::Hex}.
  • Added {Ronin::Support::Encoding::HTML}.
  • Added {Ronin::Support::Encoding::HTTP}.
  • Added {Ronin::Support::Encoding::JS}.
  • Added {Ronin::Support::Encoding::PowerShell}.
  • Added {Ronin::Support::Encoding::Punycode}.
  • Added {Ronin::Support::Encoding::QuotedPrintable}.
  • Added {Ronin::Support::Encoding::Ruby}.
  • Added {Ronin::Support::Encoding::Shell}.
  • Added {Ronin::Support::Encoding::SQL}.
  • Added {Ronin::Support::Encoding::URI}.
  • Added {Ronin::Support::Encoding::UUEncoding}.
  • Added {Ronin::Support::Encoding::XML}.
  • Added {Ronin::Support::Home}.
  • Added {Ronin::Support::Mixin}.
  • Added {Ronin::Support::Network::ASN}.
  • Added {Ronin::Support::Network::ASN::List}.
  • Added {Ronin::Support::Network::DNS::IDN}.
  • Added {Ronin::Support::Network::DNS::Resolver}.
  • Added {Ronin::Support::Network::Domain}.
  • Added {Ronin::Support::Network::EmailAddress}.
  • Added {Ronin::Support::Network::Host}.
  • Refactored {Ronin::Support::Network::HTTP} into a class.
  • Added {Ronin::Support::Network::HTTP.connect}.
  • Added {Ronin::Support::Network::HTTP.connect_uri}.
  • Added {Ronin::Support::Network::HTTP#ssl?}.
  • Added {Ronin::Support::Network::HTTP#user_agent}.
  • Added {Ronin::Support::Network::HTTP#user_agent=}.
  • Added {Ronin::Support::Network::HTTP#cookie=}.
  • Added {Ronin::Support::Network::HTTP#request}.
  • Added {Ronin::Support::Network::HTTP#response_status}.
  • Added {Ronin::Support::Network::HTTP#ok?}.
  • Added {Ronin::Support::Network::HTTP#response_headers}.
  • Added {Ronin::Support::Network::HTTP#server_header}.
  • Added {Ronin::Support::Network::HTTP#powered_by_header}.
  • Added {Ronin::Support::Network::HTTP#response_body}.
  • Added {Ronin::Support::Network::HTTP#copy}.
  • Added {Ronin::Support::Network::HTTP#delete}.
  • Added {Ronin::Support::Network::HTTP#get}.
  • Added {Ronin::Support::Network::HTTP#get_headers}.
  • Added {Ronin::Support::Network::HTTP#get_cookies}.
  • Added {Ronin::Support::Network::HTTP#get_body}.
  • Added {Ronin::Support::Network::HTTP#head}.
  • Added {Ronin::Support::Network::HTTP#lock}.
  • Added {Ronin::Support::Network::HTTP#mkcol}.
  • Added {Ronin::Support::Network::HTTP#move}.
  • Added {Ronin::Support::Network::HTTP#options}.
  • Added {Ronin::Support::Network::HTTP#allowed_methods}.
  • Added {Ronin::Support::Network::HTTP#patch}.
  • Added {Ronin::Support::Network::HTTP#post}.
  • Added {Ronin::Support::Network::HTTP#post_headers}.
  • Added {Ronin::Support::Network::HTTP#post_body}.
  • Added {Ronin::Support::Network::HTTP#propfind}.
  • Added {Ronin::Support::Network::HTTP#proppatch}.
  • Added {Ronin::Support::Network::HTTP#put}.
  • Added {Ronin::Support::Network::HTTP#trace}.
  • Added {Ronin::Support::Network::HTTP#unlock}.
  • Added {Ronin::Support::Network::HTTP#close}.
  • Added {Ronin::Support::Network::HTTP.response_status}.
  • Added {Ronin::Support::Network::HTTP.ok?}.
  • Added {Ronin::Support::Network::HTTP.response_headers}.
  • Added {Ronin::Support::Network::HTTP.server_header}.
  • Added {Ronin::Support::Network::HTTP.powered_by_header}.
  • Added {Ronin::Support::Network::HTTP.response_body}.
  • Added {Ronin::Support::Network::HTTP.copy}.
  • Added {Ronin::Support::Network::HTTP.delete}.
  • Added {Ronin::Support::Network::HTTP.get}.
  • Added {Ronin::Support::Network::HTTP.get_headers}.
  • Added {Ronin::Support::Network::HTTP.get_cookies}.
  • Added {Ronin::Support::Network::HTTP.get_body}.
  • Added {Ronin::Support::Network::HTTP.head}.
  • Added {Ronin::Support::Network::HTTP.lock}.
  • Added {Ronin::Support::Network::HTTP.mkcol}.
  • Added {Ronin::Support::Network::HTTP.move}.
  • Added {Ronin::Support::Network::HTTP.options}.
  • Added {Ronin::Support::Network::HTTP.allowed_methods}.
  • Added {Ronin::Support::Network::HTTP.patch}.
  • Added {Ronin::Support::Network::HTTP.post}.
  • Added {Ronin::Support::Network::HTTP.post_headers}.
  • Added {Ronin::Support::Network::HTTP.post_body}.
  • Added {Ronin::Support::Network::HTTP.propfind}.
  • Added {Ronin::Support::Network::HTTP.proppatch}.
  • Added {Ronin::Support::Network::HTTP.put}.
  • Added {Ronin::Support::Network::HTTP.trace}.
  • Added {Ronin::Support::Network::HTTP.unlock}.
  • Added {Ronin::Support::Network::HTTP::Cookie}.
  • Added {Ronin::Support::Network::HTTP::Mixin}.
  • Added {Ronin::Support::Network::HTTP::Mixin#http_connect}.
  • Added {Ronin::Support::Network::HTTP::Mixin#http_connect_uri}.
  • Added {Ronin::Support::Network::HTTP::Mixin#http_response_status}.
  • Added {Ronin::Support::Network::HTTP::Mixin#http_response_headers}.
  • Added {Ronin::Support::Network::HTTP::Mixin#http_server_header}.
  • Added {Ronin::Support::Network::HTTP::Mixin#http_powered_by_header}.
  • Added {Ronin::Support::Network::HTTP::Mixin#http_response_body}.
  • Added {Ronin::Support::Network::HTTP::Mixin#http_patch}.
  • Added {Ronin::Support::Network::IP}.
  • Added {Ronin::Support::Network::IP::Mixin}.
  • Added {Ronin::Support::Network::IP::Mixin#public_address}.
  • Added {Ronin::Support::Network::IP::Mixin#public_ip}.
  • Added {Ronin::Support::Network::IP::Mixin#local_addresses}.
  • Added {Ronin::Support::Network::IP::Mixin#local_address}.
  • Added {Ronin::Support::Network::IP::Mixin#local_ips}.
  • Added {Ronin::Support::Network::IP::Mixin#local_ip}.
  • Added {Ronin::Support::Network::IPRange}.
  • Added {Ronin::Support::Network::IPRange::CIDR}.
  • Added {Ronin::Support::Network::IPRange::Glob}.
  • Added {Ronin::Support::Network::IPRange::Range}.
  • Added {Ronin::Support::Network::Mixin}.
  • Added {Ronin::Support::Network::PublicSuffix}.
  • Added {Ronin::Support::Network::PublicSuffix::List}.
  • Added {Ronin::Support::Network::SSL.context}.
  • Added {Ronin::Support::Network::SSL::Proxy#version}.
  • Added {Ronin::Support::Network::TCP}.
  • Added {Ronin::Support::Network::TLD}.
  • Added {Ronin::Support::Network::TLD::List}.
  • Added {Ronin::Support::Network::TLS}.
  • Added {Ronin::Support::Network::TLS::Proxy}.
  • Added {Ronin::Support::Network::UDP}.
  • Added {Ronin::Support::Text}.
  • Added {Ronin::Support::Text::Entropy}.
  • Added {Ronin::Support::Text::Homoglyph}.
  • Added {Ronin::Support::Text::Homoglyph::Table}.
  • Added {Ronin::Support::Text::Patterns::SSH_PRIVATE_KEY}.
  • Added {Ronin::Support::Text::Patterns::DSA_PRIVATE_KEY}.
  • Added {Ronin::Support::Text::Patterns::EC_PRIVATE_KEY}.
  • Added {Ronin::Support::Text::Patterns::RSA_PRIVATE_KEY}.
  • Added {Ronin::Support::Text::Patterns::PRIVATE_KEY}.
  • Added {Ronin::Support::Text::Patterns::AWS_ACCESS_KEY_ID}.
  • Added {Ronin::Support::Text::Patterns::AWS_SECRET_ACCESS_KEY}.
  • Added {Ronin::Support::Text::Patterns::API_KEY}.
  • Added {Ronin::Support::Text::Patterns::MD5}.
  • Added {Ronin::Support::Text::Patterns::SHA1}.
  • Added {Ronin::Support::Text::Patterns::SHA256}.
  • Added {Ronin::Support::Text::Patterns::SHA512}.
  • Added {Ronin::Support::Text::Patterns::HASH}.
  • Added {Ronin::Support::Text::Patterns::PUBLIC_KEY}.
  • Added {Ronin::Support::Text::Patterns::SSH_PUBLIC_KEY}.
  • Added {Ronin::Support::Text::Patterns::DIR_NAME}.
  • Added {Ronin::Support::Text::Patterns::MAC_ADDR}.
  • Added {Ronin::Support::Text::Patterns::IPV4_ADDR}.
  • Added {Ronin::Support::Text::Patterns::IPV6_ADDR}.
  • Added {Ronin::Support::Text::Patterns::IP_ADDR}.
  • Added {Ronin::Support::Text::Patterns::PUBLIC_SUFFIX}.
  • Added {Ronin::Support::Text::Patterns::DOMAIN}.
  • Added {Ronin::Support::Text::Patterns::URI}.
  • Added {Ronin::Support::Text::Patterns::URL}.
  • Added {Ronin::Support::Text::Patterns::NUMBER}.
  • Added {Ronin::Support::Text::Patterns::HEX_NUMBER}.
  • Added {Ronin::Support::Text::Patterns::VERSION_NUMBER}.
  • Added {Ronin::Support::Text::Patterns::EMAIL_ADDRESS}.
  • Added {Ronin::Support::Text::Patterns::OBFUSCATED_EMAIL_AT}.
  • Added {Ronin::Support::Text::Patterns::OBFUSCATED_EMAIL_DOT}.
  • Added {Ronin::Support::Text::Patterns::OBFUSCATED_EMAIL_ADDRESS}.
  • Added {Ronin::Support::Text::Patterns::SSN}.
  • Added {Ronin::Support::Text::Patterns::AMEX_CC}.
  • Added {Ronin::Support::Text::Patterns::DISCOVER_CC}.
  • Added {Ronin::Support::Text::Patterns::MASTERCARD_CC}.
  • Added {Ronin::Support::Text::Patterns::VISA_CC}.
  • Added {Ronin::Support::Text::Patterns::VISA_MASTERCARD_CC}.
  • Added {Ronin::Support::Text::Patterns::CC}.
  • Added {Ronin::Support::Text::Patterns::VARIABLE_NAME}.
  • Added {Ronin::Support::Text::Patterns::VARIABLE_ASSIGNMENT}.
  • Added {Ronin::Support::Text::Patterns::FUNCTION_NAME}.
  • Added {Ronin::Support::Text::Patterns::DOUBLE_QUOTED_STRING}.
  • Added {Ronin::Support::Text::Patterns::SINGLE_QUOTED_STRING}.
  • Added {Ronin::Support::Text::Patterns::STRING}.
  • Added {Ronin::Support::Text::Patterns::BASE64}.
  • Added {Ronin::Support::Text::Patterns::C_STYLE_COMMENT}.
  • Added {Ronin::Support::Text::Patterns::C_COMMENT}.
  • Added {Ronin::Support::Text::Patterns::CPP_COMMENT}.
  • Added {Ronin::Support::Text::Patterns::JAVA_COMMENT}.
  • Added {Ronin::Support::Text::Patterns::JAVASCRIPT_COMMENT}.
  • Added {Ronin::Support::Text::Patterns::SHELL_STYLE_COMMENT}.
  • Added {Ronin::Support::Text::Patterns::SHELL_COMMENT}.
  • Added {Ronin::Support::Text::Patterns::BASH_COMMENT}.
  • Added {Ronin::Support::Text::Patterns::RUBY_COMMENT}.
  • Added {Ronin::Support::Text::Patterns::PYTHON_COMMENT}.
  • Added {Ronin::Support::Text::Patterns::COMMENT}.
  • Added {Ronin::Support::Text::Random}.
  • Added {Ronin::Support::Text::Random::Mixin}.
  • Added {Ronin::Support::Text::Typo}.
  • Added {Ronin::Support::Text::Typo::Generator}.
  • Moved all Ronin:: constants into the {Ronin::Support} namespace.
  • Moved ronin/support/formatting/digest core-ext methods into ronin/support/crypto.
  • Renamed ronin/support/formatting to ronin/support/encoding.
  • Renamed Ronin::Support::Binary::Hexdump::Parser to {Ronin::Support::Binary::Unhexdump::Parser}.
  • Merged ronin/support/network/network into ronin/support/network.
  • Removed the data_paths gem dependency.
  • Removed the parameters gem dependency.
  • Removed the yard-parameters gem dependency.
  • Removed ronin/support/inflector.
  • Removed Integer#bytes.
  • Removed Array#bytes and Array#chars in favor of {Ronin::Support::Binary::CString}.
  • Removed the probability: keyword argument from {String#random_case}.
  • Removed udp_single_server in favor of {Ronin::Support::Network::UDP::Mixin#udp_recv udp_recv}.
  • Removed tcp_single_server in favor of {Ronin::Support::Network::TCP::Mixin#tcp_accept tcp_accept}.
  • Removed String#format_uri.
  • Removed String#format_uri_form.
  • Removed Integer#format_js.
  • Removed String#format_js.
  • Removed Integer#format_http.
  • Removed `String#format_http.
  • Removed Integer#format_xml.
  • Removed `String#format_xml.
  • Removed Integer#format_html.
  • Removed `String#format_html.
  • Removed Integer#format_c.
  • Removed `String#format_c.
  • Removed Ronin::Support::Network::IP.each and Ronin::Support::Network::IP#each in favor of {Ronin::Support::Network::IPRange}.
  • Removed Resolv.resolver in favor of {Ronin::Support::Network::DNS.resolver}.
  • Removed Ronin::Support::Network::Telnet.default_prompt.
  • Removed Ronin::Support::Network::Telnet.default_port.
  • Removed Ronin::Support::Network::SMTP.default_port.
  • Removed Ronin::Support::Network::POP3.default_port.
  • Removed Ronin::Support::Network::IMAP.default_port.
  • Removed Ronin::Support::Network::FTP.default_port.
  • Removed Ronin::Support::Network::HTTP::Proxy value object.
  • Removed verbose, normal, quiet, and silent printing modes from {Ronin::Support::CLI::Printing}.
  • Removed Ronin::Support::CLI::Printing.format.
  • Removed Ronin::Support::CLI::Printing#print_exception.
  • Removed ronin/spec/cli/printing.
  • Removed Ronin::UI::Output in favor of {Ronin::Support::CLI::Printing}.
  • Removed Ronin::Wordlist in favor of the wordlist gem.
  • Removed Ronin::UI::REPL in favor of Ronin::Core::CLI::Shell in the ronin-core gem.
  • Removed Ronin::UI::Shell in favor of Ronin::Core::CLI::Shell in the ronin-core gem.
  • Removed Ronin::Network::Mixins in favor of separate Mixin modules for each {Ronin::Support::Network} module.
  • Removed Net core-exts.
  • Removed Ronin::Support::Binary::Template.translate.
  • Removed Ronin::Templates in favor of {Ronin::Support::Text::ERB}.
  • Removed ssl_server and ssl_server_session in favor of {Ronin::Support::Network::SSL::Mixin#ssl_server_socket ssl_server_socket}.
  • Removed String#depack in favor of overriding {String#unpack}.
  • Also override {String#unpack1} to match the functionality of {String#unpack}.

0.5.2 / 2021-02-28

  • Support Ruby 3.0:
    • Temporarily added the net-telnet gem as a dependency, since Ruby 3.0 moved net/telnet out of the stdlib.
    • Ronin::Fuzzing::SHORT_LENGTHS and Ronin::Fuzzing::LONG_LENGTHS are now Set objects, instead of SortedSet, which Ruby 3.0 moved out of stdlib.
    • Use URI::DEFAULT_PARSER.escape / .unescape in {String#uri_encode}, {String#uri_decode}, and {Integer#uri_encode} now that URI.encode, URI.decode, URI.escape, URI.unescape have all been removed in Ruby 3.0.
  • Deprecated Ronin::Network::Telnet.
  • Allow Ronin::Path#initialize to accept a separator argument.
  • No longer bind new sockets to 0.0.0.0 by default in Ronin::Network::TCP and Ronin::Network::UDP. 0.0.0.0 is the IPv4 Any address, which makes the socket IPv4 and thus incompatible with IPv6 hosts.
  • Fixed a bug in Ronin::Network::UDP#udp_open? where it would always timeout and return nil, even when the UDP port was open.
  • Filter out nil or empty :query options passed to Ronin::Network::HTTP.request.
  • No longer append the query String to the path in Ronin::Network::HTTP.expand_url.
  • Support escaping "\"tick-marks inString#sql_escape`.
  • Allow setting the request body or form-data in Ronin::Network::HTTP.request, even for request types that typically do not use a body or form-data.

0.5.1 / 2012-06-29

  • Added Ronin::Binary::Template#inspect.
  • Added the :passive option to Ronin::Network::FTP#ftp_connect.
  • Forgot to require ronin/formatting/extensions/binary/array.
  • Fixed a bug where {Array#pack} would not accept tuples (ex: [:uint8, 2]).
  • Fixed a bug in String#sql_decode where "\\'\\'" would incorrectly be converted to '"'.
  • Ensure that {Integer#pack} only accepts one argument.
  • Have {String#hex_unescape} to decode every two characters.
  • Enable passive-mode by default in Ronin::Network::FTP#ftp_connect.

0.5.0 / 2012-06-16

  • Require uri-query_params ~> 0.6.
  • Added {Float#pack}.
  • Added Regexp::WORD.
  • Added Regexp::PHONE_NUMBER.
  • Added Ronin::Binary::Template.
  • Added Ronin::Binary::Struct.
  • Added Ronin::Binary::Hexdump::Parser.
  • Added Ronin::Fuzzing::Template.
  • Added Ronin::Fuzzing::Repeater.
  • Added Ronin::Fuzzing::Fuzzer.
  • Added Ronin::Fuzzing::Mutator.
  • Added Ronin::Wordlist.create.
  • Added Ronin::Wordlist#path and Ronin::Wordlist#words.
  • Added Ronin::Wordlist#save.
  • Added Ronin::Network::Proxy, Ronin::Network::TCP::Proxy and Ronin::Network::UDP::Proxy.
  • Added Ronin::Network::TCP#tcp_open?.
  • Added Ronin::Network::TCP#tcp_server_loop.
  • Added Ronin::Network::UDP#udp_open?.
  • Added Ronin::Network::UDP#udp_server_loop.
  • Added Ronin::Network::Mixins::TCP#tcp_open?.
  • Added Ronin::Network::Mixins::UDP#udp_open?.
  • Added Ronin::Network::Mixins::UDP#udp_server_loop.
  • Added Ronin::Network::Mixins::UDP#udp_recv.
  • Added Ronin::Network::FTP.
  • Added Ronin::Network::UNIX.
  • Added Ronin::Network::Mixins::FTP.
  • Added Ronin::Network::Mixins::UNIX.
  • Aliased {String#escape} to String#dump.
  • Renamed {String#hex_unescape} to {String#unescape}.
    • Aliased {String#hex_unescape} to {String#unescape}.
  • Renamed Ronin::Network::TCP#tcp_single_server to Ronin::Network::TCP#tcp_accept.
  • Renamed Ronin::Network::UDP#udp_single_server to Ronin::Network::UDP#udp_recv.
  • Deprecated Ronin::Network::TCP#tcp_single_server.
  • Deprecated Ronin::Network::UDP#udp_single_server.
  • Backported Ruby 1.9 only Base64 methods.
  • Allow {Integer#pack} to accept a type from Ronin::Binary::Template::TYPES.
  • Allow {Array#pack} to accept types from Ronin::Binary::Template::TYPES.
  • Allow {String#unpack} to accept types from Ronin::Binary::Template::TYPES.
  • Support nmap-style i,j-k globbed IP address ranges in {IPAddr.each}.
  • Moved {String#unhexdump} logic into Ronin::Binary::Hexdump::Parser.
    • Added the :named_chars option.
    • Improved the parsing of od hexdumps.
    • Support unhexdumping specific endianness.
    • Support unhexdumping floats / doubles.
  • Allow String#mutate to accept Symbols that map to Ronin::Fuzzing generator methods.
  • Ronin::Fuzzing.[] now raises a NoMethodError for unknown fuzzing methods.
  • Use module_function in Ronin::Fuzzing, so the generator methods can be included into other Classes/Modules.
  • Use $stdout instead of calling Kernel.puts or STDOUT. Prevents infinite recursion if another library overrides Kernel.puts.
  • Allow Ronin::Network::DNS methods to yield resolved addresses.
  • Inject Ronin::Network::DNS into Net for backwards compatibility.
  • Allow Ronin::Network::TCP#tcp_server to accept a backlog argument.
  • Default the server host to 0.0.0.0 in Ronin::Network::TCP#tcp_accept.
  • No longer honor the VERBOSE environment variable for enabling verbose output in Ronin::UI::Output. Use ruby -w or ruby -d instead.
  • No longer support loading extlib in ronin/support/inflector.

0.4.0 / 2012-02-12

  • Require uri-query_params ~> 0.6.
  • Require parameters ~> 0.4.
  • Added Regexp::DELIM.
  • Added Regexp::IDENTIFIER.
  • Added Regexp::OCTET.
  • Added Regexp::FILE_EXT.
  • Added Regexp::FILE_NAME.
  • Added Regexp::FILE.
  • Added Regexp::DIRECTORY.
  • Added Regexp::RELATIVE_UNIX_PATH.
  • Added Regexp::ABSOLUTE_UNIX_PATH.
  • Added Regexp::UNIX_PATH.
  • Added Regexp::RELATIVE_WINDOWS_PATH.
  • Added Regexp::ABSOLUTE_WINDOWS_PATH.
  • Added Regexp::WINDOWS_PATH.
  • Added Regexp::RELATIVE_PATH.
  • Added Regexp::ABSOLUTE_PATH.
  • Added Regexp::PATH.
  • Added String#repeating.
  • Added String#sql_inject.
  • Added String#mutate.
  • Added Ronin::Fuzzing.
    • Added Ronin::Fuzzing.[].
    • Added Ronin::Fuzzing.bad_strings.
    • Added Ronin::Fuzzing.format_strings.
    • Added Ronin::Fuzzing.bad_paths.
    • Added Ronin::Fuzzing.bit_fields.
    • Added Ronin::Fuzzing.signed_bit_fields.
    • Added Ronin::Fuzzing.uint8.
    • Added Ronin::Fuzzing.uint16.
    • Added Ronin::Fuzzing.uint32.
    • Added Ronin::Fuzzing.uint64.
    • Added Ronin::Fuzzing.int8.
    • Added Ronin::Fuzzing.int16.
    • Added Ronin::Fuzzing.int32.
    • Added Ronin::Fuzzing.int64.
    • Added Ronin::Fuzzing.sint8.
    • Added Ronin::Fuzzing.sint16.
    • Added Ronin::Fuzzing.sint32.
    • Added Ronin::Fuzzing.sint64.
  • Added Ronin::Wordlist.
  • Added Ronin::Network::DNS.
  • Added Ronin::Network::Mixins::Mixin.
  • Added Ronin::Network::Mixins::DNS.
  • Added Ronin::Network::Mixins::SSL.
  • Added missing Ronin::Network::UDP#udp_send and Ronin::Network::Mixins::UDP#udp_send methods.
  • Added Ronin::UI::Output::Helpers#print_exception.
  • Made Regexp::HOST_NAME case-insensitive.
  • Refactored Regexp::IPv4 to not match invalid IPv4 addresses.
  • Require ronin/formatting/html in ronin/formatting.
  • Allow {String#base64_encode} and {String#base64_decode} to accept a formatting argument.
    • :normal
    • :strict
    • :url / :urlsafe
  • Fixed a bug in {String#js_unescape}, where %uXX chars were not being unescaped (thanks isis!).
  • Have String#fuzz only accept Regexp and String objects.
  • Moved String#fuzz and String.generate into ronin/fuzzing.
  • Moved Net.* methods into the Ronin::Network modules.
  • Fixed bugs in Ronin::Network::UDP#udp_connect and Ronin::Network::UDP#udp_server.
  • Fixed a bug in Ronin::Network::HTTP.expand_url, where the URI query-string was not being escaped.
  • Allow Ronin::Network::HTTP.request to accept :query and :query_params options.
  • Fixed a bug in Ronin::Network::Mixins::HTTP#http_session, where normalized options were not being yielded.
  • Ronin::Network::HTTP#http_get_headers and Ronin::Network::HTTP#http_post_headers now return a Hash of Capitalized Header names and String values.
  • Allow Ronin::Templates::Erb to use <%- -%> syntax.
  • Alias << to write in Ronin::UI::Output::Helpers.
  • Fixed bugs in Ronin::UI::Shell.
  • Warning messages are printed by Ronin::UI::Output::Helpers, unless output is silenced.
  • Ronin::UI::Output::Helpers and Ronin::Network modules are included into Ronin::Support.

0.3.0 / 2011-10-16

  • Require combinatorics ~> 0.4.
  • Added {Enumerable#map_hash}.
  • Added String.generate.
  • Added String#fuzz.
  • Added {File.each_line}.
  • Added {File.each_row}.
  • Added Resolv.resolver.
  • Added URI::HTTP#request.
  • Added {URI::HTTP#status}.
  • Added {URI::HTTP#ok?}.
  • Added URI::HTTP#server.
  • Added URI::HTTP#powered_by.
  • Added URI::HTTP#copy.
  • Added URI::HTTP#delete.
  • Added URI::HTTP#get.
  • Added URI::HTTP#get_headers.
  • Added URI::HTTP#get_body.
  • Added URI::HTTP#head.
  • Added URI::HTTP#lock.
  • Added URI::HTTP#mkcol.
  • Added URI::HTTP#move.
  • Added URI::HTTP#options.
  • Added URI::HTTP#post.
  • Added URI::HTTP#post_headers.
  • Added URI::HTTP#post_body.
  • Added URI::HTTP#prop_find.
  • Added URI::HTTP#prop_match.
  • Added URI::HTTP#trace.
  • Added URI::HTTP#unlock.
  • Added Regexp::MAC.
  • Added Regexp::IPv6, Regexp::IPv4 and Regexp::IP.
  • Added Regexp::HOST_NAME.
  • Added Regexp::USER_NAME.
  • Added Regexp::EMAIL_ADDR.
  • Moved Ronin::UI::Output, Ronin::UI::Shell and Ronin::Network::Mixins from ronin into ronin-support.
  • Refactored Ronin::UI::Shell into a Class where commands are defined as protected methods.

0.2.0 / 2011-07-04

  • Require data_paths ~> 0.3.
  • Added Ronin::Mixin.
  • Added Ronin::Network::SMTP::Email#headers.
  • Added {Integer#html_escape}.
  • Added {Integer#js_escape}.
  • Added Integer#format_js.
  • Added {String#html_escape}.
  • Added {String#html_unescape}.
  • Added {String#js_escape}.
  • Added {String#js_unescape}.
  • Added String#format_js.
  • Added Net.smtp_send_message.
  • Added Net.http_status.
  • Added Net.http_get_headers.
  • Added Net.http_post_headers.
  • Added YARD @api tags to define the public, semi-public and private APIs.
  • Renamed Kernel#attempt to {Kernel#try}.
  • Allow :method to be used with Net.http_ok?.
  • Fixed a bug in Ronin::Network::HTTP.expand_url where :host and :port options were being overridden.
  • Improved the performance of Integer#bytes.
  • Only redefine String#dump for Ruby 1.8.x.
    • Ruby >= 1.9.1 correctly hex-escapes special characters.
  • Fixed a bug in String#format_chars, where it was not using each_char for unicode characters.
  • Deprecated String#common_postfix, in favor of {String#common_suffix}. String#common_postfix will be removed in ronin-support 1.0.0.
  • Net.http_get_body no longer accepts a block.
  • Net.http_post_body no longer accepts a block.

0.1.0 / 2011-03-20

  • Initial release:
    • Split out of ronin 0.3.0.
    • Upgraded to the LGPL-3 license.
    • Require Ruby >= 1.8.7.
    • Require chars ~> 0.2.
    • Require combinatorics ~> 0.3.
    • Require uri-query_params ~> 0.5, >= 0.5.2.
    • Require data_paths ~> 0.2, >= 0.2.1.