ronin 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|