ronin-support
Description
ronin-support is a support library for Ronin. ronin-support provides many Core Extensions to Ruby's built-in classes as well as its own Classes/Modules. ronin-support can be used by other Ruby libraries, tools, or scripts.
tl;dr It's like pwntools combined with activesupport.
ronin-support is part of the ronin-rb project, a Ruby toolkit for security research and development.
Features
- Provides user-friendly APIs for:
- Bit-flipping
- Hexdump / unhexdump data.
- Packing/unpacking binary data:
- C types
- Buffers
- IO streams
- Stacks
- Strings
- Arrays
- Structs
- Unions
- Encoding data:
- Base16
- Base32
- Base36
- Base62
- Base64
- C strings
- Hex
- HTML
- HTTP
- JavaScript
- PowerShell
- Punycode
- Quoted-printable
- Ruby strings
- Shell
- SQL
- URI
- UUencoding
- XML
- Reading/writing compressed data:
- Zlib
- Gzip
- Reading/writing archive files:
- Tar
- Zip
- Cryptography:
- RSA
- DSA
- DH
- EC
- HMAC
- Ciphers
- X509 certificates
- Networking:
- DNS
- UNIX
- TCP
- UDP
- SSL / TLS
- FTP
- SMTP / ESMTP
- POP3
- IMAP
- Telnet
- HTTP / HTTPS
- Raw packets
- ASNs
- IP addresses
- IP ranges
- TLDs
- Public Suffix List
- Host names
- Domain names
- Working with text:
- Generating typos.
- Generating homoglyphs.
- Regexs for matching/extracting common types of data.
- Adds additional methods to many of Ruby's core classes.
- Small memory footprint (~46Kb).
- Has 96% documentation coverage.
- Has 93% test coverage.
Synopsis
$ irb -r ronin/support
irb(main):001:0> "hello world".base64_encode
=> "aGVsbG8gd29ybGQ=\n"
irb(main):002:0> "aGVsbG8gd29ybGQ=\n".base64_decode
=> "hello world"
Examples
require 'ronin/support'
include Ronin::Support
string = "hello world"
puts string.base64_encode
data = "aGVsbG8gd29ybGQ=\n"
puts data.base64_decode
For more examples of the convenience methods provided by ronin-support, please see the API documentation.
Requirements
- Ruby >= 3.0.0
- chars ~> 0.3, >= 0.3.2
- hexdump ~> 1.0
- combinatorics ~> 0.4
- addressable ~> 2.0
- uri-query_params ~> 0.8
Install
$ gem install ronin-support
Gemfile
gem 'ronin-support', '~> 0.5'
Development
- Fork It!
- Clone It!
cd ronin-support
bundle install
git checkout -b my_feature
- Code It!
bundle exec rake spec
git push origin my_feature
License
Copyright (c) 2006-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
ronin-support is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
ronin-support is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with ronin-support. If not, see https://www.gnu.org/licenses/.