- 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:
andmax_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:
to1
.
- Default the SSL
- 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.
- 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}.
- 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.
- Fixed a bug in {Ronin::Support::Binary::Stream::Methods#read_string} on Ruby 3.3.0.
- 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.
- {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.
- 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.
- {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
andpassword
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.
- 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 intoronin/support/crypto
. - Renamed
ronin/support/formatting
toronin/support/encoding
. - Renamed
Ronin::Support::Binary::Hexdump::Parser
to {Ronin::Support::Binary::Unhexdump::Parser}. - Merged
ronin/support/network/network
intoronin/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
andArray#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
andRonin::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 ofRonin::Core::CLI::Shell
in the ronin-core gem. - Removed
Ronin::UI::Shell
in favor ofRonin::Core::CLI::Shell
in the ronin-core gem. - Removed
Ronin::Network::Mixins
in favor of separateMixin
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
andssl_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}.
- 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
andRonin::Fuzzing::LONG_LENGTHS
are nowSet
objects, instead ofSortedSet
, 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 thatURI.encode
,URI.decode
,URI.escape
,URI.unescape
have all been removed in Ruby 3.0.
- Temporarily added the net-telnet gem as a dependency, since Ruby 3.0 moved
- 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 inRonin::Network::TCP
andRonin::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 returnnil
, even when the UDP port was open. - Filter out
nil
or empty:query
options passed toRonin::Network::HTTP.request
. - No longer append the query String to the path in
Ronin::Network::HTTP.expand_url
. - Support escaping
"\
"tick-marks in
String#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.
- Added
Ronin::Binary::Template#inspect
. - Added the
:passive
option toRonin::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
.
- 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
andRonin::Wordlist#words
. - Added
Ronin::Wordlist#save
. - Added
Ronin::Network::Proxy
,Ronin::Network::TCP::Proxy
andRonin::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
toRonin::Network::TCP#tcp_accept
. - Renamed
Ronin::Network::UDP#udp_single_server
toRonin::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.
- Added the
- Allow
String#mutate
to accept Symbols that map toRonin::Fuzzing
generator methods. Ronin::Fuzzing.[]
now raises aNoMethodError
for unknown fuzzing methods.- Use
module_function
inRonin::Fuzzing
, so the generator methods can be included into other Classes/Modules. - Use
$stdout
instead of callingKernel.puts
orSTDOUT
. Prevents infinite recursion if another library overridesKernel.puts
. - Allow
Ronin::Network::DNS
methods to yield resolved addresses. - Inject
Ronin::Network::DNS
intoNet
for backwards compatibility. - Allow
Ronin::Network::TCP#tcp_server
to accept abacklog
argument. - Default the server host to
0.0.0.0
inRonin::Network::TCP#tcp_accept
. - No longer honor the
VERBOSE
environment variable for enabling verbose output inRonin::UI::Output
. Useruby -w
orruby -d
instead. - No longer support loading
extlib
inronin/support/inflector
.
- 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
- 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
andRonin::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
inronin/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 acceptRegexp
andString
objects. - Moved
String#fuzz
andString.generate
intoronin/fuzzing
. - Moved
Net.*
methods into theRonin::Network
modules. - Fixed bugs in
Ronin::Network::UDP#udp_connect
andRonin::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
andRonin::Network::HTTP#http_post_headers
now return a Hash of Capitalized Header names and String values.- Allow
Ronin::Templates::Erb
to use<%- -%>
syntax. - Alias
<<
towrite
inRonin::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
andRonin::Network
modules are included intoRonin::Support
.
- 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
andRegexp::IP
. - Added
Regexp::HOST_NAME
. - Added
Regexp::USER_NAME
. - Added
Regexp::EMAIL_ADDR
. - Moved
Ronin::UI::Output
,Ronin::UI::Shell
andRonin::Network::Mixins
from ronin into ronin-support. - Refactored
Ronin::UI::Shell
into a Class where commands are defined as protected methods.
- 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 withNet.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 usingeach_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.
- 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.