ronin 0.1.2 → 0.1.3
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/History.txt +58 -25
- data/Manifest.txt +15 -16
- data/README.txt +16 -11
- data/Rakefile +9 -7
- data/TODO.txt +6 -1
- data/lib/ronin.rb +1 -1
- data/lib/ronin/arch.rb +7 -15
- data/lib/ronin/author.rb +1 -1
- data/lib/ronin/cache.rb +1 -1
- data/lib/ronin/cache/cache.rb +1 -1
- data/lib/ronin/cache/config.rb +1 -1
- data/lib/ronin/cache/exceptions.rb +1 -1
- data/lib/ronin/cache/exceptions/extension_not_found.rb +1 -1
- data/lib/ronin/cache/exceptions/overlay_cached.rb +1 -1
- data/lib/ronin/cache/exceptions/overlay_not_found.rb +1 -1
- data/lib/ronin/cache/extension.rb +15 -190
- data/lib/ronin/cache/extension_cache.rb +2 -2
- data/lib/ronin/cache/maintainer.rb +1 -1
- data/lib/ronin/cache/overlay.rb +8 -7
- data/lib/ronin/cache/overlay_cache.rb +1 -1
- data/lib/ronin/cache/ronin.rb +1 -1
- data/lib/ronin/chars.rb +1 -1
- data/lib/ronin/chars/char_set.rb +1 -1
- data/lib/ronin/chars/chars.rb +1 -1
- data/lib/ronin/code/emittable.rb +1 -1
- data/lib/ronin/code/reference.rb +1 -1
- data/lib/ronin/code/symbol_table.rb +1 -1
- data/lib/ronin/code/token.rb +1 -1
- data/lib/ronin/config.rb +16 -9
- data/lib/ronin/database.rb +2 -113
- data/lib/ronin/database/database.rb +124 -0
- data/lib/ronin/{exceptions/unknown_context.rb → database/exceptions.rb} +2 -5
- data/lib/ronin/{exceptions/context_not_found.rb → database/exceptions/invalid_config.rb} +4 -2
- data/lib/ronin/extensions.rb +1 -1
- data/lib/ronin/extensions/hash.rb +1 -1
- data/lib/ronin/extensions/meta.rb +1 -1
- data/lib/ronin/extensions/string.rb +1 -1
- data/lib/ronin/extensions/uri.rb +1 -1
- data/lib/ronin/extensions/uri/http.rb +1 -1
- data/lib/ronin/extensions/uri/query_params.rb +1 -1
- data/lib/ronin/formatting.rb +1 -1
- data/lib/ronin/formatting/binary.rb +1 -1
- data/lib/ronin/formatting/digest.rb +1 -1
- data/lib/ronin/formatting/extensions.rb +1 -1
- data/lib/ronin/formatting/extensions/binary.rb +1 -1
- data/lib/ronin/formatting/extensions/binary/integer.rb +1 -1
- data/lib/ronin/formatting/extensions/binary/string.rb +1 -1
- data/lib/ronin/formatting/extensions/digest.rb +1 -1
- data/lib/ronin/formatting/extensions/digest/string.rb +1 -1
- data/lib/ronin/formatting/extensions/html.rb +1 -1
- data/lib/ronin/formatting/extensions/html/string.rb +1 -1
- data/lib/ronin/formatting/extensions/http.rb +1 -1
- data/lib/ronin/formatting/extensions/http/string.rb +1 -1
- data/lib/ronin/formatting/extensions/text.rb +1 -1
- data/lib/ronin/formatting/extensions/text/string.rb +1 -1
- data/lib/ronin/formatting/html.rb +1 -1
- data/lib/ronin/formatting/http.rb +1 -1
- data/lib/ronin/formatting/text.rb +1 -1
- data/lib/ronin/{pending_context.rb → has_license.rb} +21 -22
- data/lib/ronin/hexdump.rb +1 -1
- data/lib/ronin/hexdump/extensions.rb +1 -1
- data/lib/ronin/hexdump/extensions/file.rb +1 -1
- data/lib/ronin/hexdump/extensions/kernel.rb +1 -1
- data/lib/ronin/hexdump/hexdump.rb +1 -1
- data/lib/ronin/license.rb +10 -15
- data/lib/ronin/model.rb +14 -12
- data/lib/ronin/models.rb +2 -2
- data/lib/ronin/network.rb +1 -1
- data/lib/ronin/network/esmtp.rb +1 -1
- data/lib/ronin/network/extensions.rb +1 -1
- data/lib/ronin/network/extensions/esmtp.rb +1 -1
- data/lib/ronin/network/extensions/esmtp/net.rb +1 -1
- data/lib/ronin/network/extensions/http.rb +1 -1
- data/lib/ronin/network/extensions/http/net.rb +1 -1
- data/lib/ronin/network/extensions/imap.rb +1 -1
- data/lib/ronin/network/extensions/imap/net.rb +1 -1
- data/lib/ronin/network/extensions/pop3.rb +1 -1
- data/lib/ronin/network/extensions/pop3/net.rb +1 -1
- data/lib/ronin/network/extensions/smtp.rb +1 -1
- data/lib/ronin/network/extensions/smtp/net.rb +1 -1
- data/lib/ronin/network/extensions/tcp.rb +1 -1
- data/lib/ronin/network/extensions/tcp/net.rb +17 -1
- data/lib/ronin/network/extensions/telnet.rb +1 -1
- data/lib/ronin/network/extensions/telnet/net.rb +1 -1
- data/lib/ronin/network/extensions/udp.rb +1 -1
- data/lib/ronin/network/extensions/udp/net.rb +1 -1
- data/lib/ronin/network/http.rb +1 -1
- data/lib/ronin/network/http/exceptions.rb +1 -1
- data/lib/ronin/network/http/exceptions/unknown_request.rb +1 -1
- data/lib/ronin/network/imap.rb +1 -1
- data/lib/ronin/network/pop3.rb +1 -1
- data/lib/ronin/network/smtp.rb +1 -1
- data/lib/ronin/network/smtp/email.rb +1 -1
- data/lib/ronin/network/smtp/smtp.rb +1 -1
- data/lib/ronin/network/tcp.rb +1 -1
- data/lib/ronin/network/telnet.rb +1 -1
- data/lib/ronin/network/udp.rb +1 -1
- data/lib/ronin/objectify.rb +24 -0
- data/lib/ronin/{exceptions/invalid_database_config.rb → objectify/exceptions.rb} +3 -5
- data/lib/ronin/{exceptions → objectify/exceptions}/object_context_not_found.rb +1 -1
- data/lib/ronin/{exceptions → objectify/exceptions}/unknown_object_context.rb +1 -1
- data/lib/ronin/{object_context.rb → objectify/objectify.rb} +54 -45
- data/lib/ronin/path.rb +1 -1
- data/lib/ronin/platform.rb +3 -1
- data/lib/ronin/product.rb +2 -1
- data/lib/ronin/ronin.rb +10 -10
- data/lib/ronin/rpc.rb +1 -1
- data/lib/ronin/rpc/call.rb +1 -1
- data/lib/ronin/rpc/client.rb +1 -1
- data/lib/ronin/rpc/console.rb +1 -1
- data/lib/ronin/rpc/exceptions.rb +1 -1
- data/lib/ronin/rpc/exceptions/not_implemented.rb +1 -1
- data/lib/ronin/rpc/exceptions/response_missing.rb +1 -1
- data/lib/ronin/rpc/response.rb +1 -1
- data/lib/ronin/rpc/service.rb +1 -1
- data/lib/ronin/rpc/shell.rb +1 -1
- data/lib/ronin/sessions.rb +1 -1
- data/lib/ronin/sessions/esmtp.rb +6 -8
- data/lib/ronin/sessions/http.rb +1 -1
- data/lib/ronin/sessions/imap.rb +6 -8
- data/lib/ronin/sessions/pop3.rb +6 -8
- data/lib/ronin/sessions/session.rb +1 -1
- data/lib/ronin/sessions/smtp.rb +6 -8
- data/lib/ronin/sessions/tcp.rb +48 -36
- data/lib/ronin/sessions/telnet.rb +7 -10
- data/lib/ronin/sessions/udp.rb +28 -29
- data/lib/ronin/sessions/web.rb +5 -7
- data/lib/ronin/target.rb +1 -0
- data/lib/ronin/translators/translator.rb +1 -1
- data/lib/ronin/ui/command_line.rb +1 -1
- data/lib/ronin/ui/command_line/command.rb +1 -1
- data/lib/ronin/ui/command_line/command_line.rb +7 -2
- data/lib/ronin/ui/command_line/commands.rb +2 -2
- data/lib/ronin/ui/command_line/commands/add.rb +8 -8
- data/lib/ronin/ui/command_line/commands/default.rb +1 -1
- data/lib/ronin/ui/command_line/commands/extension.rb +13 -26
- data/lib/ronin/ui/command_line/commands/help.rb +1 -1
- data/lib/ronin/ui/command_line/commands/install.rb +7 -7
- data/lib/ronin/ui/command_line/commands/list.rb +13 -7
- data/lib/ronin/ui/command_line/commands/overlay.rb +1 -1
- data/lib/ronin/ui/command_line/commands/remove.rb +4 -4
- data/lib/ronin/ui/command_line/commands/uninstall.rb +4 -4
- data/lib/ronin/ui/command_line/commands/update.rb +3 -3
- data/lib/ronin/ui/command_line/exceptions.rb +1 -1
- data/lib/ronin/ui/command_line/exceptions/unknown_command.rb +1 -1
- data/lib/ronin/ui/command_line/options.rb +1 -1
- data/lib/ronin/ui/command_line/param_parser.rb +73 -0
- data/lib/ronin/ui/console.rb +1 -1
- data/lib/ronin/ui/shell.rb +1 -1
- data/lib/ronin/version.rb +2 -2
- data/lib/ronin/web.rb +1 -1
- data/lib/ronin/web/web.rb +1 -1
- data/spec/chars/char_set_spec.rb +116 -118
- data/spec/chars/chars_spec.rb +54 -63
- data/spec/formatting/{binary_spec.rb → binary/integer_spec.rb} +0 -19
- data/spec/formatting/binary/string_spec.rb +32 -0
- data/spec/{object_context/object_context_spec.rb → objectify/objectify_spec.rb} +5 -3
- data/spec/path_spec.rb +21 -23
- data/spec/translators/translator_spec.rb +38 -40
- data/spec/ui/command_line/param_parser_spec.rb +58 -0
- data/static/extension.rb +9 -0
- metadata +43 -24
- data/lib/ronin/context.rb +0 -236
- data/spec/context/context_spec.rb +0 -84
- data/spec/context/helpers/book_context.rb +0 -15
- data/spec/context/helpers/book_review_context.rb +0 -21
- data/spec/context/helpers/contexts/neuromancer_review.rb +0 -15
- data/spec/context/helpers/contexts/snow_crash.rb +0 -8
- data/static/extension.rb.erb +0 -16
data/History.txt
CHANGED
|
@@ -1,37 +1,70 @@
|
|
|
1
|
+
=== 0.1.3 / 2008-01-08
|
|
2
|
+
|
|
3
|
+
* Moved Context into the Contextify library.
|
|
4
|
+
* Require dm-core >= 0.9.9.
|
|
5
|
+
* Require dm-predefined >= 0.1.0.
|
|
6
|
+
* Require parameters >= 0.1.2.
|
|
7
|
+
* Require contextify >= 0.1.0.
|
|
8
|
+
* Require reverse-require >= 0.3.1.
|
|
9
|
+
* Renamed Ronin::ObjectContext to Ronin::Objectify.
|
|
10
|
+
* Added the MIT license to the Ronin::License model, using dm-predefined.
|
|
11
|
+
* Added Ronin::HasLicense mixin for adding licenses to a model.
|
|
12
|
+
* Added Net.tcp_send and Ronin::Sessions::TCP#tcp_send for quickly sending
|
|
13
|
+
data through a TCP connection then closing it.
|
|
14
|
+
* Added Ronin::UI::CommandLine::ParamParser for parsing command-line
|
|
15
|
+
options into a Hash of parameters.
|
|
16
|
+
* Automatically create the <tt>~/.ronin/config/</tt> directory.
|
|
17
|
+
* Refactored Ronin::Objectify and how it uses primary keys.
|
|
18
|
+
* All Ronin::Session mixins use standard naming conventions for defining
|
|
19
|
+
the 'host' and 'port' parameters.
|
|
20
|
+
* Removed Ronin::Cache::Extension dependencies.
|
|
21
|
+
* Filter out the 'objects' directory from Ronin::Cache::Overlay#extensions.
|
|
22
|
+
* Improved tearing down of Extensions at exit.
|
|
23
|
+
* Improved output formatting of the +list+ sub-command.
|
|
24
|
+
* Ronin::UI::CommandLine.run now prints any exceptions and exits.
|
|
25
|
+
* Cleaned up the specs.
|
|
26
|
+
* Added more specs.
|
|
27
|
+
* Added more documentation.
|
|
28
|
+
|
|
1
29
|
=== 0.1.2 / 2008-12-10
|
|
2
30
|
|
|
3
31
|
* Require do_sqlite3 >= 0.9.9, since version 0.9.8 was totally broken.
|
|
4
32
|
* Require reverse-require >= 0.2.0, for improved performance.
|
|
5
33
|
* Require Spidr >= 0.1.3.
|
|
6
34
|
* Moved Ronin::Parameters into the parameters 0.1.0 RubyGem.
|
|
7
|
-
* Added a Hexdump module:
|
|
8
|
-
* Provides Hexdump.dump and Kernel#hexdump, which can hexdump any
|
|
9
|
-
that supports the #each_byte method.
|
|
10
|
-
* Refactored Chars::CharSet:
|
|
35
|
+
* Added a Ronin::Hexdump module:
|
|
36
|
+
* Provides Ronin::Hexdump.dump and Kernel#hexdump, which can hexdump any
|
|
37
|
+
object that supports the #each_byte method.
|
|
38
|
+
* Refactored Ronin::Chars::CharSet:
|
|
11
39
|
* Now inherites the SortedSet class.
|
|
12
40
|
* Stores chars as bytes.
|
|
13
|
-
* Added a Chars::CharSet#=~ operator, for determining if a String
|
|
14
|
-
in the language over the alphabet represented by the character
|
|
15
|
-
|
|
41
|
+
* Added a Ronin::Chars::CharSet#=~ operator, for determining if a String
|
|
42
|
+
exists in the language over the alphabet represented by the character
|
|
43
|
+
set.
|
|
44
|
+
* Added a Ronin::Chars::CharSet#inspect method which prints C-like
|
|
45
|
+
characters.
|
|
16
46
|
* Added a String#inspect method which prints C-like strings.
|
|
17
47
|
* Added a String#xor method (it might come in handy).
|
|
18
|
-
* Renamed Encoders::Encoder to Translators::Translator.
|
|
48
|
+
* Renamed Ronin::Encoders::Encoder to Ronin::Translators::Translator.
|
|
19
49
|
* Added URI::QueryParams#each_query_param.
|
|
20
50
|
* Added extensions to Hpricot, for comparing two Hpricot Element trees.
|
|
21
|
-
* Added the Web.spider_agent, Web.spider_host and
|
|
22
|
-
|
|
23
|
-
* Added
|
|
24
|
-
*
|
|
25
|
-
|
|
26
|
-
*
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
*
|
|
32
|
-
|
|
51
|
+
* Added the Ronin::Web.spider_agent, Ronin::Web.spider_host and
|
|
52
|
+
Ronin::Web.spider_site methods.
|
|
53
|
+
* Added Ronin::Code::SymbolTable#symbols.
|
|
54
|
+
* Added a basic Ronin::Code::Emittable module and a Ronin::Code::Token
|
|
55
|
+
class.
|
|
56
|
+
* Renamed Ronin::ObjectContext.object_contextify to
|
|
57
|
+
Ronin::ObjectContext.objectify.
|
|
58
|
+
* Merged the Ronin::Environment module into the Ronin::Config module.
|
|
59
|
+
* Refactored the Ronin::Shell class.
|
|
60
|
+
* Refactored the Ronin::Runner::Program module.
|
|
61
|
+
* Created the Ronin::UI namespace, to contain all things User Interfacing:
|
|
62
|
+
* Moved Ronin::Console and Ronin::Shell into the UI namespace.
|
|
63
|
+
* Renamed Ronin::Runner::Program to Ronin::UI::CommandLine.
|
|
64
|
+
* Added a Ronin::Cache::Overlay::Maintainer class to define maintainers of
|
|
65
|
+
an Ronin::Cache::Overlay and their contact information.
|
|
33
66
|
* Refactored the parsing of Overlay XML files.
|
|
34
|
-
* Added the sub-commands
|
|
67
|
+
* Added the sub-commands +overlay+ and +extension+ for generating skeleton
|
|
35
68
|
Overlays and Extensions.
|
|
36
69
|
* Added a XSL file for generating pretty HTML from Overlay XML files.
|
|
37
70
|
* Added even more specs.
|
|
@@ -40,22 +73,22 @@
|
|
|
40
73
|
=== 0.1.1 / 2008-10-26
|
|
41
74
|
|
|
42
75
|
* Depend on the newly renamed reverse-require (>= 0.1.2) gem.
|
|
43
|
-
* Added Code::SymbolTable for DSLs to make use of.
|
|
76
|
+
* Added Ronin::Code::SymbolTable for DSLs to make use of.
|
|
44
77
|
* Added String#common_prefix, String#common_postfix and
|
|
45
78
|
String#uncommon_substring, which will be useful when testing for
|
|
46
79
|
successful injections.
|
|
47
80
|
* Added DataMapper column indexes to Author.name, Product.name, Platform.os
|
|
48
81
|
and Platform.version.
|
|
49
82
|
* Renamed String#rand_case to String#random_case.
|
|
50
|
-
* Removed the Runner namespace, renaming the Runner::Program
|
|
51
|
-
Ronin::Program.
|
|
83
|
+
* Removed the Ronin::Runner namespace, renaming the Ronin::Runner::Program
|
|
84
|
+
namespace to Ronin::Program.
|
|
52
85
|
|
|
53
86
|
=== 0.1.0 / 2008-09-28
|
|
54
87
|
|
|
55
88
|
* Changed how Sessions are setup.
|
|
56
89
|
* Have Ronin use it's own DataMapper Repository name-space to avoid
|
|
57
90
|
conflicts with other DataMapper libraries.
|
|
58
|
-
* Added the Parameters#set_params methods.
|
|
91
|
+
* Added the Ronin::Parameters#set_params methods.
|
|
59
92
|
* Added specs.
|
|
60
93
|
* Fixed various trivial bugs.
|
|
61
94
|
|
data/Manifest.txt
CHANGED
|
@@ -7,11 +7,6 @@ Rakefile
|
|
|
7
7
|
bin/ronin
|
|
8
8
|
lib/ronin.rb
|
|
9
9
|
lib/ronin/config.rb
|
|
10
|
-
lib/ronin/exceptions/invalid_database_config.rb
|
|
11
|
-
lib/ronin/exceptions/unknown_context.rb
|
|
12
|
-
lib/ronin/exceptions/context_not_found.rb
|
|
13
|
-
lib/ronin/exceptions/unknown_object_context.rb
|
|
14
|
-
lib/ronin/exceptions/object_context_not_found.rb
|
|
15
10
|
lib/ronin/extensions.rb
|
|
16
11
|
lib/ronin/extensions/meta.rb
|
|
17
12
|
lib/ronin/extensions/meta/object.rb
|
|
@@ -115,16 +110,22 @@ lib/ronin/sessions/telnet.rb
|
|
|
115
110
|
lib/ronin/sessions/http.rb
|
|
116
111
|
lib/ronin/sessions/web.rb
|
|
117
112
|
lib/ronin/database.rb
|
|
113
|
+
lib/ronin/database/exceptions.rb
|
|
114
|
+
lib/ronin/database/exceptions/invalid_config.rb
|
|
115
|
+
lib/ronin/database/database.rb
|
|
118
116
|
lib/ronin/model.rb
|
|
119
117
|
lib/ronin/author.rb
|
|
120
118
|
lib/ronin/license.rb
|
|
119
|
+
lib/ronin/has_license.rb
|
|
121
120
|
lib/ronin/arch.rb
|
|
122
121
|
lib/ronin/platform.rb
|
|
123
122
|
lib/ronin/target.rb
|
|
124
123
|
lib/ronin/product.rb
|
|
125
|
-
lib/ronin/
|
|
126
|
-
lib/ronin/
|
|
127
|
-
lib/ronin/
|
|
124
|
+
lib/ronin/objectify.rb
|
|
125
|
+
lib/ronin/objectify/exceptions.rb
|
|
126
|
+
lib/ronin/objectify/exceptions/object_context_not_found.rb
|
|
127
|
+
lib/ronin/objectify/exceptions/unknown_object_context.rb
|
|
128
|
+
lib/ronin/objectify/objectify.rb
|
|
128
129
|
lib/ronin/models.rb
|
|
129
130
|
lib/ronin/cache.rb
|
|
130
131
|
lib/ronin/cache/exceptions.rb
|
|
@@ -146,6 +147,7 @@ lib/ronin/ui/command_line/exceptions.rb
|
|
|
146
147
|
lib/ronin/ui/command_line/exceptions/unknown_command.rb
|
|
147
148
|
lib/ronin/ui/command_line/command.rb
|
|
148
149
|
lib/ronin/ui/command_line/options.rb
|
|
150
|
+
lib/ronin/ui/command_line/param_parser.rb
|
|
149
151
|
lib/ronin/ui/command_line/commands.rb
|
|
150
152
|
lib/ronin/ui/command_line/commands/default.rb
|
|
151
153
|
lib/ronin/ui/command_line/commands/overlay.rb
|
|
@@ -168,17 +170,13 @@ spec/author_spec.rb
|
|
|
168
170
|
spec/chars/char_set_spec.rb
|
|
169
171
|
spec/chars/chars_spec.rb
|
|
170
172
|
spec/translators/translator_spec.rb
|
|
171
|
-
spec/
|
|
172
|
-
spec/context/helpers/book_context.rb
|
|
173
|
-
spec/context/helpers/book_review_context.rb
|
|
174
|
-
spec/context/helpers/contexts/snow_crash.rb
|
|
175
|
-
spec/context/helpers/contexts/neuromancer_review.rb
|
|
176
|
-
spec/object_context/object_context_spec.rb
|
|
173
|
+
spec/objectify/objectify_spec.rb
|
|
177
174
|
spec/extensions/hash_spec.rb
|
|
178
175
|
spec/extensions/string_spec.rb
|
|
179
176
|
spec/extensions/uri/http_spec.rb
|
|
180
177
|
spec/extensions/uri/query_params_spec.rb
|
|
181
|
-
spec/formatting/
|
|
178
|
+
spec/formatting/binary/integer_spec.rb
|
|
179
|
+
spec/formatting/binary/string_spec.rb
|
|
182
180
|
spec/formatting/digest_spec.rb
|
|
183
181
|
spec/formatting/html_spec.rb
|
|
184
182
|
spec/formatting/http_spec.rb
|
|
@@ -192,6 +190,7 @@ spec/platform_spec.rb
|
|
|
192
190
|
spec/product_spec.rb
|
|
193
191
|
spec/target_spec.rb
|
|
194
192
|
spec/sessions/session_spec.rb
|
|
193
|
+
spec/ui/command_line/param_parser_spec.rb
|
|
195
194
|
spec/ronin_spec.rb
|
|
196
195
|
static/overlay.xsl
|
|
197
|
-
static/extension.rb
|
|
196
|
+
static/extension.rb
|
data/README.txt
CHANGED
|
@@ -69,17 +69,22 @@ of Ronin.
|
|
|
69
69
|
|
|
70
70
|
== REQUIREMENTS:
|
|
71
71
|
|
|
72
|
-
*
|
|
73
|
-
*
|
|
72
|
+
* hpricot
|
|
73
|
+
* mechanize
|
|
74
|
+
* spidr >= 0.1.3
|
|
74
75
|
* DataMapper:
|
|
75
|
-
* dm-core >= 0.9.
|
|
76
|
-
* data_objects >= 0.9.
|
|
77
|
-
* do_sqlite3 >= 0.9.
|
|
78
|
-
* dm-types >= 0.9.
|
|
79
|
-
* dm-
|
|
80
|
-
* dm-
|
|
81
|
-
*
|
|
82
|
-
*
|
|
76
|
+
* dm-core >= 0.9.9
|
|
77
|
+
* data_objects >= 0.9.9
|
|
78
|
+
* do_sqlite3 >= 0.9.9
|
|
79
|
+
* dm-types >= 0.9.9
|
|
80
|
+
* dm-aggregates >= 0.9.9
|
|
81
|
+
* dm-validations >= 0.9.9
|
|
82
|
+
* dm-serializer >= 0.9.9
|
|
83
|
+
* dm-prefined >= 0.1.0
|
|
84
|
+
* parameters >= 0.1.2
|
|
85
|
+
* contextify >= 0.1.0
|
|
86
|
+
* reverse-require >= 0.3.1
|
|
87
|
+
* repertoire >= 0.1.2
|
|
83
88
|
|
|
84
89
|
== INSTALL:
|
|
85
90
|
|
|
@@ -175,7 +180,7 @@ and Remote File Inclusion (RFI).
|
|
|
175
180
|
Ronin - A Ruby platform designed for information security and data
|
|
176
181
|
exploration tasks.
|
|
177
182
|
|
|
178
|
-
Copyright (c) 2006-
|
|
183
|
+
Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
179
184
|
|
|
180
185
|
This program is free software; you can redistribute it and/or modify
|
|
181
186
|
it under the terms of the GNU General Public License as published by
|
data/Rakefile
CHANGED
|
@@ -12,15 +12,17 @@ Hoe.new('ronin', Ronin::VERSION) do |p|
|
|
|
12
12
|
p.extra_deps = ['hpricot',
|
|
13
13
|
'mechanize',
|
|
14
14
|
['spidr', '>=0.1.3'],
|
|
15
|
-
['dm-core', '>=0.9.
|
|
15
|
+
['dm-core', '>=0.9.9'],
|
|
16
16
|
['data_objects', '>=0.9.9'],
|
|
17
17
|
['do_sqlite3', '>=0.9.9'],
|
|
18
|
-
['dm-types', '>=0.9.
|
|
19
|
-
['dm-serializer', '>=0.9.
|
|
20
|
-
['dm-aggregates', '>=0.9.
|
|
21
|
-
['dm-validations', '>=0.9.
|
|
22
|
-
['
|
|
23
|
-
['
|
|
18
|
+
['dm-types', '>=0.9.9'],
|
|
19
|
+
['dm-serializer', '>=0.9.9'],
|
|
20
|
+
['dm-aggregates', '>=0.9.9'],
|
|
21
|
+
['dm-validations', '>=0.9.9'],
|
|
22
|
+
['dm-predefined', '>=0.1.0'],
|
|
23
|
+
['parameters', '>=0.1.2'],
|
|
24
|
+
['contextify', '>=0.1.0'],
|
|
25
|
+
['reverse-require', '>=0.3.1'],
|
|
24
26
|
['repertoire', '>=0.1.2']]
|
|
25
27
|
end
|
|
26
28
|
|
data/TODO.txt
CHANGED
data/lib/ronin.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Ronin - A Ruby platform designed for information security and data
|
|
4
4
|
# exploration tasks.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006-
|
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
data/lib/ronin/arch.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Ronin - A Ruby platform designed for information security and data
|
|
4
4
|
# exploration tasks.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006-
|
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -25,11 +25,15 @@ require 'ronin/extensions/meta'
|
|
|
25
25
|
require 'ronin/extensions/string'
|
|
26
26
|
require 'ronin/model'
|
|
27
27
|
|
|
28
|
+
require 'dm-predefined'
|
|
29
|
+
|
|
28
30
|
module Ronin
|
|
29
31
|
class Arch
|
|
30
32
|
|
|
31
33
|
include Model
|
|
34
|
+
include DataMapper::Predefined
|
|
32
35
|
|
|
36
|
+
# Primary key
|
|
33
37
|
property :id, Serial
|
|
34
38
|
|
|
35
39
|
# Name of the architecture
|
|
@@ -60,20 +64,8 @@ module Ronin
|
|
|
60
64
|
# Defines a new builtin Arch with the specified _name_ and the given
|
|
61
65
|
# _options_.
|
|
62
66
|
#
|
|
63
|
-
def
|
|
64
|
-
name
|
|
65
|
-
endian = options[:endian].to_s
|
|
66
|
-
address_length = options[:address_length].to_i
|
|
67
|
-
|
|
68
|
-
meta_def(name.to_method_name) do
|
|
69
|
-
Arch.first_or_create(
|
|
70
|
-
:name => name,
|
|
71
|
-
:endian => endian,
|
|
72
|
-
:address_length => address_length
|
|
73
|
-
)
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
return nil
|
|
67
|
+
def self.define(name,options={})
|
|
68
|
+
super(name,options.merge(:name => name))
|
|
77
69
|
end
|
|
78
70
|
|
|
79
71
|
define :i386, :endian => :little, :address_length => 4
|
data/lib/ronin/author.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Ronin - A Ruby platform designed for information security and data
|
|
4
4
|
# exploration tasks.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006-
|
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
data/lib/ronin/cache.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Ronin - A Ruby platform designed for information security and data
|
|
4
4
|
# exploration tasks.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006-
|
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
data/lib/ronin/cache/cache.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Ronin - A Ruby platform designed for information security and data
|
|
4
4
|
# exploration tasks.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006-
|
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
data/lib/ronin/cache/config.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Ronin - A Ruby platform designed for information security and data
|
|
4
4
|
# exploration tasks.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006-
|
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Ronin - A Ruby platform designed for information security and data
|
|
4
4
|
# exploration tasks.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006-
|
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Ronin - A Ruby platform designed for information security and data
|
|
4
4
|
# exploration tasks.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006-
|
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Ronin - A Ruby platform designed for information security and data
|
|
4
4
|
# exploration tasks.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006-
|
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Ronin - A Ruby platform designed for information security and data
|
|
4
4
|
# exploration tasks.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006-
|
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Ronin - A Ruby platform designed for information security and data
|
|
4
4
|
# exploration tasks.
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006-
|
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -23,31 +23,20 @@
|
|
|
23
23
|
|
|
24
24
|
require 'ronin/cache/extension_cache'
|
|
25
25
|
require 'ronin/cache/overlay'
|
|
26
|
-
require 'ronin/context'
|
|
27
26
|
|
|
28
27
|
module Ronin
|
|
29
28
|
module Cache
|
|
30
29
|
class Extension
|
|
31
30
|
|
|
32
|
-
include Context
|
|
33
|
-
|
|
34
31
|
# Extension file name
|
|
35
32
|
EXTENSION_FILE = 'extension.rb'
|
|
36
33
|
|
|
37
|
-
# Extension lib directory
|
|
38
|
-
LIB_DIR = 'lib'
|
|
39
|
-
|
|
40
|
-
contextify :extension
|
|
41
|
-
|
|
42
34
|
# Name of extension
|
|
43
35
|
attr_reader :name
|
|
44
36
|
|
|
45
37
|
# Paths of similar extensions
|
|
46
38
|
attr_reader :paths
|
|
47
39
|
|
|
48
|
-
# Dependency extensions
|
|
49
|
-
attr_reader :dependencies
|
|
50
|
-
|
|
51
40
|
#
|
|
52
41
|
# Creates a new Extension with the specified _name_. If a
|
|
53
42
|
# _block_ is given, it will be passed the newly created
|
|
@@ -62,13 +51,11 @@ module Ronin
|
|
|
62
51
|
def initialize(name,&block)
|
|
63
52
|
@name = name.to_s
|
|
64
53
|
@paths = []
|
|
65
|
-
@dependencies = {}
|
|
66
54
|
|
|
67
55
|
@setup = false
|
|
68
56
|
@toredown = true
|
|
69
57
|
|
|
70
58
|
@setup_blocks = []
|
|
71
|
-
@action_blocks = {}
|
|
72
59
|
@teardown_blocks = []
|
|
73
60
|
|
|
74
61
|
block.call(self) if block
|
|
@@ -287,61 +274,7 @@ module Ronin
|
|
|
287
274
|
end
|
|
288
275
|
|
|
289
276
|
#
|
|
290
|
-
#
|
|
291
|
-
# newly created Extension object and adds it to the extensions
|
|
292
|
-
# dependencies.
|
|
293
|
-
#
|
|
294
|
-
# uses 'shellcode'
|
|
295
|
-
#
|
|
296
|
-
def uses(name)
|
|
297
|
-
name = name.to_s
|
|
298
|
-
|
|
299
|
-
unless Extension.exists?(name)
|
|
300
|
-
raise(ExtensionNotFound,"extension #{name.dump} is not in the overlay cache",caller)
|
|
301
|
-
end
|
|
302
|
-
|
|
303
|
-
@dependencies[name] ||= Extension.load(name)
|
|
304
|
-
return self
|
|
305
|
-
end
|
|
306
|
-
|
|
307
|
-
#
|
|
308
|
-
# Returns +true+ if the extension has the dependency of the specified
|
|
309
|
-
# _name_, returns +false+ otherwise.
|
|
310
|
-
#
|
|
311
|
-
def uses?(name)
|
|
312
|
-
@dependencies.has_key?(name.to_s)
|
|
313
|
-
end
|
|
314
|
-
|
|
315
|
-
#
|
|
316
|
-
# Passes all the extension's dependencies and the extension itself to
|
|
317
|
-
# the specified _block_ using the given _options_.
|
|
318
|
-
#
|
|
319
|
-
# _options_ may include the following keys:
|
|
320
|
-
# <tt>:top_down</tt>:: Indicates that distribute will recurse through
|
|
321
|
-
# the extensions and their elements in a
|
|
322
|
-
# top-down manner. This is distributes default
|
|
323
|
-
# behavior.
|
|
324
|
-
# <tt>:bottom_up</tt>:: Indictates that distribute will recurse
|
|
325
|
-
# through the extensions and their dependencies
|
|
326
|
-
# in a bottom-up manner. Mutually exclusive with
|
|
327
|
-
# the <tt>:top_down</tt> option.
|
|
328
|
-
#
|
|
329
|
-
def distribute(options={},&block)
|
|
330
|
-
distribute_deps = lambda {
|
|
331
|
-
@dependencies.map { |ext|
|
|
332
|
-
ext.distribute(options,&block)
|
|
333
|
-
}.flatten
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
if options[:bottom_up]
|
|
337
|
-
return distribute_deps.call + [block.call(self)]
|
|
338
|
-
else
|
|
339
|
-
return [block.call(self)] + distribute_deps.call
|
|
340
|
-
end
|
|
341
|
-
end
|
|
342
|
-
|
|
343
|
-
#
|
|
344
|
-
# Returns +true+ if the app context has a public instance method
|
|
277
|
+
# Returns +true+ if the extension context has a public instance method
|
|
345
278
|
# of the matching _name_, returns +false+ otherwise.
|
|
346
279
|
#
|
|
347
280
|
# ext.has_method?(:console) # => true
|
|
@@ -351,31 +284,11 @@ module Ronin
|
|
|
351
284
|
end
|
|
352
285
|
|
|
353
286
|
#
|
|
354
|
-
#
|
|
355
|
-
#
|
|
356
|
-
# specified _method_.
|
|
357
|
-
#
|
|
358
|
-
# ext.extensions_with_method(:console) # => [...]
|
|
359
|
-
#
|
|
360
|
-
# ext.extensions_with_method(:console) do |ext|
|
|
361
|
-
# ext.console(ARGV)
|
|
362
|
-
# end
|
|
363
|
-
#
|
|
364
|
-
def extensions_with_method(method,&block)
|
|
365
|
-
extensions = distribute { |ext|
|
|
366
|
-
ext if ext.has_method?(method)
|
|
367
|
-
}.compact
|
|
368
|
-
|
|
369
|
-
extensions.each(&block) if block
|
|
370
|
-
return extensions
|
|
371
|
-
end
|
|
372
|
-
|
|
373
|
-
#
|
|
374
|
-
# Calls the setup blocks of the extension's dependencies and the
|
|
375
|
-
# extension itself. If a _block_ is given, it will be passed the
|
|
376
|
-
# extension after it has been setup.
|
|
287
|
+
# Calls the setup blocks of the extension. If a _block_ is given, it
|
|
288
|
+
# will be passed the extension after it has been setup.
|
|
377
289
|
#
|
|
378
|
-
# ext.perform_setup
|
|
290
|
+
# ext.perform_setup
|
|
291
|
+
# # => #<Ronin::Cache::Extension: ...>
|
|
379
292
|
#
|
|
380
293
|
# ext.perform_setup do |ext|
|
|
381
294
|
# puts "Extension #{ext} has been setup..."
|
|
@@ -383,12 +296,8 @@ module Ronin
|
|
|
383
296
|
#
|
|
384
297
|
def perform_setup(&block)
|
|
385
298
|
unless @setup
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
@setup_blocks.each do |setup_block|
|
|
389
|
-
setup_block.call(self) if setup_block
|
|
390
|
-
end
|
|
391
|
-
end
|
|
299
|
+
@setup_blocks.each do |setup_block|
|
|
300
|
+
setup_block.call(self) if setup_block
|
|
392
301
|
end
|
|
393
302
|
|
|
394
303
|
@setup = true
|
|
@@ -408,11 +317,11 @@ module Ronin
|
|
|
408
317
|
end
|
|
409
318
|
|
|
410
319
|
#
|
|
411
|
-
# Run the teardown blocks of the extension
|
|
412
|
-
#
|
|
413
|
-
# has been tore down.
|
|
320
|
+
# Run the teardown blocks of the extension. If a _block_ is given,
|
|
321
|
+
# it will be passed the extension before it has been tore down.
|
|
414
322
|
#
|
|
415
|
-
# ext.perform_teardown
|
|
323
|
+
# ext.perform_teardown
|
|
324
|
+
# # => #<Ronin::Cache::Extension: ...>
|
|
416
325
|
#
|
|
417
326
|
# ext.perform_teardown do |ext|
|
|
418
327
|
# puts "Extension #{ext} is being tore down..."
|
|
@@ -422,12 +331,8 @@ module Ronin
|
|
|
422
331
|
block.call(self) if block
|
|
423
332
|
|
|
424
333
|
unless @toredown
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
@teardown_blocks.each do |teardown_block|
|
|
428
|
-
teardown_block.call(self) if teardown_block
|
|
429
|
-
end
|
|
430
|
-
end
|
|
334
|
+
@teardown_blocks.each do |teardown_block|
|
|
335
|
+
teardown_block.call(self) if teardown_block
|
|
431
336
|
end
|
|
432
337
|
|
|
433
338
|
@toredown = true
|
|
@@ -462,41 +367,6 @@ module Ronin
|
|
|
462
367
|
return self
|
|
463
368
|
end
|
|
464
369
|
|
|
465
|
-
#
|
|
466
|
-
# Returns an +Array+ of the names of all actions defined in the
|
|
467
|
-
# extension.
|
|
468
|
-
#
|
|
469
|
-
# ext.actions # => [...]
|
|
470
|
-
#
|
|
471
|
-
def actions
|
|
472
|
-
@action_blocks.keys
|
|
473
|
-
end
|
|
474
|
-
|
|
475
|
-
#
|
|
476
|
-
# Returns +true+ if the extension has the action of the specified
|
|
477
|
-
# _name_, returns +false+ otherwise.
|
|
478
|
-
#
|
|
479
|
-
def has_action?(name)
|
|
480
|
-
@action_blocks.has_key?(name.to_sym)
|
|
481
|
-
end
|
|
482
|
-
|
|
483
|
-
#
|
|
484
|
-
# Runs the action of the specified _name_ with the given _args_.
|
|
485
|
-
# If no action of the specified name exists, then an UnknownAction
|
|
486
|
-
# exception will be raised.
|
|
487
|
-
#
|
|
488
|
-
def perform_action(name,*args)
|
|
489
|
-
name = name.to_s
|
|
490
|
-
|
|
491
|
-
unless has_action?(name)
|
|
492
|
-
raise(UnknownAction,"action #{name.dump} is not defined",caller)
|
|
493
|
-
end
|
|
494
|
-
|
|
495
|
-
return run do
|
|
496
|
-
@action_blocks[name.to_sym].call(*args)
|
|
497
|
-
end
|
|
498
|
-
end
|
|
499
|
-
|
|
500
370
|
#
|
|
501
371
|
# Find the specified _path_ from within all similar extensions.
|
|
502
372
|
# If a _block_ is given, it will be passed the full path if found.
|
|
@@ -622,7 +492,7 @@ module Ronin
|
|
|
622
492
|
end
|
|
623
493
|
|
|
624
494
|
#
|
|
625
|
-
# Returns the name of the
|
|
495
|
+
# Returns the name of the extension context in string form.
|
|
626
496
|
#
|
|
627
497
|
def to_s
|
|
628
498
|
@name.to_s
|
|
@@ -639,22 +509,6 @@ module Ronin
|
|
|
639
509
|
return self
|
|
640
510
|
end
|
|
641
511
|
|
|
642
|
-
#
|
|
643
|
-
# Defines a new action with the specified _name_ and the given
|
|
644
|
-
# _block_. If an action of the same _name_ has already been defined
|
|
645
|
-
# then an ActionRedefined exception will be raised.
|
|
646
|
-
#
|
|
647
|
-
def action(name,&block)
|
|
648
|
-
name = name.to_s
|
|
649
|
-
|
|
650
|
-
if has_action?(name)
|
|
651
|
-
raise(ActionRedefined,"action #{name.dump} previously defined",caller)
|
|
652
|
-
end
|
|
653
|
-
|
|
654
|
-
@action_blocks[name.to_sym] = block
|
|
655
|
-
return self
|
|
656
|
-
end
|
|
657
|
-
|
|
658
512
|
#
|
|
659
513
|
# Adds the specified _block_ to the list of blocks to run in order
|
|
660
514
|
# to properly tear-down the extension.
|
|
@@ -664,35 +518,6 @@ module Ronin
|
|
|
664
518
|
return self
|
|
665
519
|
end
|
|
666
520
|
|
|
667
|
-
#
|
|
668
|
-
# Provides transparent access to the performing of actions
|
|
669
|
-
# and extensions dependencies.
|
|
670
|
-
#
|
|
671
|
-
# ext.scan('localhost') # => Extension
|
|
672
|
-
#
|
|
673
|
-
# ext.shellcode # => Extension
|
|
674
|
-
#
|
|
675
|
-
# ext.shellcode do |dep|
|
|
676
|
-
# puts "#{ext} has the dependency #{dep}"
|
|
677
|
-
# end
|
|
678
|
-
#
|
|
679
|
-
def method_missing(sym,*args,&block)
|
|
680
|
-
if (args.length==0)
|
|
681
|
-
name = sym.to_s
|
|
682
|
-
|
|
683
|
-
if (has_action?(name) && block.nil?)
|
|
684
|
-
return perform_action(name,*args)
|
|
685
|
-
end
|
|
686
|
-
|
|
687
|
-
if uses?(name)
|
|
688
|
-
block.call(@dependencies[name]) if block
|
|
689
|
-
return @dependencies[name]
|
|
690
|
-
end
|
|
691
|
-
end
|
|
692
|
-
|
|
693
|
-
return super(sym,*args,&block)
|
|
694
|
-
end
|
|
695
|
-
|
|
696
521
|
end
|
|
697
522
|
end
|
|
698
523
|
end
|