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.
Files changed (240) hide show
  1. data.tar.gz.sig +0 -0
  2. data/History.txt +95 -0
  3. data/Manifest.txt +55 -25
  4. data/README.txt +64 -52
  5. data/Rakefile +21 -14
  6. data/bin/ronin +1 -1
  7. data/bin/ronin-add +1 -1
  8. data/bin/ronin-console +1 -1
  9. data/bin/ronin-help +1 -1
  10. data/bin/ronin-install +1 -1
  11. data/bin/ronin-list +1 -1
  12. data/bin/ronin-remove +1 -1
  13. data/bin/ronin-uninstall +1 -1
  14. data/bin/ronin-update +1 -1
  15. data/lib/ronin.rb +2 -4
  16. data/lib/ronin/arch.rb +66 -21
  17. data/lib/ronin/author.rb +27 -18
  18. data/lib/ronin/cacheable.rb +63 -23
  19. data/lib/ronin/code/emittable.rb +1 -4
  20. data/lib/ronin/code/reference.rb +2 -5
  21. data/lib/ronin/code/symbol_table.rb +1 -4
  22. data/lib/ronin/code/token.rb +1 -4
  23. data/lib/ronin/config.rb +31 -10
  24. data/lib/ronin/database.rb +1 -4
  25. data/lib/ronin/database/database.rb +42 -23
  26. data/lib/ronin/database/exceptions.rb +1 -4
  27. data/lib/ronin/database/exceptions/invalid_config.rb +1 -4
  28. data/lib/ronin/environment.rb +1 -5
  29. data/lib/ronin/extensions.rb +1 -5
  30. data/lib/ronin/extensions/array.rb +8 -6
  31. data/lib/ronin/extensions/file.rb +9 -4
  32. data/lib/ronin/extensions/ip_addr.rb +33 -13
  33. data/lib/ronin/extensions/kernel.rb +44 -9
  34. data/lib/ronin/extensions/meta.rb +1 -4
  35. data/lib/ronin/extensions/string.rb +8 -7
  36. data/lib/ronin/extensions/uri.rb +1 -4
  37. data/lib/ronin/extensions/uri/http.rb +1 -48
  38. data/lib/ronin/extensions/uri/query_params.rb +27 -8
  39. data/lib/ronin/formatting.rb +1 -4
  40. data/lib/ronin/formatting/binary.rb +1 -4
  41. data/lib/ronin/formatting/digest.rb +1 -4
  42. data/lib/ronin/formatting/extensions.rb +1 -4
  43. data/lib/ronin/formatting/extensions/binary.rb +1 -4
  44. data/lib/ronin/formatting/extensions/binary/file.rb +3 -28
  45. data/lib/ronin/formatting/extensions/binary/integer.rb +31 -12
  46. data/lib/ronin/formatting/extensions/binary/string.rb +59 -36
  47. data/lib/ronin/formatting/extensions/digest.rb +1 -4
  48. data/lib/ronin/formatting/extensions/digest/string.rb +31 -9
  49. data/lib/ronin/formatting/extensions/http.rb +1 -4
  50. data/lib/ronin/formatting/extensions/http/string.rb +16 -9
  51. data/lib/ronin/formatting/extensions/text.rb +1 -4
  52. data/lib/ronin/formatting/extensions/text/array.rb +17 -7
  53. data/lib/ronin/formatting/extensions/text/string.rb +70 -27
  54. data/lib/ronin/formatting/http.rb +1 -4
  55. data/lib/ronin/formatting/text.rb +1 -4
  56. data/lib/ronin/license.rb +72 -65
  57. data/lib/ronin/model.rb +1 -4
  58. data/lib/ronin/model/has_description.rb +37 -8
  59. data/lib/ronin/model/has_license.rb +12 -8
  60. data/lib/ronin/model/has_name.rb +10 -7
  61. data/lib/ronin/model/has_version.rb +14 -4
  62. data/lib/ronin/model/model.rb +71 -14
  63. data/lib/ronin/network.rb +1 -4
  64. data/lib/ronin/network/esmtp.rb +1 -4
  65. data/lib/ronin/network/extensions.rb +1 -4
  66. data/lib/ronin/network/extensions/esmtp.rb +1 -4
  67. data/lib/ronin/network/extensions/esmtp/net.rb +49 -21
  68. data/lib/ronin/network/extensions/http.rb +1 -4
  69. data/lib/ronin/network/extensions/http/net.rb +319 -531
  70. data/lib/ronin/network/extensions/imap.rb +1 -4
  71. data/lib/ronin/network/extensions/imap/net.rb +50 -23
  72. data/lib/ronin/network/extensions/pop3.rb +1 -4
  73. data/lib/ronin/network/extensions/pop3/net.rb +40 -17
  74. data/lib/ronin/network/extensions/smtp.rb +1 -4
  75. data/lib/ronin/network/extensions/smtp/net.rb +49 -21
  76. data/lib/ronin/network/extensions/tcp.rb +1 -4
  77. data/lib/ronin/network/extensions/tcp/net.rb +234 -31
  78. data/lib/ronin/network/extensions/telnet.rb +1 -4
  79. data/lib/ronin/network/extensions/telnet/net.rb +83 -51
  80. data/lib/ronin/network/extensions/udp.rb +1 -4
  81. data/lib/ronin/network/extensions/udp/net.rb +164 -27
  82. data/lib/ronin/{sessions.rb → network/helpers.rb} +10 -13
  83. data/lib/ronin/network/helpers/esmtp.rb +129 -0
  84. data/lib/ronin/{sessions/session.rb → network/helpers/helper.rb} +25 -17
  85. data/lib/ronin/network/helpers/http.rb +444 -0
  86. data/lib/ronin/network/helpers/imap.rb +115 -0
  87. data/lib/ronin/network/helpers/pop3.rb +110 -0
  88. data/lib/ronin/network/helpers/smtp.rb +123 -0
  89. data/lib/ronin/network/helpers/tcp.rb +309 -0
  90. data/lib/ronin/network/helpers/telnet.rb +158 -0
  91. data/lib/ronin/network/helpers/udp.rb +197 -0
  92. data/lib/ronin/network/http.rb +3 -156
  93. data/lib/ronin/network/http/exceptions.rb +1 -4
  94. data/lib/ronin/network/http/exceptions/unknown_request.rb +1 -4
  95. data/lib/ronin/network/http/http.rb +214 -0
  96. data/lib/ronin/network/http/proxy.rb +308 -0
  97. data/lib/ronin/network/imap.rb +7 -6
  98. data/lib/ronin/network/pop3.rb +7 -6
  99. data/lib/ronin/network/smtp.rb +1 -4
  100. data/lib/ronin/network/smtp/email.rb +34 -18
  101. data/lib/ronin/network/smtp/smtp.rb +19 -7
  102. data/lib/ronin/network/tcp.rb +1 -4
  103. data/lib/ronin/network/telnet.rb +25 -12
  104. data/lib/ronin/network/udp.rb +1 -4
  105. data/lib/ronin/os.rb +43 -21
  106. data/lib/ronin/path.rb +29 -9
  107. data/lib/ronin/platform.rb +1 -4
  108. data/lib/ronin/platform/exceptions.rb +1 -4
  109. data/lib/ronin/platform/exceptions/extension_not_found.rb +1 -4
  110. data/lib/ronin/platform/exceptions/overlay_cached.rb +1 -4
  111. data/lib/ronin/platform/exceptions/overlay_not_found.rb +1 -4
  112. data/lib/ronin/platform/extension.rb +195 -52
  113. data/lib/ronin/platform/extension_cache.rb +60 -24
  114. data/lib/ronin/platform/maintainer.rb +15 -8
  115. data/lib/ronin/platform/object_cache.rb +29 -8
  116. data/lib/ronin/platform/overlay.rb +82 -26
  117. data/lib/ronin/platform/overlay_cache.rb +179 -56
  118. data/lib/ronin/platform/platform.rb +154 -58
  119. data/lib/ronin/platform/ronin.rb +38 -11
  120. data/lib/ronin/product.rb +17 -17
  121. data/lib/ronin/rpc.rb +1 -4
  122. data/lib/ronin/rpc/call.rb +1 -4
  123. data/lib/ronin/rpc/client.rb +1 -4
  124. data/lib/ronin/rpc/console.rb +1 -4
  125. data/lib/ronin/rpc/exceptions.rb +1 -4
  126. data/lib/ronin/rpc/exceptions/not_implemented.rb +1 -4
  127. data/lib/ronin/rpc/exceptions/response_missing.rb +1 -4
  128. data/lib/ronin/rpc/response.rb +1 -4
  129. data/lib/ronin/rpc/service.rb +1 -4
  130. data/lib/ronin/rpc/shell.rb +1 -4
  131. data/lib/ronin/scanners.rb +1 -4
  132. data/lib/ronin/scanners/exceptions.rb +1 -4
  133. data/lib/ronin/scanners/exceptions/unknown_category.rb +1 -4
  134. data/lib/ronin/scanners/scanner.rb +82 -26
  135. data/lib/ronin/static.rb +1 -4
  136. data/lib/ronin/static/finders.rb +1 -4
  137. data/lib/ronin/static/static.rb +16 -7
  138. data/lib/ronin/templates.rb +2 -4
  139. data/lib/ronin/templates/erb.rb +24 -10
  140. data/lib/ronin/templates/template.rb +130 -0
  141. data/lib/ronin/ui.rb +2 -6
  142. data/lib/ronin/ui/command_line.rb +1 -4
  143. data/lib/ronin/ui/command_line/command.rb +137 -68
  144. data/lib/ronin/ui/command_line/command_line.rb +52 -29
  145. data/lib/ronin/ui/command_line/commands/add.rb +39 -67
  146. data/lib/ronin/ui/command_line/commands/console.rb +23 -27
  147. data/lib/ronin/ui/command_line/commands/help.rb +10 -29
  148. data/lib/ronin/ui/command_line/commands/install.rb +31 -56
  149. data/lib/ronin/ui/command_line/commands/list.rb +34 -52
  150. data/lib/ronin/ui/command_line/commands/remove.rb +12 -32
  151. data/lib/ronin/ui/command_line/commands/uninstall.rb +11 -31
  152. data/lib/ronin/ui/command_line/commands/update.rb +15 -35
  153. data/lib/ronin/ui/command_line/exceptions.rb +1 -4
  154. data/lib/ronin/ui/command_line/exceptions/unknown_command.rb +1 -4
  155. data/lib/ronin/ui/console.rb +54 -23
  156. data/lib/ronin/ui/hexdump.rb +1 -4
  157. data/lib/ronin/ui/hexdump/extensions.rb +1 -4
  158. data/lib/ronin/ui/hexdump/extensions/file.rb +8 -6
  159. data/lib/ronin/ui/hexdump/extensions/kernel.rb +4 -5
  160. data/lib/ronin/ui/hexdump/hexdump.rb +8 -5
  161. data/lib/ronin/{sessions/exceptions.rb → ui/output.rb} +3 -5
  162. data/lib/ronin/ui/output/handler.rb +121 -0
  163. data/lib/ronin/ui/output/helpers.rb +110 -0
  164. data/lib/ronin/ui/output/output.rb +144 -0
  165. data/lib/ronin/ui/shell.rb +38 -12
  166. data/lib/ronin/version.rb +2 -5
  167. data/lib/ronin/{sessions/exceptions/variable_missing.rb → yard.rb} +2 -10
  168. data/lib/ronin/{ronin.rb → yard/handlers.rb} +5 -15
  169. data/lib/ronin/yard/handlers/ruby.rb +27 -0
  170. data/lib/ronin/yard/handlers/ruby/base.rb +27 -0
  171. data/lib/ronin/yard/handlers/ruby/belongs_to_handler.rb +45 -0
  172. data/lib/ronin/yard/handlers/ruby/eval_block_handler.rb +18 -0
  173. data/lib/ronin/yard/handlers/ruby/has_handler.rb +49 -0
  174. data/lib/ronin/yard/handlers/ruby/legacy.rb +26 -0
  175. data/lib/ronin/yard/handlers/ruby/legacy/belongs_to_handler.rb +41 -0
  176. data/lib/ronin/yard/handlers/ruby/legacy/eval_block_handler.rb +19 -0
  177. data/lib/ronin/yard/handlers/ruby/legacy/has_handler.rb +34 -0
  178. data/lib/ronin/yard/handlers/ruby/legacy/metaclass_eval_handler.rb +21 -0
  179. data/lib/ronin/yard/handlers/ruby/legacy/property_handler.rb +41 -0
  180. data/lib/ronin/yard/handlers/ruby/legacy/scanner_handler.rb +61 -0
  181. data/lib/ronin/yard/handlers/ruby/metaclass_eval_handler.rb +18 -0
  182. data/lib/ronin/yard/handlers/ruby/property_handler.rb +45 -0
  183. data/lib/ronin/yard/handlers/ruby/scanner_handler.rb +66 -0
  184. data/spec/author_spec.rb +3 -3
  185. data/spec/extensions/classes/some_class.rb +2 -0
  186. data/spec/extensions/kernel_spec.rb +17 -0
  187. data/spec/extensions/uri/http_spec.rb +0 -31
  188. data/spec/formatting/binary/integer_spec.rb +4 -0
  189. data/spec/formatting/text/string_spec.rb +96 -0
  190. data/spec/license_spec.rb +6 -6
  191. data/spec/model/classes/basic_model.rb +13 -0
  192. data/spec/model/classes/custom_model.rb +17 -0
  193. data/spec/model/classes/described_model.rb +10 -0
  194. data/spec/model/has_description_spec.rb +42 -0
  195. data/spec/model/has_license_spec.rb +18 -4
  196. data/spec/model/model_spec.rb +68 -0
  197. data/spec/network/helpers/classes/test_helper.rb +11 -0
  198. data/spec/network/helpers/classes/uses_test_helper.rb +10 -0
  199. data/spec/network/helpers/helper_spec.rb +25 -0
  200. data/spec/network/{http_spec.rb → http/http_spec.rb} +0 -0
  201. data/spec/network/http/proxy_spec.rb +116 -0
  202. data/spec/os_spec.rb +4 -4
  203. data/spec/platform/extension_cache_spec.rb +14 -0
  204. data/spec/platform/extension_spec.rb +11 -0
  205. data/spec/platform/platform_spec.rb +8 -0
  206. data/spec/product_spec.rb +9 -9
  207. data/spec/spec_helper.rb +1 -1
  208. data/spec/templates/classes/{uses_erb.rb → example_erb.rb} +1 -1
  209. data/spec/templates/classes/example_template.rb +21 -0
  210. data/spec/templates/erb_spec.rb +2 -2
  211. data/spec/templates/helpers/static.rb +5 -0
  212. data/spec/templates/helpers/static/templates/_relative.erb +1 -0
  213. data/spec/templates/helpers/static/templates/example.erb +1 -0
  214. data/spec/templates/template_spec.rb +41 -0
  215. data/spec/ui/command_line/classes/test_command.rb +23 -0
  216. data/spec/ui/command_line/command_spec.rb +31 -0
  217. data/spec/ui/output_spec.rb +29 -0
  218. data/static/ronin/platform/overlay.xsl +135 -114
  219. data/tasks/spec.rb +1 -0
  220. data/tasks/yard.rb +18 -0
  221. metadata +98 -59
  222. metadata.gz.sig +0 -0
  223. data/TODO.txt +0 -15
  224. data/lib/ronin/extensions/hash.rb +0 -62
  225. data/lib/ronin/sessions/esmtp.rb +0 -57
  226. data/lib/ronin/sessions/http.rb +0 -678
  227. data/lib/ronin/sessions/imap.rb +0 -54
  228. data/lib/ronin/sessions/pop3.rb +0 -52
  229. data/lib/ronin/sessions/smtp.rb +0 -57
  230. data/lib/ronin/sessions/tcp.rb +0 -100
  231. data/lib/ronin/sessions/telnet.rb +0 -55
  232. data/lib/ronin/sessions/udp.rb +0 -73
  233. data/lib/ronin/ui/command_line/options.rb +0 -136
  234. data/lib/ronin/ui/diagnostics.rb +0 -66
  235. data/lib/ronin/ui/verbose.rb +0 -58
  236. data/spec/extensions/hash_spec.rb +0 -38
  237. data/spec/sessions/classes/test_session.rb +0 -11
  238. data/spec/sessions/classes/uses_test_session.rb +0 -10
  239. data/spec/sessions/session_spec.rb +0 -25
  240. data/spec/ui/verbose_spec.rb +0 -17
@@ -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/network/extensions/imap'
@@ -30,14 +27,18 @@ module Ronin
30
27
  DEFAULT_PORT = 143
31
28
 
32
29
  #
33
- # Returns the default Ronin IMAP port.
30
+ # @return [Integer]
31
+ # The default Ronin IMAP port.
34
32
  #
35
33
  def IMAP.default_port
36
34
  @@imap_default_port ||= DEFAULT_PORT
37
35
  end
38
36
 
39
37
  #
40
- # Sets the default Ronin IMAP port to the specified _port_.
38
+ # Sets the default Ronin IMAP port.
39
+ #
40
+ # @param [Integer] port
41
+ # The new default Ronin IMAP port.
41
42
  #
42
43
  def IMAP.default_port=(port)
43
44
  @@imap_default_port = port
@@ -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/network/extensions/pop3'
@@ -30,14 +27,18 @@ module Ronin
30
27
  DEFAULT_PORT = 110
31
28
 
32
29
  #
33
- # Returns the default Ronin POP3 port.
30
+ # @return [Integer]
31
+ # The default Ronin POP3 port.
34
32
  #
35
33
  def POP3.default_port
36
34
  @@pop3_default_port ||= DEFAULT_PORT
37
35
  end
38
36
 
39
37
  #
40
- # Sets the default Ronin POP3 port to the specified _port_.
38
+ # Sets the default Ronin POP3 port.
39
+ #
40
+ # @param [Integer] port
41
+ # The new default Ronin POP3 port.
41
42
  #
42
43
  def POP3.default_port=(port)
43
44
  @@pop3_default_port = port
@@ -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/network/smtp/email'
@@ -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
  module Ronin
@@ -45,20 +42,35 @@ module Ronin
45
42
  attr_accessor :body
46
43
 
47
44
  #
48
- # Creates a new Email object with the given _options_. If a _block_
49
- # is given, it will be passed the newly created Email object.
45
+ # Creates a new Email object.
50
46
  #
51
- # _options_ must contain the following keys:
52
- # <tt>:from</tt>:: The address the email is from.
53
- # <tt>:to</tt>:: The address that the email should be sent to.
54
- # <tt>:subject</tt>:: The subject of the email.
55
- # <tt>:message_id</tt>::
47
+ # @param [Hash] options
48
+ # Additional options.
56
49
  #
57
- # _options_ may contain the following keys:
58
- # <tt>:date</tt>:: The date the email was sent on. Defaults to
59
- # <tt>Time.now</tt>.
60
- # <tt>:body</tt>:: The body of the email. Can be a String or an
61
- # Array of Strings.
50
+ # @option options [String] :from
51
+ # The address the email is from.
52
+ #
53
+ # @option options [String] :to
54
+ # The address that the email should be sent to.
55
+ #
56
+ # @option options [String] :subject
57
+ # The subject of the email.
58
+ #
59
+ # @option options [String] :message_id
60
+ # Message-ID of the email.
61
+ #
62
+ # @option options [String, Time] :date (Time.now)
63
+ # The date the email was sent on.
64
+ #
65
+ # @option options [String, Array<String>] :body
66
+ # The body of the email.
67
+ #
68
+ # @yield [email]
69
+ # If a block is given, it will be passed the newly created email
70
+ # object.
71
+ #
72
+ # @yieldparam [Email] email
73
+ # The newly created email object.
62
74
  #
63
75
  def initialize(options={},&block)
64
76
  @from = options[:from]
@@ -78,8 +90,12 @@ module Ronin
78
90
  end
79
91
 
80
92
  #
81
- # Formats the email into a SMTP message as described in
82
- # http://www.ruby-doc.org/stdlib/libdoc/net/smtp/rdoc/classes/Net/SMTP.html
93
+ # Formats the email into a SMTP message.
94
+ #
95
+ # @return [String]
96
+ # Properly formatted SMTP message.
97
+ #
98
+ # @see http://www.ruby-doc.org/stdlib/libdoc/net/smtp/rdoc/classes/Net/SMTP.html
83
99
  #
84
100
  def to_s
85
101
  address = lambda { |info|
@@ -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/network/smtp/email'
@@ -30,7 +27,8 @@ module Ronin
30
27
  DEFAULT_PORT = 25
31
28
 
32
29
  #
33
- # Returns the default Ronin SMTP port.
30
+ # @return [Integer]
31
+ # The default Ronin SMTP port.
34
32
  #
35
33
  def SMTP.default_port
36
34
  @@smtp_default_port ||= DEFAULT_PORT
@@ -39,13 +37,27 @@ module Ronin
39
37
  #
40
38
  # Sets the default Ronin SMTP port.
41
39
  #
40
+ # @param [Integer] port
41
+ # The new default Ronin SMTP port.
42
+ #
42
43
  def SMTP.default_port=(port)
43
44
  @@smtp_default_port = port
44
45
  end
45
46
 
46
47
  #
47
- # Returns the String form of an Email object with the given _options_
48
- # and _block_.
48
+ # Creates a properly formatted email.
49
+ #
50
+ # @yield [email]
51
+ # If a block is given, it will be passed the newly created Email
52
+ # object.
53
+ #
54
+ # @yieldparam [Ronin::Network::Email::SMTP] email
55
+ # The new Email object.
56
+ #
57
+ # @return [String]
58
+ # Formatted SMTP email.
59
+ #
60
+ # @see Ronin::Network::SMTP::Email
49
61
  #
50
62
  def SMTP.message(options={},&block)
51
63
  Email.new(options,&block).to_s
@@ -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/network/extensions/tcp'
@@ -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/network/extensions/telnet'
@@ -36,56 +33,72 @@ module Ronin
36
33
  DEFAULT_TIMEOUT = 10
37
34
 
38
35
  #
39
- # Returns the default Ronin Telnet port.
36
+ # @return [Integer]
37
+ # The default Ronin Telnet port.
40
38
  #
41
39
  def Telnet.default_port
42
40
  @@telnet_default_port ||= DEFAULT_PORT
43
41
  end
44
42
 
45
43
  #
46
- # Sets the default Ronin Telnet port to the specified _port_.
44
+ # Sets the default Ronin Telnet port.
45
+ #
46
+ # @param [Integer] port
47
+ # The new default Ronin Telnet port.
47
48
  #
48
49
  def Telnet.default_port=(port)
49
50
  @@telnet_default_port = port
50
51
  end
51
52
 
52
53
  #
53
- # Returns the default Ronin Telnet prompt.
54
+ # @return [Regexp]
55
+ # The default Ronin Telnet prompt pattern.
54
56
  #
55
57
  def Telnet.default_prompt
56
58
  @@telnet_default_prompt ||= DEFAULT_PROMPT
57
59
  end
58
60
 
59
61
  #
60
- # Sets the default Ronin Telnet prompt to the specified _prompt_.
62
+ # Sets the default Ronin Telnet prompt pattern.
63
+ #
64
+ # @param [Regexp] prompt
65
+ # The new default Ronin Telnet prompt pattern.
61
66
  #
62
67
  def Telnet.default_prompt=(prompt)
63
68
  @@telnet_default_prompt = prompt
64
69
  end
65
70
 
66
71
  #
67
- # Returns the default Ronin Telnet timeout.
72
+ # @return [Integer]
73
+ # The default Ronin Telnet timeout.
68
74
  #
69
75
  def Telnet.default_timeout
70
76
  @@telnet_default_timeout ||= DEFAULT_TIMEOUT
71
77
  end
72
78
 
73
79
  #
74
- # Sets the default Ronin Telnet timeout to the specified _timeout_.
80
+ # Sets the default Ronin Telnet timeout.
81
+ #
82
+ # @param [Integer] timeout
83
+ # The new default Ronin Telnet timeout.
75
84
  #
76
85
  def Telnet.default_timeout=(timeout)
77
86
  @@telnet_default_timeout = timeout
78
87
  end
79
88
 
80
89
  #
81
- # Returns the Ronin Telnet proxy.
90
+ # @return [Telnet, IO, nil]
91
+ # The Ronin Telnet proxy.
82
92
  #
83
93
  def Telnet.proxy
84
94
  @@telnet_proxy ||= nil
85
95
  end
86
96
 
87
97
  #
88
- # Sets the Ronin Telnet proxy to _new_proxy_.
98
+ # Sets the Ronin Telnet proxy.
99
+ #
100
+ # @param [Telnet, IO, nil] new_proxy
101
+ # The new Ronin Telnet proxy.
89
102
  #
90
103
  def Telnet.proxy=(new_proxy)
91
104
  @@telnet_proxy = new_proxy
@@ -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/network/extensions/udp'
data/lib/ronin/os.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/model'
@@ -44,8 +41,12 @@ module Ronin
44
41
  validates_present :name
45
42
 
46
43
  #
47
- # Returns the String form of the os.
44
+ # Converts the os to a String.
48
45
  #
46
+ # @return [String]
47
+ # The OS name and version.
48
+ #
49
+ # @example
49
50
  # os = OS.new(:name => 'Linux', :version => '2.6.11')
50
51
  # os.to_s # => "Linux 2.6.11"
51
52
  #
@@ -58,33 +59,54 @@ module Ronin
58
59
  end
59
60
 
60
61
  #
61
- # Defines a new builtin OS of the specified _name_.
62
+ # Defines a new predefined OS.
63
+ #
64
+ # @param [Symbol, String] name
65
+ # The method name to define for the builtin OS.
66
+ #
67
+ # @param [String] os_name
68
+ # The name of the OS.
62
69
  #
63
- # OS.define('FreeBSD')
70
+ # @example
71
+ # OS.predefine :freebsd, 'FreeBSD'
64
72
  #
65
- def OS.define(name)
66
- name = name.to_s
67
- method_name = name.snake_case
73
+ def OS.predefine(name,os_name)
74
+ os_name = os_name.to_s
68
75
 
69
- meta_def(method_name) do |*arguments|
76
+ meta_def(name) do |*arguments|
70
77
  if (version = arguments.first)
71
- OS.first_or_create(:name => name, :version => version.to_s)
78
+ OS.first_or_create(:name => os_name, :version => version.to_s)
72
79
  else
73
- OS.new(:name => name)
80
+ OS.new(:name => os_name)
74
81
  end
75
82
  end
76
83
 
77
84
  return nil
78
85
  end
79
86
 
80
- define 'Linux'
81
- define 'FreeBSD'
82
- define 'OpenBSD'
83
- define 'NetBSD'
84
- define 'OSX'
85
- define 'Solaris'
86
- define 'Windows'
87
- define 'UNIX'
87
+ # The Linux OS
88
+ predefine :linux, 'Linux'
89
+
90
+ # The FreeBSD OS
91
+ predefine :freebsd, 'FreeBSD'
92
+
93
+ # The OpenBSD OS
94
+ predefine :openbsd, 'OpenBSD'
95
+
96
+ # The NetBSD OS
97
+ predefine :netbsd, 'NetBSD'
98
+
99
+ # OSX
100
+ predefine :osx, 'OSX'
101
+
102
+ # The Solaris OS
103
+ predefine :solaris, 'Solaris'
104
+
105
+ # The Windows OS
106
+ predefine :windows, 'Windows'
107
+
108
+ # The family UNIX OSes
109
+ predefine :unix, 'UNIX'
88
110
 
89
111
  end
90
112
  end