ChangeLog.md in ronin-1.5.1 vs ChangeLog.md in ronin-2.0.0.beta1
- old
+ new
@@ -1,52 +1,128 @@
+### 2.0.0 / 2023-XX-XX
+
+* Require `ruby` >= 3.0.0.
+* Require [rouge] ~> 3.0
+* Require [async-io] ~> 1.0
+* Require [wordlist] ~> 1.0
+* Require [ronin-support] ~> 1.0.0.
+* Require [ronin-core] ~> 0.1.
+* Require [ronin-repos] ~> 0.1.
+* Require [ronin-db] ~> 0.1.
+* Require [ronin-fuzzer] ~> 0.1.
+* Require [ronin-web] ~> 1.0.
+* Require [ronin-code-asm] ~> 1.0.
+* Require [ronin-code-sql] ~> 2.0.
+* Require [ronin-payloads] ~> 0.1.
+* Require [ronin-exploits] ~> 1.0.
+* Require [ronin-vulns] ~> 0.1.
+* Added new sub-commands to the `ronin` command:
+ * `asn`
+ * `banner-grab`
+ * `bitflip`
+ * `cert-dump`
+ * `cert-gen`
+ * `cert-grab`
+ * `decode, dec`
+ * `decrypt`
+ * `dns`
+ * `email-addr`
+ * `encode, enc`
+ * `encrypt`
+ * `entropy`
+ * `escape`
+ * `extract`
+ * `grep`
+ * `help`
+ * `hexdump`
+ * `highlight`
+ * `hmac`
+ * `homoglyph`
+ * `host`
+ * `http`
+ * `ip`
+ * `iprange`
+ * `irb`
+ * `md5`
+ * `netcat` / `nc`
+ * `new`
+ * `proxy`
+ * `public-suffix-list`
+ * `quote`
+ * `rot`
+ * `sha1`
+ * `sha256`
+ * `sha512`
+ * `string`
+ * `strings`
+ * `tips`
+ * `tld-list`
+ * `typo`
+ * `typosquat`
+ * `unescape`
+ * `unhexdump`
+ * `unquote`
+ * `url`
+ * `url-edit`
+ * `xor`
+* `ronin help <subcommand>` will now display a man page for that sub-command.
+* Renamed the `ronin console` command to `ronin irb`.
+* Moved and refactored all database code out into [ronin-db] and
+ [ronin-db-activerecord].
+* Replaced all repository management related code with [ronin-repos].
+* Replaced the CLI code with [command_kit] and [ronin-core].
+* Refactored the `ronin` gem to only provide a top-level CLI with sub-commands
+ and require the other `ronin-` gems.
+
### 1.5.1 / 2021-02-28
* Require [ronin-support] ~> 0.5, >= 0.5.2.
+* Support Ruby 3.0:
+ * `Ronin::UI::CLI.commands` now uses `Set`, since Ruby 3.0 moved `SortedSet`
+ out of the stdlib.
* Activate bundler in `bin/ronin` and `bin/ronin-*` commands, if a
`Gemfile.lock` file is found.
* Re-finalize all DataMapper models in
- {Ronin::AutoLoad::ClassMethods#require_const}.
+ `Ronin::AutoLoad::ClassMethods#require_const`.
* Avoid calling `Ronin::Network::TCP::Proxy` specific methods in the
`ronin net:proxy` command, if working with a UDP proxy.
-* {Ronin::UI::CLI.commands} now uses `Set`, since Ruby 3.0 moved `SortedSet`
- out of the stdlib.
### 1.5.0 / 2012-06-16
* Require [ronin-support] ~> 0.5.
-* Added {Ronin::UI::CLI::Command#setup}.
-* Added {Ronin::UI::CLI::Command#cleanup}.
-* Added {Ronin::UI::CLI::Command.examples}.
-* Added the {Ronin::UI::CLI::Commands::Net::Proxy net:proxy} ronin command.
+* Added `Ronin::UI::CLI::Command#setup`.
+* Added `Ronin::UI::CLI::Command#cleanup`.
+* Added `Ronin::UI::CLI::Command.examples`.
+* Added the `Ronin::UI::CLI::Commands::Net::Proxy net:proxy` ronin command.
* Added man-pages for each `ronin` command.
-* Added more specs for the {Ronin::UI::CLI::Command} DSL methods.
-* Added {Ronin::AutoLoad::ClassMethods#require_const}, to also
+* Added more specs for the `Ronin::UI::CLI::Command` DSL methods.
+* Added `Ronin::AutoLoad::ClassMethods#require_const`, to also
finalize auto-loaded DataMapper models.
-* Renamed `Ronin::Database.setup_log` to {Ronin::Database.log}.
-* Allow {Ronin::Database.setup} to accept a URI for the `default` repository.
+* Renamed `Ronin::Database.setup_log` to `Ronin::Database.log`.
+* Allow `Ronin::Database.setup` to accept a URI for the `default` repository.
* Allow `ronin/spec/database` to test against other Databases,
specified by the `ADAPTER` environment variable.
* If `ADAPTER` is set to `mysql` or `postgres`, then `ronin/spec/database`
will connect to the `ronin_test` database with username/password
`ronin_test`.
* By default `ronin/spec/database` will test against a temporary sqlite3
database.
* Allow console `!command`s to embed Ruby expressions:
- >> !ncat #{ip} #{port}
+ >> !ncat #`ip` #`port`
-* Moved console `!command` logic into {Ronin::UI::Console::Shell}.
+* Moved console `!command` logic into `Ronin::UI::Console::Shell`.
* `!command`s now only execute shell commands.
-* Moved console `.command` logic into {Ronin::UI::Console::Commands}.
+* Moved console `.command` logic into `Ronin::UI::Console::Commands`.
* `.command`s are now reserved only for special console commands
(ex: `.edit`).
* Improved recognition of console `!command`s and `.command`s.
* Do not allow execution of console commands while in multi-line mode!
-* Fixed a bug in {Ronin::UI::CLI::Command} which disabled colour output.
-* When {Ronin::UI::CLI::Command#start} catches an Interrupt, it should exit
+* Fixed a bug in `Ronin::UI::CLI::Command` which disabled colour output.
+* When `Ronin::UI::CLI::Command#start` catches an Interrupt, it should exit
with status 130.
-* Rescue `Errno::EPIPE` in {Ronin::UI::CLI::Command#start}.
+* Rescue `Errno::EPIPE` in `Ronin::UI::CLI::Command#start`.
* Improved `--help` output of `ronin` commands by adding `examples` and more
`:description`s to their options.
* Changed the `ronin-help COMMAND` to display the man-page for the given
command.
* No longer honor the `DEBUG` environment variable. Use `ruby -w` or `ruby -d`
@@ -56,194 +132,194 @@
### 1.4.1 / 2012-04-01
* Removed dependencey on env.
* Removed `#to_ary` methods from Ronin Models that were causing
`SystemStackError: stack level too deep` exceptions. Fixes issue #4.
-* {Ronin::UI::CLI::Command#start} now rescues Interupts.
+* `Ronin::UI::CLI::Command#start` now rescues Interupts.
### 1.4.0 / 2012-02-12
* Require open_namespace ~> 0.4.
* Require parameters ~> 0.4.
* Require uri-query_params ~> 0.6.
* Require [ronin-support] ~> 0.4.
-* Added {Ronin::Port.parse}.
-* Added {Ronin::Port.from}.
-* Added {Ronin::EmailAddress.from}.
-* Added {Ronin::Password.parse}.
-* Added {Ronin::URL#inspect}.
-* Added {Ronin::Model::HasUniqueName::ClassMethods#parse}.
-* Added {Ronin::Script::ClassMethods#short_name}.
-* Added {Ronin::Script::Buildable#build_failed!}.
-* Added {Ronin::Script::Path#clean}.
-* Added {Ronin::Script::Path#destroy!}.
-* Added {Ronin::UI::CLI::Command.usage}.
-* Added {Ronin::UI::CLI::Command.summary}.
-* Added {Ronin::UI::CLI::Command.option}.
-* Added {Ronin::UI::CLI::Command.options}.
-* Added {Ronin::UI::CLI::Command.options?}.
-* Added {Ronin::UI::CLI::Command.each_option}.
-* Added {Ronin::UI::CLI::Command.argument}.
-* Added {Ronin::UI::CLI::Command.arguments}.
-* Added {Ronin::UI::CLI::Command.arguments?}.
-* Added {Ronin::UI::CLI::Command.each_argument}.
-* Added {Ronin::UI::CLI::Command#start}.
-* Added {Ronin::UI::CLI::Command#run}.
-* Added {Ronin::UI::CLI::Command#option_parser}.
-* Added {Ronin::UI::CLI::Printing}.
-* Added {Ronin::UI::CLI::ClassCommand}.
-* Added {Ronin::UI::CLI::ScriptCommand#setup}.
+* Added `Ronin::Port.parse`.
+* Added `Ronin::Port.from`.
+* Added `Ronin::EmailAddress.from`.
+* Added `Ronin::Password.parse`.
+* Added `Ronin::URL#inspect`.
+* Added `Ronin::Model::HasUniqueName::ClassMethods#parse`.
+* Added `Ronin::Script::ClassMethods#short_name`.
+* Added `Ronin::Script::Buildable#build_failed!`.
+* Added `Ronin::Script::Path#clean`.
+* Added `Ronin::Script::Path#destroy!`.
+* Added `Ronin::UI::CLI::Command.usage`.
+* Added `Ronin::UI::CLI::Command.summary`.
+* Added `Ronin::UI::CLI::Command.option`.
+* Added `Ronin::UI::CLI::Command.options`.
+* Added `Ronin::UI::CLI::Command.options?`.
+* Added `Ronin::UI::CLI::Command.each_option`.
+* Added `Ronin::UI::CLI::Command.argument`.
+* Added `Ronin::UI::CLI::Command.arguments`.
+* Added `Ronin::UI::CLI::Command.arguments?`.
+* Added `Ronin::UI::CLI::Command.each_argument`.
+* Added `Ronin::UI::CLI::Command#start`.
+* Added `Ronin::UI::CLI::Command#run`.
+* Added `Ronin::UI::CLI::Command#option_parser`.
+* Added `Ronin::UI::CLI::Printing`.
+* Added `Ronin::UI::CLI::ClassCommand`.
+* Added `Ronin::UI::CLI::ScriptCommand#setup`.
* Re-added the `ronin install` command.
* Re-added the `ronin uninstall` command.
* Re-added the `ronin update` command.
-* Renamed `Ronin::URL.query_param` to {Ronin::URL.with_query_param}.
-* Renamed `Ronin::URL.query_value` to {Ronin::URL.with_query_value}.
-* Renamed `Ronin::Repository.add!` to {Ronin::Repository.add}.
-* Renamed `Ronin::Repository.install!` to {Ronin::Repository.install}.
-* Renamed `Ronin::Repository.uninstall!` to {Ronin::Repository.uninstall}.
+* Renamed `Ronin::URL.query_param` to `Ronin::URL.with_query_param`.
+* Renamed `Ronin::URL.query_value` to `Ronin::URL.with_query_value`.
+* Renamed `Ronin::Repository.add!` to `Ronin::Repository.add`.
+* Renamed `Ronin::Repository.install!` to `Ronin::Repository.install`.
+* Renamed `Ronin::Repository.uninstall!` to `Ronin::Repository.uninstall`.
* Renamed `Ronin::UI::CLI::ScriptCommand#load_script` to
- {Ronin::UI::CLI::ScriptCommand#load!}.
+ `Ronin::UI::CLI::ScriptCommand#load!`.
* Renamed `Ronin::UI::CLI::Commands::IPs` to
- {Ronin::UI::CLI::Commands::Ips}.
+ `Ronin::UI::CLI::Commands::Ips`.
* Renamed `Ronin::UI::CLI::Commands::URLs` to
- {Ronin::UI::CLI::Commands::Urls}.
+ `Ronin::UI::CLI::Commands::Urls`.
* Removed thor from the dependencies.
* Removed `Ronin::Script::InstanceMethods#script_type` in favor of
- {Ronin::Script::ClassMethods#short_name}.
-* Have {Ronin::AutoLoad} call `finalize` directly on the newly auto-loaded
+ `Ronin::Script::ClassMethods#short_name`.
+* Have `Ronin::AutoLoad` call `finalize` directly on the newly auto-loaded
model.
-* Associate {Ronin::EmailAddress} with {Ronin::Credential}.
-* Ensure that all {Ronin::Script}s have unique name/version properties.
-* Include {Ronin::Model::HasName}, {Ronin::Model::HasTitle},
- {Ronin::Model::HasDescription} into {Ronin::Repository}.
-* Refactored {Ronin::UI::CLI::Command} to use
+* Associate `Ronin::EmailAddress` with `Ronin::Credential`.
+* Ensure that all `Ronin::Script`s have unique name/version properties.
+* Include `Ronin::Model::HasName`, `Ronin::Model::HasTitle`,
+ `Ronin::Model::HasDescription` into `Ronin::Repository`.
+* Refactored `Ronin::UI::CLI::Command` to use
[Parameters::Options](http://rubydoc.info/gems/parameters/0.4.0/Parameters/Options)
from parameters 0.4.0.
-* {Ronin::UI::CLI::Command#start} now rescues and prints exceptions, then
+* `Ronin::UI::CLI::Command#start` now rescues and prints exceptions, then
exits with status `-1`.
-* {Ronin::UI::CLI::ScriptCommand} may now accept additional options for the
+* `Ronin::UI::CLI::ScriptCommand` may now accept additional options for the
loaded script after `--`:
ronin exploit -f myexploit.rb -- --host victim.com --port 1337
* Fixed a typo in the `ronin repos` command.
* The `ronin repos` command now only lists installed Repositories.
-* `Ronin::Support` is now included into {Ronin}, making all support methods
+* `Ronin::Support` is now included into `Ronin`, making all support methods
accessible in the `ronin` console.
* Allow `ronin` console commands to be prefixed with a `.`.
### 1.3.0 / 2011-10-16
* Require DataMapper ~> 1.2.
* Require [ronin-support] ~> 0.3.
-* Added {Ronin::Model::Importable}.
-* Added {Ronin::MACAddress.extract}.
-* Added {Ronin::IPAddress.extract}.
-* Added {Ronin::HostName.extract}.
-* Added {Ronin::URL.extract}.
-* Added {Ronin::EmailAddress.extract}.
+* Added `Ronin::Model::Importable`.
+* Added `Ronin::MACAddress.extract`.
+* Added `Ronin::IPAddress.extract`.
+* Added `Ronin::HostName.extract`.
+* Added `Ronin::URL.extract`.
+* Added `Ronin::EmailAddress.extract`.
* Renamed `license!` to `licensed_under` in
- {Ronin::Model::HasLicense::InstanceMethods}.
+ `Ronin::Model::HasLicense::InstanceMethods`.
* Moved `Ronin::UI::Output`, `Ronin::UI::Shell` and `Ronin::Network::Mixins`
into [ronin-support].
-* {Ronin::Author.site} and {Ronin::License.url} now use the URI property.
+* `Ronin::Author.site` and `Ronin::License.url` now use the URI property.
* Merged `Ronin::UI::CLI::ModelCommand.query_model` into
- {Ronin::UI::CLI::ModelCommand.model}.
+ `Ronin::UI::CLI::ModelCommand.model`.
### 1.2.0 / 2011-08-15
* Require dm-is-predefined ~> 0.4.
-* Added {Ronin::UI::Console::Context}.
-* Added custom tab-completion to {Ronin::UI::Console} for:
- * {Ronin::IPAddress}
- * {Ronin::HostName}
- * {Ronin::EmailAddress}
- * {Ronin::URL}
+* Added `Ronin::UI::Console::Context`.
+* Added custom tab-completion to `Ronin::UI::Console` for:
+ * `Ronin::IPAddress`
+ * `Ronin::HostName`
+ * `Ronin::EmailAddress`
+ * `Ronin::URL`
* Paths
* Commands
* Added the ability to run commands in Ronin Console, via the
`!command --args` syntax.
* Added custom `!command`s to the Ronin Console:
* `!edit` - Edits a Ruby tempfile and loads the contents afterwards.
* `!cd` - Changes the current working directory and updates
`ENV['OLDPWD']`.
* `!export` - Sets `ENV` variables.
-* Added an index to {Ronin::OS.version}.
-* Refactored {Ronin::OS.predefine} using dm-is-predefined.
-* Fixed a bug in {Ronin::UI::Console.setup} where the wrong binding was
+* Added an index to `Ronin::OS.version`.
+* Refactored `Ronin::OS.predefine` using dm-is-predefined.
+* Fixed a bug in `Ronin::UI::Console.setup` where the wrong binding was
being passed to Ripl.
### 1.1.0 / 2011-07-04
* Require env ~> 0.2.
* Require data_paths ~> 0.3.
* Require [ronin-support] ~> 0.2.
* Added `ronin/repositories`, for quickly loading all repositories.
-* Added {Ronin#script}.
-* Added {Ronin::AutoLoad}.
-* Added {Ronin::Arch.arm}.
-* Added {Ronin::Arch.mips}.
-* Added {Ronin::Arch.x86}.
-* Added {Ronin::URLQueryParamName}.
-* Added timestamps to {Ronin::Campaign}.
-* Added the `created_at` timestamp to {Ronin::Target}.
+* Added `Ronin#script`.
+* Added `Ronin::AutoLoad`.
+* Added `Ronin::Arch.arm`.
+* Added `Ronin::Arch.mips`.
+* Added `Ronin::Arch.x86`.
+* Added `Ronin::URLQueryParamName`.
+* Added timestamps to `Ronin::Campaign`.
+* Added the `created_at` timestamp to `Ronin::Target`.
* Added `Ronin::Network::Mixins::HTTP#http_status`.
* Added `Ronin::Network::Mixins::HTTP#http_ok?`.
* Added `Ronin::Network::Mixins::HTTP#http_server`.
* Added `Ronin::Network::Mixins::HTTP#http_powered_by`.
* Added `print_info` method calls to `Ronin::Network::Mixins::HTTP`.
-* Added {Ronin::Script::InstanceMethods#run}.
-* Added {Ronin::Script::Exception}.
-* Added {Ronin::Script::Path#to_s}.
-* Added {Ronin::Script::ClassMethods#load_from}.
-* Added {Ronin::Repository#find_script}.
-* Added {Ronin::UI::CLI::Command#setup}.
-* Added {Ronin::UI::CLI::ResourcesCommand}.
-* Added {Ronin::UI::CLI::ScriptCommand}.
-* Added the `--database` option to {Ronin::UI::CLI::ModelCommand}.
-* Renamed `Ronin::Engine` to {Ronin::Script}.
-* Renamed `Ronin::Engine::Verifiable` to {Ronin::Script::Testable}.
+* Added `Ronin::Script::InstanceMethods#run`.
+* Added `Ronin::Script::Exception`.
+* Added `Ronin::Script::Path#to_s`.
+* Added `Ronin::Script::ClassMethods#load_from`.
+* Added `Ronin::Repository#find_script`.
+* Added `Ronin::UI::CLI::Command#setup`.
+* Added `Ronin::UI::CLI::ResourcesCommand`.
+* Added `Ronin::UI::CLI::ScriptCommand`.
+* Added the `--database` option to `Ronin::UI::CLI::ModelCommand`.
+* Renamed `Ronin::Engine` to `Ronin::Script`.
+* Renamed `Ronin::Engine::Verifiable` to `Ronin::Script::Testable`.
* Renamed `Ronin::Engine#engine_name` to
`Ronin::Script::InstanceMethods#script_type`.
* Renamed `Ronin::Engine::InstanceMethods#load_original!` to
- {Ronin::Script::InstanceMethods#load_script!}.
-* Renamed `Ronin::CachedFile` to {Ronin::Script::Path}.
+ `Ronin::Script::InstanceMethods#load_script!`.
+* Renamed `Ronin::CachedFile` to `Ronin::Script::Path`.
* Renamed `Ronin::UI::CLI::ModelCommand.model=` to
- {Ronin::UI::CLI::ModelCommand.model}.
+ `Ronin::UI::CLI::ModelCommand.model`.
* Renamed `Ronin::UI::CLI::ModelCommand#model` to
`Ronin::UI::CLI::ModelCommand.query_model`.
* Renamed `Ronin::UI::CLI::ModelCommand#new_query` to
- {Ronin::UI::CLI::ModelCommand#query}.
+ `Ronin::UI::CLI::ModelCommand#query`.
* Renamed `Ronin::UI::CLI::ModelCommand#print_resource` to
- {Ronin::UI::CLI::ResourcesCommand#print_resource}.
+ `Ronin::UI::CLI::ResourcesCommand#print_resource`.
* Renamed `Ronin::UI::CLI::ModelCommand#print_resources` to
- {Ronin::UI::CLI::ResourcesCommand#print_resources}.
+ `Ronin::UI::CLI::ResourcesCommand#print_resources`.
* Removed `Ronin::Engine#method_missing`.
-* Extend `DataPaths::Finders` into {Ronin::Config}.
-* Fixed a RubyGems deprecation in {Ronin::Installation}.
+* Extend `DataPaths::Finders` into `Ronin::Config`.
+* Fixed a RubyGems deprecation in `Ronin::Installation`.
* Enabled verbose DataMapper logging if `$DEBUG` or the `DEBUG`
environment variable are set.
* Switched from DataMapper URIs to Hashes.
-* Fixed a bug in {Ronin::Database::Migrations::Migration#initialize}, where
+* Fixed a bug in `Ronin::Database::Migrations::Migration#initialize`, where
`:needs` was being overridden.
-* Group Database migration files by {Ronin::VERSION}.
-* Ensure that {Ronin::Database::Migrations} preserves the order of loaded
+* Group Database migration files by `Ronin::VERSION`.
+* Ensure that `Ronin::Database::Migrations` preserves the order of loaded
migrations.
-* Set the length of {Ronin::Password.clear_text} to 256.
-* Set the length of {Ronin::License.url} to 256.
-* Merged `Ronin::Model::Cacheable` into {Ronin::Script}.
+* Set the length of `Ronin::Password.clear_text` to 256.
+* Set the length of `Ronin::License.url` to 256.
+* Merged `Ronin::Model::Cacheable` into `Ronin::Script`.
* Repositories can now cache/load scripts from the `scripts/` directory.
-* Disable {Ronin::UI::Console.short_errors?} if the `VERBOSE` environment
+* Disable `Ronin::UI::Console.short_errors?` if the `VERBOSE` environment
variable is set.
-* Disable {Ronin::UI::Console.color?} if the `STDOUT` is a tty.
+* Disable `Ronin::UI::Console.color?` if the `STDOUT` is a tty.
* Set `Ronin::UI::Output.handler` to `Ronin::UI::Output::Terminal::Raw`,
when `STDOUT` is not a tty.
* Enable `Ronin::UI::Output.verbose?` if `$VERBOSE` or `$DEBUG` are set.
-* {Ronin::UI::CLI::ModelCommand#setup} now automatically calls
- {Ronin::Database.setup}, before executing the command.
-* Merged `query_method` into {Ronin::UI::CLI::ModelCommand#query}.
-* Allow {Ronin::UI::CLI::ModelCommand.query_option} to map to Model
+* `Ronin::UI::CLI::ModelCommand#setup` now automatically calls
+ `Ronin::Database.setup`, before executing the command.
+* Merged `query_method` into `Ronin::UI::CLI::ModelCommand#query`.
+* Allow `Ronin::UI::CLI::ModelCommand.query_option` to map to Model
properties.
* Use DataMapper query-paths to improve performance of query-helper methods.
* Removed `Ronin::Target#directory`.
### 1.0.0 / 2011-03-25
@@ -275,33 +351,33 @@
* Require ripl-short_errors ~> 0.1.
* Require ripl-color_result ~> 0.2.
* Require thor ~> 0.14.3.
* Require [ronin-support] ~> 0.1.
* Added `ronin/bootstrap` which only loads configuration and the Database.
-* Added {Ronin::Database::Migrations}.
-* Added {Ronin::Model::HasUniqueName}.
-* Added {Ronin::Address}:
- * Added {Ronin::MACAddress}.
- * Added {Ronin::IPAddress}.
- * Added {Ronin::HostName}.
-* Added {Ronin::Port}:
- * Added {Ronin::TCPPort}.
- * Added {Ronin::UDPPort}.
-* Added {Ronin::Service}.
-* Added {Ronin::OpenPort}.
-* Added {Ronin::OSGuess}.
-* Added {Ronin::UserName}.
-* Added {Ronin::URL}:
- * Added {Ronin::URLScheme}.
- * Added {Ronin::URLQueryParam}.
-* Added {Ronin::EmailAddress}.
-* Added {Ronin::Credential}.
-* Added {Ronin::ServiceCredential}.
-* Added {Ronin::WebCredential}.
-* Added {Ronin::Organization}.
-* Added {Ronin::Campaign}.
-* Added {Ronin::Target}.
+* Added `Ronin::Database::Migrations`.
+* Added `Ronin::Model::HasUniqueName`.
+* Added `Ronin::Address`:
+ * Added `Ronin::MACAddress`.
+ * Added `Ronin::IPAddress`.
+ * Added `Ronin::HostName`.
+* Added `Ronin::Port`:
+ * Added `Ronin::TCPPort`.
+ * Added `Ronin::UDPPort`.
+* Added `Ronin::Service`.
+* Added `Ronin::OpenPort`.
+* Added `Ronin::OSGuess`.
+* Added `Ronin::UserName`.
+* Added `Ronin::URL`:
+ * Added `Ronin::URLScheme`.
+ * Added `Ronin::URLQueryParam`.
+* Added `Ronin::EmailAddress`.
+* Added `Ronin::Credential`.
+* Added `Ronin::ServiceCredential`.
+* Added `Ronin::WebCredential`.
+* Added `Ronin::Organization`.
+* Added `Ronin::Campaign`.
+* Added `Ronin::Target`.
* Added `Ronin::Engine`.
* Added `Ronin::UI::Output::Terminal::Raw`.
* Added `Ronin::UI::Output::Terminal::Color`.
* Added the `ronin-repos` command for listing, adding, installing and
uninstalling Repositories.
@@ -317,25 +393,25 @@
Email addresses from the Database.
* Added the `ronin-creds` command for listing, importing and exporting
credentials from the Database.
* Added the `ronin-campaigns` command for listing, importing and exporting
Campaigns from the Database.
-* Renamed `Ronin::Product` to {Ronin::Software}.
-* Renamed `Ronin::UI::CommandLine` to {Ronin::UI::CLI}.
-* Renamed `Ronin::Platform::Overlay` to {Ronin::Repository}.
+* Renamed `Ronin::Product` to `Ronin::Software`.
+* Renamed `Ronin::UI::CommandLine` to `Ronin::UI::CLI`.
+* Renamed `Ronin::Platform::Overlay` to `Ronin::Repository`.
* Renamed `Ronin::Platform::CachedFile` to `Ronin::CachedFile`.
* Renamed `Ronin::Platform::Cacheable` to `Ronin::Model::Cacheable`.
* Removed `Ronin::Platform::Extension`.
* Removed `Ronin::Platform`.
* Moved the `ronin-add`, `ronin-install`, `ronin-list` and `ronin-uninstall`
commands into the `ronin-repos` command.
* Switched from [Jeweler](https://github.com/technicalpickles/jeweler)
to [Ore](http://github.com/ruby-ore/ore) and [Bundler](http://gembundler.com).
* Use [OpenNamespace](http://github.com/postmodern/open_namespace) to auto-load
- everything in the {Ronin} namespace.
+ everything in the `Ronin` namespace.
* Switched from DataMapper auto-migrations to explicit-migrations.
-* Switched {Ronin::UI::Console} from IRB to
+* Switched `Ronin::UI::Console` from IRB to
[Ripl](https://github.com/cldwalker/ripl):
* Enabled result coloring with
[ripl-color_result](https://github.com/janlelis/ripl-color_result).
* Enabled short errors with
[ripl-short_error](https://github.com/janlelis/ripl-misc/blob/master/lib/ripl/short_errors.rb).
@@ -771,6 +847,21 @@
* Provides an IRB styled console with:
* Tab-completion enabled.
* Auto-indentation enabled.
* Pretty-Print loaded.
-[ronin-support]: https://github.com/ronin-rb/ronin-support
+[open_namespace]: https://github.com/postmodern/open_namespace#readme
+[rouge]: https://github.com/rouge-ruby/rouge#readme
+[async-io]: https://github.com/socketry/async-io#readme
+[wordlist]: https://github.com/postmodern/wordlist.rb#readme
+
+[ronin-support]: https://github.com/ronin-rb/ronin-support#readme
+[ronin-repos]: https://github.com/ronin-rb/ronin-repos#readme
+[ronin-core]: https://github.com/ronin-rb/ronin-core#readme
+[ronin-db]: https://github.com/ronin-rb/ronin-db#readme
+[ronin-fuzzer]: https://github.com/ronin-rb/ronin-fuzzer#readme
+[ronin-web]: https://github.com/ronin-rb/ronin-web#readme
+[ronin-code-asm]: https://github.com/ronin-rb/ronin-code-asm#readme
+[ronin-code-sql]: https://github.com/ronin-rb/ronin-code-sql#readme
+[ronin-payloads]: https://github.com/ronin-rb/ronin-payloads#readme
+[ronin-exploits]: https://github.com/ronin-rb/ronin-exploits#readme
+[ronin-vulns]: https://github.com/ronin-rb/ronin-vulns#readme