ronin 0.2.4 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
- data/History.txt +95 -0
- data/Manifest.txt +55 -25
- data/README.txt +64 -52
- data/Rakefile +21 -14
- data/bin/ronin +1 -1
- data/bin/ronin-add +1 -1
- data/bin/ronin-console +1 -1
- data/bin/ronin-help +1 -1
- data/bin/ronin-install +1 -1
- data/bin/ronin-list +1 -1
- data/bin/ronin-remove +1 -1
- data/bin/ronin-uninstall +1 -1
- data/bin/ronin-update +1 -1
- data/lib/ronin.rb +2 -4
- data/lib/ronin/arch.rb +66 -21
- data/lib/ronin/author.rb +27 -18
- data/lib/ronin/cacheable.rb +63 -23
- data/lib/ronin/code/emittable.rb +1 -4
- data/lib/ronin/code/reference.rb +2 -5
- data/lib/ronin/code/symbol_table.rb +1 -4
- data/lib/ronin/code/token.rb +1 -4
- data/lib/ronin/config.rb +31 -10
- data/lib/ronin/database.rb +1 -4
- data/lib/ronin/database/database.rb +42 -23
- data/lib/ronin/database/exceptions.rb +1 -4
- data/lib/ronin/database/exceptions/invalid_config.rb +1 -4
- data/lib/ronin/environment.rb +1 -5
- data/lib/ronin/extensions.rb +1 -5
- data/lib/ronin/extensions/array.rb +8 -6
- data/lib/ronin/extensions/file.rb +9 -4
- data/lib/ronin/extensions/ip_addr.rb +33 -13
- data/lib/ronin/extensions/kernel.rb +44 -9
- data/lib/ronin/extensions/meta.rb +1 -4
- data/lib/ronin/extensions/string.rb +8 -7
- data/lib/ronin/extensions/uri.rb +1 -4
- data/lib/ronin/extensions/uri/http.rb +1 -48
- data/lib/ronin/extensions/uri/query_params.rb +27 -8
- data/lib/ronin/formatting.rb +1 -4
- data/lib/ronin/formatting/binary.rb +1 -4
- data/lib/ronin/formatting/digest.rb +1 -4
- data/lib/ronin/formatting/extensions.rb +1 -4
- data/lib/ronin/formatting/extensions/binary.rb +1 -4
- data/lib/ronin/formatting/extensions/binary/file.rb +3 -28
- data/lib/ronin/formatting/extensions/binary/integer.rb +31 -12
- data/lib/ronin/formatting/extensions/binary/string.rb +59 -36
- data/lib/ronin/formatting/extensions/digest.rb +1 -4
- data/lib/ronin/formatting/extensions/digest/string.rb +31 -9
- data/lib/ronin/formatting/extensions/http.rb +1 -4
- data/lib/ronin/formatting/extensions/http/string.rb +16 -9
- data/lib/ronin/formatting/extensions/text.rb +1 -4
- data/lib/ronin/formatting/extensions/text/array.rb +17 -7
- data/lib/ronin/formatting/extensions/text/string.rb +70 -27
- data/lib/ronin/formatting/http.rb +1 -4
- data/lib/ronin/formatting/text.rb +1 -4
- data/lib/ronin/license.rb +72 -65
- data/lib/ronin/model.rb +1 -4
- data/lib/ronin/model/has_description.rb +37 -8
- data/lib/ronin/model/has_license.rb +12 -8
- data/lib/ronin/model/has_name.rb +10 -7
- data/lib/ronin/model/has_version.rb +14 -4
- data/lib/ronin/model/model.rb +71 -14
- data/lib/ronin/network.rb +1 -4
- data/lib/ronin/network/esmtp.rb +1 -4
- data/lib/ronin/network/extensions.rb +1 -4
- data/lib/ronin/network/extensions/esmtp.rb +1 -4
- data/lib/ronin/network/extensions/esmtp/net.rb +49 -21
- data/lib/ronin/network/extensions/http.rb +1 -4
- data/lib/ronin/network/extensions/http/net.rb +319 -531
- data/lib/ronin/network/extensions/imap.rb +1 -4
- data/lib/ronin/network/extensions/imap/net.rb +50 -23
- data/lib/ronin/network/extensions/pop3.rb +1 -4
- data/lib/ronin/network/extensions/pop3/net.rb +40 -17
- data/lib/ronin/network/extensions/smtp.rb +1 -4
- data/lib/ronin/network/extensions/smtp/net.rb +49 -21
- data/lib/ronin/network/extensions/tcp.rb +1 -4
- data/lib/ronin/network/extensions/tcp/net.rb +234 -31
- data/lib/ronin/network/extensions/telnet.rb +1 -4
- data/lib/ronin/network/extensions/telnet/net.rb +83 -51
- data/lib/ronin/network/extensions/udp.rb +1 -4
- data/lib/ronin/network/extensions/udp/net.rb +164 -27
- data/lib/ronin/{sessions.rb → network/helpers.rb} +10 -13
- data/lib/ronin/network/helpers/esmtp.rb +129 -0
- data/lib/ronin/{sessions/session.rb → network/helpers/helper.rb} +25 -17
- data/lib/ronin/network/helpers/http.rb +444 -0
- data/lib/ronin/network/helpers/imap.rb +115 -0
- data/lib/ronin/network/helpers/pop3.rb +110 -0
- data/lib/ronin/network/helpers/smtp.rb +123 -0
- data/lib/ronin/network/helpers/tcp.rb +309 -0
- data/lib/ronin/network/helpers/telnet.rb +158 -0
- data/lib/ronin/network/helpers/udp.rb +197 -0
- data/lib/ronin/network/http.rb +3 -156
- data/lib/ronin/network/http/exceptions.rb +1 -4
- data/lib/ronin/network/http/exceptions/unknown_request.rb +1 -4
- data/lib/ronin/network/http/http.rb +214 -0
- data/lib/ronin/network/http/proxy.rb +308 -0
- data/lib/ronin/network/imap.rb +7 -6
- data/lib/ronin/network/pop3.rb +7 -6
- data/lib/ronin/network/smtp.rb +1 -4
- data/lib/ronin/network/smtp/email.rb +34 -18
- data/lib/ronin/network/smtp/smtp.rb +19 -7
- data/lib/ronin/network/tcp.rb +1 -4
- data/lib/ronin/network/telnet.rb +25 -12
- data/lib/ronin/network/udp.rb +1 -4
- data/lib/ronin/os.rb +43 -21
- data/lib/ronin/path.rb +29 -9
- data/lib/ronin/platform.rb +1 -4
- data/lib/ronin/platform/exceptions.rb +1 -4
- data/lib/ronin/platform/exceptions/extension_not_found.rb +1 -4
- data/lib/ronin/platform/exceptions/overlay_cached.rb +1 -4
- data/lib/ronin/platform/exceptions/overlay_not_found.rb +1 -4
- data/lib/ronin/platform/extension.rb +195 -52
- data/lib/ronin/platform/extension_cache.rb +60 -24
- data/lib/ronin/platform/maintainer.rb +15 -8
- data/lib/ronin/platform/object_cache.rb +29 -8
- data/lib/ronin/platform/overlay.rb +82 -26
- data/lib/ronin/platform/overlay_cache.rb +179 -56
- data/lib/ronin/platform/platform.rb +154 -58
- data/lib/ronin/platform/ronin.rb +38 -11
- data/lib/ronin/product.rb +17 -17
- data/lib/ronin/rpc.rb +1 -4
- data/lib/ronin/rpc/call.rb +1 -4
- data/lib/ronin/rpc/client.rb +1 -4
- data/lib/ronin/rpc/console.rb +1 -4
- data/lib/ronin/rpc/exceptions.rb +1 -4
- data/lib/ronin/rpc/exceptions/not_implemented.rb +1 -4
- data/lib/ronin/rpc/exceptions/response_missing.rb +1 -4
- data/lib/ronin/rpc/response.rb +1 -4
- data/lib/ronin/rpc/service.rb +1 -4
- data/lib/ronin/rpc/shell.rb +1 -4
- data/lib/ronin/scanners.rb +1 -4
- data/lib/ronin/scanners/exceptions.rb +1 -4
- data/lib/ronin/scanners/exceptions/unknown_category.rb +1 -4
- data/lib/ronin/scanners/scanner.rb +82 -26
- data/lib/ronin/static.rb +1 -4
- data/lib/ronin/static/finders.rb +1 -4
- data/lib/ronin/static/static.rb +16 -7
- data/lib/ronin/templates.rb +2 -4
- data/lib/ronin/templates/erb.rb +24 -10
- data/lib/ronin/templates/template.rb +130 -0
- data/lib/ronin/ui.rb +2 -6
- data/lib/ronin/ui/command_line.rb +1 -4
- data/lib/ronin/ui/command_line/command.rb +137 -68
- data/lib/ronin/ui/command_line/command_line.rb +52 -29
- data/lib/ronin/ui/command_line/commands/add.rb +39 -67
- data/lib/ronin/ui/command_line/commands/console.rb +23 -27
- data/lib/ronin/ui/command_line/commands/help.rb +10 -29
- data/lib/ronin/ui/command_line/commands/install.rb +31 -56
- data/lib/ronin/ui/command_line/commands/list.rb +34 -52
- data/lib/ronin/ui/command_line/commands/remove.rb +12 -32
- data/lib/ronin/ui/command_line/commands/uninstall.rb +11 -31
- data/lib/ronin/ui/command_line/commands/update.rb +15 -35
- data/lib/ronin/ui/command_line/exceptions.rb +1 -4
- data/lib/ronin/ui/command_line/exceptions/unknown_command.rb +1 -4
- data/lib/ronin/ui/console.rb +54 -23
- data/lib/ronin/ui/hexdump.rb +1 -4
- data/lib/ronin/ui/hexdump/extensions.rb +1 -4
- data/lib/ronin/ui/hexdump/extensions/file.rb +8 -6
- data/lib/ronin/ui/hexdump/extensions/kernel.rb +4 -5
- data/lib/ronin/ui/hexdump/hexdump.rb +8 -5
- data/lib/ronin/{sessions/exceptions.rb → ui/output.rb} +3 -5
- data/lib/ronin/ui/output/handler.rb +121 -0
- data/lib/ronin/ui/output/helpers.rb +110 -0
- data/lib/ronin/ui/output/output.rb +144 -0
- data/lib/ronin/ui/shell.rb +38 -12
- data/lib/ronin/version.rb +2 -5
- data/lib/ronin/{sessions/exceptions/variable_missing.rb → yard.rb} +2 -10
- data/lib/ronin/{ronin.rb → yard/handlers.rb} +5 -15
- data/lib/ronin/yard/handlers/ruby.rb +27 -0
- data/lib/ronin/yard/handlers/ruby/base.rb +27 -0
- data/lib/ronin/yard/handlers/ruby/belongs_to_handler.rb +45 -0
- data/lib/ronin/yard/handlers/ruby/eval_block_handler.rb +18 -0
- data/lib/ronin/yard/handlers/ruby/has_handler.rb +49 -0
- data/lib/ronin/yard/handlers/ruby/legacy.rb +26 -0
- data/lib/ronin/yard/handlers/ruby/legacy/belongs_to_handler.rb +41 -0
- data/lib/ronin/yard/handlers/ruby/legacy/eval_block_handler.rb +19 -0
- data/lib/ronin/yard/handlers/ruby/legacy/has_handler.rb +34 -0
- data/lib/ronin/yard/handlers/ruby/legacy/metaclass_eval_handler.rb +21 -0
- data/lib/ronin/yard/handlers/ruby/legacy/property_handler.rb +41 -0
- data/lib/ronin/yard/handlers/ruby/legacy/scanner_handler.rb +61 -0
- data/lib/ronin/yard/handlers/ruby/metaclass_eval_handler.rb +18 -0
- data/lib/ronin/yard/handlers/ruby/property_handler.rb +45 -0
- data/lib/ronin/yard/handlers/ruby/scanner_handler.rb +66 -0
- data/spec/author_spec.rb +3 -3
- data/spec/extensions/classes/some_class.rb +2 -0
- data/spec/extensions/kernel_spec.rb +17 -0
- data/spec/extensions/uri/http_spec.rb +0 -31
- data/spec/formatting/binary/integer_spec.rb +4 -0
- data/spec/formatting/text/string_spec.rb +96 -0
- data/spec/license_spec.rb +6 -6
- data/spec/model/classes/basic_model.rb +13 -0
- data/spec/model/classes/custom_model.rb +17 -0
- data/spec/model/classes/described_model.rb +10 -0
- data/spec/model/has_description_spec.rb +42 -0
- data/spec/model/has_license_spec.rb +18 -4
- data/spec/model/model_spec.rb +68 -0
- data/spec/network/helpers/classes/test_helper.rb +11 -0
- data/spec/network/helpers/classes/uses_test_helper.rb +10 -0
- data/spec/network/helpers/helper_spec.rb +25 -0
- data/spec/network/{http_spec.rb → http/http_spec.rb} +0 -0
- data/spec/network/http/proxy_spec.rb +116 -0
- data/spec/os_spec.rb +4 -4
- data/spec/platform/extension_cache_spec.rb +14 -0
- data/spec/platform/extension_spec.rb +11 -0
- data/spec/platform/platform_spec.rb +8 -0
- data/spec/product_spec.rb +9 -9
- data/spec/spec_helper.rb +1 -1
- data/spec/templates/classes/{uses_erb.rb → example_erb.rb} +1 -1
- data/spec/templates/classes/example_template.rb +21 -0
- data/spec/templates/erb_spec.rb +2 -2
- data/spec/templates/helpers/static.rb +5 -0
- data/spec/templates/helpers/static/templates/_relative.erb +1 -0
- data/spec/templates/helpers/static/templates/example.erb +1 -0
- data/spec/templates/template_spec.rb +41 -0
- data/spec/ui/command_line/classes/test_command.rb +23 -0
- data/spec/ui/command_line/command_spec.rb +31 -0
- data/spec/ui/output_spec.rb +29 -0
- data/static/ronin/platform/overlay.xsl +135 -114
- data/tasks/spec.rb +1 -0
- data/tasks/yard.rb +18 -0
- metadata +98 -59
- metadata.gz.sig +0 -0
- data/TODO.txt +0 -15
- data/lib/ronin/extensions/hash.rb +0 -62
- data/lib/ronin/sessions/esmtp.rb +0 -57
- data/lib/ronin/sessions/http.rb +0 -678
- data/lib/ronin/sessions/imap.rb +0 -54
- data/lib/ronin/sessions/pop3.rb +0 -52
- data/lib/ronin/sessions/smtp.rb +0 -57
- data/lib/ronin/sessions/tcp.rb +0 -100
- data/lib/ronin/sessions/telnet.rb +0 -55
- data/lib/ronin/sessions/udp.rb +0 -73
- data/lib/ronin/ui/command_line/options.rb +0 -136
- data/lib/ronin/ui/diagnostics.rb +0 -66
- data/lib/ronin/ui/verbose.rb +0 -58
- data/spec/extensions/hash_spec.rb +0 -38
- data/spec/sessions/classes/test_session.rb +0 -11
- data/spec/sessions/classes/uses_test_session.rb +0 -10
- data/spec/sessions/session_spec.rb +0 -25
- data/spec/ui/verbose_spec.rb +0 -17
data/lib/ronin/ui/hexdump.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'ronin/ui/hexdump/hexdump'
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'ronin/ui/hexdump/extensions/file'
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,6 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'ronin/ui/hexdump/hexdump'
|
|
@@ -26,8 +23,13 @@ require 'ronin/ui/hexdump/hexdump'
|
|
|
26
23
|
class File
|
|
27
24
|
|
|
28
25
|
#
|
|
29
|
-
# Hexdumps the contents of the File
|
|
30
|
-
#
|
|
26
|
+
# Hexdumps the contents of the File.
|
|
27
|
+
#
|
|
28
|
+
# @param [String] path
|
|
29
|
+
# The path to the File to hexdump.
|
|
30
|
+
#
|
|
31
|
+
# @param [IO] output
|
|
32
|
+
# The output stream to print the hexdump to.
|
|
31
33
|
#
|
|
32
34
|
def self.hexdump(path,output=STDOUT)
|
|
33
35
|
self.open(path) do |file|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,14 +16,15 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
require 'ronin/ui/hexdump/hexdump'
|
|
25
22
|
|
|
26
23
|
module Kernel
|
|
27
24
|
#
|
|
28
|
-
# Hexdumps
|
|
25
|
+
# Hexdumps an object.
|
|
26
|
+
#
|
|
27
|
+
# @see Ronin::UI::Hexdump.dump
|
|
29
28
|
#
|
|
30
29
|
def hexdump(object,output=STDOUT)
|
|
31
30
|
Ronin::UI::Hexdump.dump(object,output)
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
-
# exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,14 +16,19 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
21
|
module Ronin
|
|
25
22
|
module UI
|
|
26
23
|
module Hexdump
|
|
27
24
|
#
|
|
28
|
-
# Hexdumps
|
|
25
|
+
# Hexdumps an object.
|
|
26
|
+
#
|
|
27
|
+
# @param [#each_byte] object
|
|
28
|
+
# The object to hexdump, must respond to the +each_byte+ method.
|
|
29
|
+
#
|
|
30
|
+
# @param [IO] output
|
|
31
|
+
# The output stream to print the hexdump to.
|
|
29
32
|
#
|
|
30
33
|
def Hexdump.dump(object,output=STDOUT)
|
|
31
34
|
index = 0
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
|
|
3
|
-
# Ronin - A ruby development platform designed for information security
|
|
4
|
-
# and data exploration tasks.
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
5
3
|
#
|
|
6
4
|
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
5
|
#
|
|
@@ -18,7 +16,7 @@
|
|
|
18
16
|
# You should have received a copy of the GNU General Public License
|
|
19
17
|
# along with this program; if not, write to the Free Software
|
|
20
18
|
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
21
|
-
#++
|
|
22
19
|
#
|
|
23
20
|
|
|
24
|
-
require 'ronin/
|
|
21
|
+
require 'ronin/ui/output/output'
|
|
22
|
+
require 'ronin/ui/output/helpers'
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
5
|
+
#
|
|
6
|
+
# This program is free software; you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
|
8
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
9
|
+
# (at your option) any later version.
|
|
10
|
+
#
|
|
11
|
+
# This program is distributed in the hope that it will be useful,
|
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
# GNU General Public License for more details.
|
|
15
|
+
#
|
|
16
|
+
# You should have received a copy of the GNU General Public License
|
|
17
|
+
# along with this program; if not, write to the Free Software
|
|
18
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
require 'thor/shell/basic'
|
|
22
|
+
require 'thor/shell/color'
|
|
23
|
+
|
|
24
|
+
module Ronin
|
|
25
|
+
module UI
|
|
26
|
+
module Output
|
|
27
|
+
module Handler
|
|
28
|
+
#
|
|
29
|
+
# The shell to use for output.
|
|
30
|
+
#
|
|
31
|
+
# @since 0.3.0
|
|
32
|
+
#
|
|
33
|
+
def self.shell
|
|
34
|
+
@@ronin_output_shell ||= Thor::Shell::Color.new
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
#
|
|
38
|
+
# Changes color output.
|
|
39
|
+
#
|
|
40
|
+
# @param [Boolean] mode
|
|
41
|
+
# The new color mode.
|
|
42
|
+
#
|
|
43
|
+
# @return [Boolean]
|
|
44
|
+
# The new color mode.
|
|
45
|
+
#
|
|
46
|
+
# @since 0.3.0
|
|
47
|
+
#
|
|
48
|
+
def Handler.color=(mode)
|
|
49
|
+
if mode
|
|
50
|
+
@@ronin_output_shell = Thor::Shell::Color.new
|
|
51
|
+
else
|
|
52
|
+
@@ronin_output_shell = Thor::Shell::Basic.new
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
return mode
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
#
|
|
59
|
+
# Prints one or more messages.
|
|
60
|
+
#
|
|
61
|
+
# @param [Array] messages
|
|
62
|
+
# The messages to print.
|
|
63
|
+
#
|
|
64
|
+
# @since 0.3.0
|
|
65
|
+
#
|
|
66
|
+
def self.puts(*messages)
|
|
67
|
+
Kernel.puts(*messages)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
#
|
|
71
|
+
# Prints one or more messages as +info+ messages.
|
|
72
|
+
#
|
|
73
|
+
# @param [Array] messages
|
|
74
|
+
# The messages to print.
|
|
75
|
+
#
|
|
76
|
+
# @since 0.3.0
|
|
77
|
+
#
|
|
78
|
+
def self.print_info(*messages)
|
|
79
|
+
shell.say messages.map { |mesg| "[-] #{mesg}" }.join($/), :green
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
#
|
|
83
|
+
# Prints one or more messages as +debug+ mssages.
|
|
84
|
+
#
|
|
85
|
+
# @param [Array] messages
|
|
86
|
+
# The messages to print.
|
|
87
|
+
#
|
|
88
|
+
# @since 0.3.0
|
|
89
|
+
#
|
|
90
|
+
def self.print_debug(*messages)
|
|
91
|
+
shell.say messages.map { |mesg| "[+] #{mesg}" }.join($/), :cyan
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
#
|
|
95
|
+
# Prints one or more messages as +warning+ mssages.
|
|
96
|
+
#
|
|
97
|
+
# @param [Array] messages
|
|
98
|
+
# The messages to print.
|
|
99
|
+
#
|
|
100
|
+
# @since 0.3.0
|
|
101
|
+
#
|
|
102
|
+
def self.print_warning(*messages)
|
|
103
|
+
shell.say messages.map { |mesg| "[*] #{mesg}" }.join($/), :yellow
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
#
|
|
107
|
+
# Prints one or more messages as +error+ mssages.
|
|
108
|
+
#
|
|
109
|
+
# @param [Array] messages
|
|
110
|
+
# The messages to print.
|
|
111
|
+
#
|
|
112
|
+
# @since 0.3.0
|
|
113
|
+
#
|
|
114
|
+
def self.print_error(*messages)
|
|
115
|
+
shell.say messages.map { |mesg| "[!] #{mesg}" }.join($/), :red
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
5
|
+
#
|
|
6
|
+
# This program is free software; you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
|
8
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
9
|
+
# (at your option) any later version.
|
|
10
|
+
#
|
|
11
|
+
# This program is distributed in the hope that it will be useful,
|
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
# GNU General Public License for more details.
|
|
15
|
+
#
|
|
16
|
+
# You should have received a copy of the GNU General Public License
|
|
17
|
+
# along with this program; if not, write to the Free Software
|
|
18
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
require 'ronin/ui/output/output'
|
|
22
|
+
|
|
23
|
+
module Ronin
|
|
24
|
+
module UI
|
|
25
|
+
module Output
|
|
26
|
+
module Helpers
|
|
27
|
+
protected
|
|
28
|
+
|
|
29
|
+
#
|
|
30
|
+
# Prints one or more messages.
|
|
31
|
+
#
|
|
32
|
+
# @param [Array] messages
|
|
33
|
+
# The messages to print.
|
|
34
|
+
#
|
|
35
|
+
# @example
|
|
36
|
+
# puts 'some data'
|
|
37
|
+
#
|
|
38
|
+
# @since 0.3.0
|
|
39
|
+
#
|
|
40
|
+
def puts(*messages)
|
|
41
|
+
Output.handler.puts(*messages) unless Output.silent?
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
#
|
|
45
|
+
# Prints one or more messages as +info+ output.
|
|
46
|
+
#
|
|
47
|
+
# @param [Array] messages
|
|
48
|
+
# The messages to print.
|
|
49
|
+
#
|
|
50
|
+
# @example
|
|
51
|
+
# print_info 'Connecting ...'
|
|
52
|
+
#
|
|
53
|
+
# @since 0.3.0
|
|
54
|
+
#
|
|
55
|
+
def print_info(*messages)
|
|
56
|
+
Output.handler.print_info(*messages) unless Output.silent?
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
#
|
|
60
|
+
# Prints one or more messages as +debug+ output.
|
|
61
|
+
#
|
|
62
|
+
# @param [Array] messages
|
|
63
|
+
# The messages to print.
|
|
64
|
+
#
|
|
65
|
+
# @example
|
|
66
|
+
# print_debug "var1: #{var1.inspect}"
|
|
67
|
+
#
|
|
68
|
+
# @since 0.3.0
|
|
69
|
+
#
|
|
70
|
+
def print_debug(*messages)
|
|
71
|
+
if (Output.verbose? && !(Output.silent?))
|
|
72
|
+
Output.handler.print_debug(*messages)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
#
|
|
77
|
+
# Prints one or more messages as +warning+ output.
|
|
78
|
+
#
|
|
79
|
+
# @param [Array] messages
|
|
80
|
+
# The messages to print.
|
|
81
|
+
#
|
|
82
|
+
# @example
|
|
83
|
+
# print_warning 'Detecting a restricted character in the buffer'
|
|
84
|
+
#
|
|
85
|
+
# @since 0.3.0
|
|
86
|
+
#
|
|
87
|
+
def print_warning(*messages)
|
|
88
|
+
if (Output.verbose? && !(Output.silent?))
|
|
89
|
+
Output.handler.print_warning(*messages)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
#
|
|
94
|
+
# Prints one or more messages as +error+ output.
|
|
95
|
+
#
|
|
96
|
+
# @param [Array] messages
|
|
97
|
+
# The messages to print.
|
|
98
|
+
#
|
|
99
|
+
# @example
|
|
100
|
+
# print_error 'Could not connect!'
|
|
101
|
+
#
|
|
102
|
+
# @since 0.3.0
|
|
103
|
+
#
|
|
104
|
+
def print_error(*messages)
|
|
105
|
+
Output.handler.print_error(*messages) unless Output.silent?
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Ronin - A Ruby platform for exploit development and security research.
|
|
3
|
+
#
|
|
4
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
5
|
+
#
|
|
6
|
+
# This program is free software; you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
|
8
|
+
# the Free Software Foundation; either version 2 of the License, or
|
|
9
|
+
# (at your option) any later version.
|
|
10
|
+
#
|
|
11
|
+
# This program is distributed in the hope that it will be useful,
|
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
# GNU General Public License for more details.
|
|
15
|
+
#
|
|
16
|
+
# You should have received a copy of the GNU General Public License
|
|
17
|
+
# along with this program; if not, write to the Free Software
|
|
18
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
require 'ronin/ui/output/handler'
|
|
22
|
+
|
|
23
|
+
module Ronin
|
|
24
|
+
module UI
|
|
25
|
+
module Output
|
|
26
|
+
#
|
|
27
|
+
# @return [Boolean]
|
|
28
|
+
# Specifies whether verbose output is enabled.
|
|
29
|
+
#
|
|
30
|
+
# @since 0.3.0
|
|
31
|
+
#
|
|
32
|
+
def Output.verbose?
|
|
33
|
+
(@@ronin_verbose ||= :quiet) == :verbose
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
#
|
|
37
|
+
# @return [Boolean]
|
|
38
|
+
# Specifies whether quiet output is enabled.
|
|
39
|
+
#
|
|
40
|
+
# @since 0.3.0
|
|
41
|
+
#
|
|
42
|
+
def Output.quiet?
|
|
43
|
+
(@@ronin_verbose ||= :quiet) == :quiet
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
#
|
|
47
|
+
# @return [Boolean]
|
|
48
|
+
# Specifies whether silent output is enabled.
|
|
49
|
+
#
|
|
50
|
+
# @since 0.3.0
|
|
51
|
+
#
|
|
52
|
+
def Output.silent?
|
|
53
|
+
(@@ronin_verbose ||= :quiet) == :silent
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
#
|
|
57
|
+
# Changes the verbose mode.
|
|
58
|
+
#
|
|
59
|
+
# @param [Boolean] mode
|
|
60
|
+
# The new verbose mode.
|
|
61
|
+
#
|
|
62
|
+
# @return [Boolean]
|
|
63
|
+
# The new verbose mode.
|
|
64
|
+
#
|
|
65
|
+
# @since 0.3.0
|
|
66
|
+
#
|
|
67
|
+
def Output.verbose=(mode)
|
|
68
|
+
if mode
|
|
69
|
+
@@ronin_verbose = :verbose
|
|
70
|
+
else
|
|
71
|
+
@@ronin_verbose = :quiet
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
return mode
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
#
|
|
78
|
+
# Changes verbose output.
|
|
79
|
+
#
|
|
80
|
+
# @param [Boolean] mode
|
|
81
|
+
# The new quiet mode.
|
|
82
|
+
#
|
|
83
|
+
# @return [Boolean]
|
|
84
|
+
# The new quiet mode.
|
|
85
|
+
#
|
|
86
|
+
# @since 0.3.0
|
|
87
|
+
#
|
|
88
|
+
def Output.quiet=(mode)
|
|
89
|
+
if mode
|
|
90
|
+
@@ronin_verbose = :quiet
|
|
91
|
+
else
|
|
92
|
+
@@ronin_verbose = :verbose
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
return mode
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
#
|
|
99
|
+
# Changes verbose output.
|
|
100
|
+
#
|
|
101
|
+
# @param [Boolean] mode
|
|
102
|
+
# The new quiet mode.
|
|
103
|
+
#
|
|
104
|
+
# @return [Boolean]
|
|
105
|
+
# The new quiet mode.
|
|
106
|
+
#
|
|
107
|
+
# @since 0.3.0
|
|
108
|
+
#
|
|
109
|
+
def Output.silent=(mode)
|
|
110
|
+
if mode
|
|
111
|
+
@@ronin_verbose = :silent
|
|
112
|
+
else
|
|
113
|
+
@@ronin_verbose = :quiet
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
return mode
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
#
|
|
120
|
+
# @return [Ronin::UI::Output::Handler]
|
|
121
|
+
# The current Output handler.
|
|
122
|
+
#
|
|
123
|
+
# @since 0.3.0
|
|
124
|
+
#
|
|
125
|
+
def Output.handler
|
|
126
|
+
@@ronin_output ||= Handler
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
#
|
|
130
|
+
# Sets the current Output handler.
|
|
131
|
+
#
|
|
132
|
+
# @param [Handler] new_handler
|
|
133
|
+
# The new output handler to use. Must provide the +puts+,
|
|
134
|
+
# +print_info+, +print_debug+, +print_warning+ and +print_error+
|
|
135
|
+
# class methods.
|
|
136
|
+
#
|
|
137
|
+
# @since 0.3.0
|
|
138
|
+
#
|
|
139
|
+
def Output.handler=(new_handler)
|
|
140
|
+
@@ronin_output = new_handler
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
end
|
|
144
|
+
end
|