public
Description: Ronin is a Ruby platform for exploit development and security research. Ronin allows for the rapid development and distribution of code, exploits or payloads over many common Source-Code-Management (SCM) systems.
Homepage: http://ronin.rubyforge.org/
Clone URL: git://github.com/postmodern/ronin.git
ronin / History.txt
100644 434 lines (409 sloc) 17.185 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
=== 0.3.0 / 2009-09-24
 
* Require yard >= 0.2.3.5.
* Require nokogiri >= 1.3.3.
* Require extlib >= 0.9.13.
* Require data_objects >= 0.10.0.
* Require do_sqlite3 >= 0.10.0.
* Require dm-core >= 0.10.0.
* Require dm-types >= 0.10.0.
* Require dm-validations >= 0.10.0.
* Require dm-predefined >= 0.2.0.
* Require chars >= 0.1.2.
* Require parameters >= 0.1.8.
* Require contextify >= 0.1.3.
* Require repertoire >= 0.2.3.
* Require thor >= 0.11.5.
* Require rspec >= 1.1.12.
* Moved to YARD based documentation.
* Added YARD handlers for detecting DataMapper property, has and belongs_to
  method-calles.
* Added YARD handlers for detecting Ronin::Scanners::Scanner.scanner
  method-calles.
* Added Ronin::Config.tmp_dir.
* Added Kernel.require_within.
* Added Net.tcp_server.
* Added Net.tcp_server_session.
* Added Net.tcp_single_server.
* Added Net.udp_server.
* Added Net.udp_server_session.
* Added Ronin::Network::HTTP::Proxy.
* Added Ronin::Model#humanize_attributes.
* Added Ronin::Model::HasVersion.revision.
* Added Ronin::Templates::Template.
* Added Ronin::Platform::Overlay#gems.
* Added attr_reader, attr_writer and attr_accessor instance methods to
  Ronin::Platform::Extension.
* Added Ronin::Platform::Overlay#load!.
* Added Ronin::Platform::Overlay#reload!.
* Added Ronin::Platform::Extension#tmp_dir.
* Added Ronin::Platform::ExtensionCache#reload!.
* Added Ronin::Platform.reload!.
* Added Ronin::UI::Output.verbose=.
* Added Ronin::UI::Output.verbose?.
* Added Ronin::UI::Output.quiet=.
* Added Ronin::UI::Output.quiet?.
* Added Ronin::UI::Output.silent=.
* Added Ronin::UI::Output.silent?.
* Added Ronin::UI::Output::Helpers.
* Added Ronin::UI::CommandLine::Command#indent.
* Added Ronin::UI::CommandLine::Command#print_title.
* Added Ronin::UI::CommandLine::Command#print_array.
* Added Ronin::UI::CommandLine::Command#print_hash.
* Renamed Ronin::License.gpl_2 to Ronin::License.gpl2.
* Renamed Ronin::License.gpl_3 to Ronin::License.gpl3.
* Renamed Ronin::License.lgpl_3 to Ronin::License.lgpl3.
* Renamed the :post_data option to :postdata for the Net.http_post and
  Net.http_post_body methods.
* Renamed Ronin::Sessions to Ronin::Network::Helpers.
* Renamed Ronin::Platform::ExtensionCache#has_extension? to
  Ronin::Platform::ExtensionCache#has?.
* Renamed Ronin::Platform::ExtensionCache#extension_with to
  Ronin::Platform::ExtensionCache#with.
* Renamed Ronin::UI::Diagnostics to Ronin::UI::Output.
* Removed Hash#explode.
* Removed URI::HTTP#explode_query_params and URI::HTTP#test_query_params.
* Removed Ronin::Model.first_or_new, since it is provided by
  dm-core 0.10.0.
* Removed Ronin.console.
* Removed Ronin::License.predefine.
* Updated the summary and 3-point description of Ronin.
* Aliased Integer#char to Integer#chr.
* Changed Ronin::Database::DEFAULT_CONFIG to be a String, for printability.
* Overrode Ronin::Model.allocate so that the initialize method of models
  is always called when resources are allocated.
* Improved the white-space removal in Ronin::Model::HasDescription.
* Have Ronin::Model::HasLicense auto-define a relationship with
  Ronin::License.
* Fixed formatting issue in Ronin::Product#to_s.
* Allow Ronin::Cacheable.load_first to accept a block.
* Make sure Ronin::Static.directory raises a RuntimeError if the given
  directory is missing or not a directory.
* Allow the :proxy option passed to Net.http_* methods to be a String,
  Hash or Ronin::Network::HTTP::Proxy.
* Make sure Ronin::Network::Helpers::Helper.require_variable raises
  a RuntimeError if the required instance variable is not set.
* Merged Ronin::Platform::Extension.load into
  Ronin::Platform::ExtensionCache#load_extension.
* Updated the overlay.xsl used to render the ronin.xml files within
  Overlays.
* Merged Ronin::UI::Verbose into Ronin::UI::Output.
* Rewrote Ronin::UI::CommandLine::Command to inherit from Thor.
* Rewrote the Ronin::UI::CommandLine commands to use Thor options.
* Include Ronin::UI::Output::Helpers into Ronin::Sessions::Session.
* Include Ronin::UI::Output::Helpers into Ronin::Console sessions.
 
=== 0.2.4 / 2009-07-02
 
* Require Hoe >= 2.0.0
* Require Parameters >= 0.1.6.
* Dropped dependency for dm-serializer.
* Added Kernel#catch_all.
* Added Array#bytes.
* Added Array#chars.
* Added Array#char_string.
* Added File.unhexdump.
* Added Ronin::Templates::Erb.
* Added Ronin::Model::HasName.
* Added Ronin::Model::HasDescription.
* Added Ronin::Model::HasVersion.
* Added Cacheable#prepared_for_cache?.
* Added Cacheable#original_loaded?.
* Added Network::HTTP.expand_options.
* Added Net.http_request.
* Added Sessions::HTTP#http_request.
* Added Ronin::Scanners::Scanner.
* Added Ronin::UI::Console.backtrace_depth.
* Added Ronin::UI::Console.backtrace_depth=.
* Moved Ronin::HasLicense into Ronin::Model.
* Renamed Kernel#try to Kernel#attempt.
* Renamed Ronin.method_missing to Ronin#method_missing.
* Renamed Ronin::UI::CommandLine::Commands::Ls to
  Ronin::UI::CommandLine::Commands::List.
* Renamed Ronin::UI::CommandLine::Commands::Rm to
  Ronin::UI::CommandLine::Commands::Remove.
* Refactored OS.define.
* Refactored Ronin::Shell as a module.
* Removed Ronin::Translators.
* Fixed a bug where if an object failed to be cached,
  it would prevent an Overlay from being added to the
  OverlayCache.
* Fixed a bug where Gem::LoadError was being rescued,
  when only ::LoadError should be rescued.
* Fixed a typo in Maintainer#inspect.
* Updated the Overlay XSL file.
  * Cleaned up CSS.
  * Removed the jQuery expander plugin.
 
=== 0.2.3 / 2009-05-06
 
* Require extlib >= 0.9.12.
* Require dm-core >= 0.9.11.
* Require data_objects >= 0.9.11.
* Require do_sqlite3 >= 0.9.11.
* Require dm-types >= 0.9.11.
* Require dm-serializer >= 0.9.11.
* Require dm-validations >= 0.9.11.
* Require chars >= 0.1.1.
* Require parameters >= 0.1.5.
* No longer require dm-aggregates.
* Added Kernel#try.
* Added String#pad.
* Added Array#power_set.
* Added IPAddr#each for iterating over CIDR address ranges.
* Added IPAddr.each for iterating over CIDR and globbed address ranges.
* Added Net.http_powered_by that returns the HTTP X-Powered-By header.
* Added Net.http_server that returns the HTTP Server header.
* Added Database.setup?.
* Added Database.update!.
* Added Extension#exposed_methods.
* Added ExtensionCache#names.
* Added OverlayCache#names.
* Added Diagnostics#print_debug.
* Added more specs.
* Properly escape URI::HTTP#query_params.
* Fixed a bug in File.hexdump where the file was not being closed.
* Fixed a bug in HasLicense#licensed_under.
* Fixed a bug in Product#to_s.
* Moved Ronin::Target to the ronin-exploits library.
* Renamed Net.http_prop_path to Net.http_prop_patch.
* Removed the Parameters code from Ronin::Sessions.
* Replaced Ronin::Objectify with Ronin::Cacheable.
* Removed 'ronin/models'.
* Catch exceptions when loading Extensions and carry on.
* Renamed Overlay#deactive! to Overlay#deactivate!.
* Allow Overlays to automatically load the 'lib/init.rb' file when
  activated.
* Rewrote Ronin::Platform::ObjectCache to use the new Ronin::Cacheable
  module.
* Enable Diagnostic#print_info and Diagnostic#print_error by default.
* Refactored Ronin::UI::CommandLine:
  * Added CommandLine.get_command which loads command classes on-demand.
  * CommandLine.commands now stores all the available command names.
  * Renamed Ronin::UI::CommandLine::Commands::LS to
    Ronin::UI::CommandLine::Commands::Ls.
  * Renamed Ronin::UI::CommandLine::Commands::RM to
    Ronin::UI::CommandLine::Commands::Rm.
  * Moved Ronin::UI::CommandLine::ParamParser into the Parameters library.
* Refactored specs to run on Ruby 1.9.1-p0.
* Added more specs.
* All specs now pass on Ruby 1.9.1-p0.
 
=== 0.2.2 / 2009-03-26
 
* Split out Ronin::Chars into the Chars library.
* Split out ronin-overlay and ronin-ext sub-commands into the Ronin Gen
  library.
* Require chars >= 0.1.0.
* Require repertoire >= 0.2.1.
* Removed String#to_method_name, use Extlib instead.
* Refactored Ronin::Platform::Overlay.
  * Renamed Overlay#media_type to Overlay#media.
  * Fixed parsing bugs in Overlay#initialize_metadata.
* Allow Extensions to be accessed via constants.
* Added the Creative Commons Zero license to Ronin::License.
* Added the Integer#bytes method.
* Added the String#hex_unescape method.
* Added the String#unhexdump method.
* Added Ronin::Static for managing static resources.
* Added Ronin::Static::Finders for searching for static files.
* Added static directories to Overlays and Extensions.
* Added ronin/platform/tasks:
  * Added ronin/platform/tasks/spec task for running RSpec tests in an
    Overlay.
* Added the ExtensionCache#reload! method.
* Added more specs.
 
=== 0.2.1 / 2009-02-23
 
* Added Ronin::UI::Verbose.
* Require Nokogiri >= 1.2.0:
  * Use Nokogiri::XML, instead of REXML, for XML parsing and building.
* Renamed String#inspect to String#dump.
  * Aliased String#inspect to String#dump.
* Rewrote Ronin::UI::CommandLine.
  * Removed Ronin::UI::CommandLine::Options.command.
  * Refactored Ronin::UI::CommandLine::Command.
    * Added Command#defaults method to give the command's variables
      default values.
    * Fixed a bug in Command.run.
  * Renamed DefaultCommand to ConsoleCommand.
  * Implement git style sub-commands.
  * Use reverse-require to find sub-commands.
* Refactored Ronin::UI::ParamParser.
  * Control parameter formats and their parsers with ParamParser.recognize.
* Rewrote the Ronin::Chars spec.
* Updated the Ronin::UI::ParamParser spec.
 
=== 0.2.0 / 2009-02-06
 
* Moved the HTML formatting methods into the
  {ronin-html}[http://ronin.rubyforge.org/html/] library.
* Added 'ronin/environment' which loads the Ronin Environment.
* Added the --database option to the DefaultCommand.
* Added the -C option to the add, install, list, update, remove and
  uninstall commands.
* Added String#hex_escape.
* Added Net.http_ok?.
* Added UI::Diagnostics.
* Require Contextify >= 0.1.2 for the self.load_context_block method.
* Renamed Platform to Ronin::OS.
* Renamed Cache to Ronin::Platform.
* Refactored Ronin::Platform:
  * Added Overlay#activate!.
  * Added Overlay#deactivate!.
  * Added a title attribute to Ronin::Platform::Overlay.
  * Added a dirty flag to Ronin::Platform::OverlayCache to reduce
    unnecessary writes.
  * Added OverlayCache#has_extension?.
  * Added Ronin::Platform::ObjectCache to handle the mass caching/mirroring
    of object contexts.
  * Added Platform.add.
  * Added Platform.install.
  * Added Platform.update.
  * Added Platform.remove.
  * Added Platform.uninstall.
  * Added Platform::Extension#find_paths.
  * Added specs for:
    * Ronin::Platform.
    * Ronin::Platform::Overlay.
    * Ronin::Platform::OverlayCache.
    * Ronin::Platform::Extension.
    * Ronin::Platform::ExtensionCache.
  * Shortened method names.
    * Renamed OverlayCache#has_overlay? to OverlayCache#has?.
    * Renamed OverlayCache#get_overlay to OverlayCache#get.
    * Renamed OverlayCache#overlay_with to OverlayCache#with.
    * Renamed Extension#was_setup? to Extension#setup?.
    * Renamed Extension#was_toredown? to Extension#toredown?.
    * Renamed Extension#perform_setup to Extension#setup!.
    * Renamed Extension#perform_teardown to Extension#teardown!.
  * Removed un-used or surpurfulous methods.
  * Removed 'lib/ronin/platform/config.rb'.
  * Allow Overlays to have their own <tt>lib/</tt> directories.
  * Many bug fixes.
* Updated the README.txt.
* Fixed bug in UI::Console.auto_load and UI::Console.start.
 
=== 0.1.4 / 2009-01-22
 
* Moved Ronin::Web and Ronin::Sessions::Web into the ronin-web library.
* Removed dependencies to hpricot, mechanize, spidr and rack.
* Moved Hexdump into the Ronin::UI namespace.
* Require parameters >= 0.1.3:
  * Parameters 0.1.3 adds support for using lambdas as the default values
    of parameters.
* Temporarily added Ronin::Model.first_or_new:
  * Will be removed once dkubb's version of first_or_new is merged into
    dm-core.
* Added the File.write method.
* Added specs for String#format_http and String#format_html.
* Fixed a formatting bug in String#format_chars and String#format_bytes.
* Fixed typos.
* Automatically load 'ronin/ui/hexdump' when starting the
  Ronin::UI::Console.
 
=== 0.1.3 / 2009-01-08
 
* Moved Context into the Contextify library.
* Require dm-core >= 0.9.9.
* Require dm-predefined >= 0.1.0.
* Require parameters >= 0.1.2.
* Require contextify >= 0.1.0.
* Require reverse-require >= 0.3.1.
* Renamed Ronin::ObjectContext to Ronin::Objectify.
* Added the MIT license to the Ronin::License model, using dm-predefined.
* Added Ronin::HasLicense mixin for adding licenses to a model.
* Added Net.tcp_send and Ronin::Sessions::TCP#tcp_send for quickly sending
  data through a TCP connection then closing it.
* Added Ronin::UI::CommandLine::ParamParser for parsing command-line
  options into a Hash of parameters.
* Automatically create the <tt>~/.ronin/config/</tt> directory.
* Refactored Ronin::Objectify and how it uses primary keys.
* All Ronin::Session mixins use standard naming conventions for defining
  the 'host' and 'port' parameters.
* Removed Ronin::Cache::Extension dependencies.
* Filter out the 'objects' directory from Ronin::Cache::Overlay#extensions.
* Improved tearing down of Extensions at exit.
* Improved output formatting of the +list+ sub-command.
* Ronin::UI::CommandLine.run now prints any exceptions and exits.
* Cleaned up the specs.
* Added more specs.
* Added more documentation.
 
=== 0.1.2 / 2008-12-10
 
* Require do_sqlite3 >= 0.9.9, since version 0.9.8 was totally broken.
* Require reverse-require >= 0.2.0, for improved performance.
* Require Spidr >= 0.1.3.
* Moved Ronin::Parameters into the parameters 0.1.0 RubyGem.
* Added a Ronin::Hexdump module:
  * Provides Ronin::Hexdump.dump and Kernel#hexdump, which can hexdump any
    object that supports the #each_byte method.
* Refactored Ronin::Chars::CharSet:
  * Now inherites the SortedSet class.
  * Stores chars as bytes.
  * Added a Ronin::Chars::CharSet#=~ operator, for determining if a String
    exists in the language over the alphabet represented by the character
    set.
  * Added a Ronin::Chars::CharSet#inspect method which prints C-like
    characters.
* Added a String#inspect method which prints C-like strings.
* Added a String#xor method (it might come in handy).
* Renamed Ronin::Encoders::Encoder to Ronin::Translators::Translator.
* Added URI::QueryParams#each_query_param.
* Added extensions to Hpricot, for comparing two Hpricot Element trees.
* Added the Ronin::Web.spider_agent, Ronin::Web.spider_host and
  Ronin::Web.spider_site methods.
* Added Ronin::Code::SymbolTable#symbols.
* Added a basic Ronin::Code::Emittable module and a Ronin::Code::Token
  class.
* Renamed Ronin::ObjectContext.object_contextify to
  Ronin::ObjectContext.objectify.
* Merged the Ronin::Environment module into the Ronin::Config module.
* Refactored the Ronin::Shell class.
* Refactored the Ronin::Runner::Program module.
* Created the Ronin::UI namespace, to contain all things User Interfacing:
  * Moved Ronin::Console and Ronin::Shell into the UI namespace.
  * Renamed Ronin::Runner::Program to Ronin::UI::CommandLine.
* Added a Ronin::Cache::Overlay::Maintainer class to define maintainers of
  an Ronin::Cache::Overlay and their contact information.
* Refactored the parsing of Overlay XML files.
* Added the sub-commands +overlay+ and +extension+ for generating skeleton
  Overlays and Extensions.
* Added a XSL file for generating pretty HTML from Overlay XML files.
* Added even more specs.
* More typo and documentation fixes.
 
=== 0.1.1 / 2008-10-26
 
* Depend on the newly renamed reverse-require (>= 0.1.2) gem.
* Added Ronin::Code::SymbolTable for DSLs to make use of.
* Added String#common_prefix, String#common_postfix and
  String#uncommon_substring, which will be useful when testing for
  successful injections.
* Added DataMapper column indexes to Author.name, Product.name, Platform.os
  and Platform.version.
* Renamed String#rand_case to String#random_case.
* Removed the Ronin::Runner namespace, renaming the Ronin::Runner::Program
  namespace to Ronin::Program.
 
=== 0.1.0 / 2008-09-28
 
* Changed how Sessions are setup.
* Have Ronin use it's own DataMapper Repository name-space to avoid
  conflicts with other DataMapper libraries.
* Added the Ronin::Parameters#set_params methods.
* Added specs.
* Fixed various trivial bugs.
 
=== 0.0.9 / 2008-08-20
 
* Initial release.
* Supports installing/updating/uninstalling of Overlays.
  * Supports accessing Overlays from various media types:
    * CVS
    * Darcs
    * Subversion (SVN)
    * Git
    * Rsync
* Allows for the loading of Extensions from one or more Overlays.
* Provides a persistant Database using DataMapper.
* Caches and mirrors objects stored in Overlays using DataMapper.
* Provides convievance methods for:
  * Formating data:
    * Binary
    * HTTP
    * URIs
    * HTML
  * Generating random text.
  * Networking:
    * TCP
    * UDP
    * SMTP
    * POP
    * Imap
    * Telnet
    * HTTP
  * Web access (utilizing Mechanize and Hpricot).
* Provides an IRB styled console with:
  * Tab-completion enabled.
  * Auto-indentation enabled.
  * Pretty-Print loaded.