ronin 0.1.3 → 0.1.4
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 +19 -1
- data/Manifest.txt +8 -17
- data/README.txt +0 -4
- data/Rakefile +14 -15
- data/TODO.txt +1 -2
- data/lib/ronin.rb +2 -2
- data/lib/ronin/extensions.rb +1 -0
- data/lib/ronin/extensions/file.rb +33 -0
- data/lib/ronin/formatting/extensions/http/string.rb +12 -0
- data/lib/ronin/formatting/extensions/text/string.rb +4 -4
- data/lib/ronin/model.rb +8 -0
- data/lib/ronin/objectify/exceptions/object_context_not_found.rb +3 -1
- data/lib/ronin/objectify/exceptions/unknown_object_context.rb +3 -1
- data/lib/ronin/sessions/telnet.rb +5 -2
- data/lib/ronin/{web.rb → translators.rb} +1 -2
- data/lib/ronin/{hexdump.rb → ui.rb} +2 -2
- data/lib/ronin/{hexdump/extensions.rb → ui/hexdump.rb} +2 -2
- data/lib/ronin/ui/hexdump/extensions.rb +25 -0
- data/lib/ronin/{hexdump → ui/hexdump}/extensions/file.rb +2 -2
- data/lib/ronin/{hexdump → ui/hexdump}/extensions/kernel.rb +2 -2
- data/lib/ronin/ui/hexdump/hexdump.rb +78 -0
- data/lib/ronin/version.rb +1 -1
- data/spec/formatting/html_spec.rb +9 -0
- data/spec/formatting/http_spec.rb +9 -0
- data/spec/formatting/text_spec.rb +20 -1
- metadata +12 -51
- data/lib/ronin/hexdump/hexdump.rb +0 -76
- data/lib/ronin/sessions/web.rb +0 -78
- data/lib/ronin/web/extensions.rb +0 -1
- data/lib/ronin/web/extensions/hpricot.rb +0 -5
- data/lib/ronin/web/extensions/hpricot/comment.rb +0 -19
- data/lib/ronin/web/extensions/hpricot/container.rb +0 -46
- data/lib/ronin/web/extensions/hpricot/doc.rb +0 -21
- data/lib/ronin/web/extensions/hpricot/elem.rb +0 -25
- data/lib/ronin/web/extensions/hpricot/tag.rb +0 -19
- data/lib/ronin/web/extensions/hpricot/text.rb +0 -19
- data/lib/ronin/web/web.rb +0 -331
- data/spec/web/extensions/hpricot_spec.rb +0 -62
data/History.txt
CHANGED
@@ -1,4 +1,22 @@
|
|
1
|
-
=== 0.1.
|
1
|
+
=== 0.1.4 / 2009-01-22
|
2
|
+
|
3
|
+
* Moved Ronin::Web and Ronin::Sessions::Web into the ronin-web library.
|
4
|
+
* Removed dependencies to hpricot, mechanize, spidr and rack.
|
5
|
+
* Moved Hexdump into the Ronin::UI namespace.
|
6
|
+
* Require parameters >= 0.1.3:
|
7
|
+
* Parameters 0.1.3 adds support for using lambdas as the default values
|
8
|
+
of parameters.
|
9
|
+
* Temporarily added Ronin::Model.first_or_new:
|
10
|
+
* Will be removed once dkubb's version of first_or_new is merged into
|
11
|
+
dm-core.
|
12
|
+
* Added the File.write method.
|
13
|
+
* Added specs for String#format_http and String#format_html.
|
14
|
+
* Fixed a formatting bug in String#format_chars and String#format_bytes.
|
15
|
+
* Fixed typos.
|
16
|
+
* Automatically load 'ronin/ui/hexdump' when starting the
|
17
|
+
Ronin::UI::Console.
|
18
|
+
|
19
|
+
=== 0.1.3 / 2009-01-08
|
2
20
|
|
3
21
|
* Moved Context into the Contextify library.
|
4
22
|
* Require dm-core >= 0.9.9.
|
data/Manifest.txt
CHANGED
@@ -15,6 +15,7 @@ lib/ronin/extensions/uri.rb
|
|
15
15
|
lib/ronin/extensions/uri/query_params.rb
|
16
16
|
lib/ronin/extensions/uri/http.rb
|
17
17
|
lib/ronin/extensions/string.rb
|
18
|
+
lib/ronin/extensions/file.rb
|
18
19
|
lib/ronin/formatting.rb
|
19
20
|
lib/ronin/formatting/digest.rb
|
20
21
|
lib/ronin/formatting/binary.rb
|
@@ -33,14 +34,10 @@ lib/ronin/formatting/extensions/html.rb
|
|
33
34
|
lib/ronin/formatting/extensions/html/string.rb
|
34
35
|
lib/ronin/formatting/extensions/http.rb
|
35
36
|
lib/ronin/formatting/extensions/http/string.rb
|
36
|
-
lib/ronin/hexdump.rb
|
37
|
-
lib/ronin/hexdump/hexdump.rb
|
38
|
-
lib/ronin/hexdump/extensions.rb
|
39
|
-
lib/ronin/hexdump/extensions/file.rb
|
40
|
-
lib/ronin/hexdump/extensions/kernel.rb
|
41
37
|
lib/ronin/chars.rb
|
42
38
|
lib/ronin/chars/char_set.rb
|
43
39
|
lib/ronin/chars/chars.rb
|
40
|
+
lib/ronin/translators.rb
|
44
41
|
lib/ronin/translators/translator.rb
|
45
42
|
lib/ronin/path.rb
|
46
43
|
lib/ronin/network.rb
|
@@ -88,16 +85,6 @@ lib/ronin/rpc/client.rb
|
|
88
85
|
lib/ronin/rpc/service.rb
|
89
86
|
lib/ronin/rpc/console.rb
|
90
87
|
lib/ronin/rpc/shell.rb
|
91
|
-
lib/ronin/web.rb
|
92
|
-
lib/ronin/web/extensions.rb
|
93
|
-
lib/ronin/web/extensions/hpricot.rb
|
94
|
-
lib/ronin/web/extensions/hpricot/tag.rb
|
95
|
-
lib/ronin/web/extensions/hpricot/text.rb
|
96
|
-
lib/ronin/web/extensions/hpricot/comment.rb
|
97
|
-
lib/ronin/web/extensions/hpricot/elem.rb
|
98
|
-
lib/ronin/web/extensions/hpricot/container.rb
|
99
|
-
lib/ronin/web/extensions/hpricot/doc.rb
|
100
|
-
lib/ronin/web/web.rb
|
101
88
|
lib/ronin/sessions.rb
|
102
89
|
lib/ronin/sessions/session.rb
|
103
90
|
lib/ronin/sessions/tcp.rb
|
@@ -108,7 +95,6 @@ lib/ronin/sessions/pop3.rb
|
|
108
95
|
lib/ronin/sessions/imap.rb
|
109
96
|
lib/ronin/sessions/telnet.rb
|
110
97
|
lib/ronin/sessions/http.rb
|
111
|
-
lib/ronin/sessions/web.rb
|
112
98
|
lib/ronin/database.rb
|
113
99
|
lib/ronin/database/exceptions.rb
|
114
100
|
lib/ronin/database/exceptions/invalid_config.rb
|
@@ -140,6 +126,12 @@ lib/ronin/cache/extension_cache.rb
|
|
140
126
|
lib/ronin/cache/extension.rb
|
141
127
|
lib/ronin/cache/cache.rb
|
142
128
|
lib/ronin/cache/ronin.rb
|
129
|
+
lib/ronin/ui.rb
|
130
|
+
lib/ronin/ui/hexdump.rb
|
131
|
+
lib/ronin/ui/hexdump/hexdump.rb
|
132
|
+
lib/ronin/ui/hexdump/extensions.rb
|
133
|
+
lib/ronin/ui/hexdump/extensions/file.rb
|
134
|
+
lib/ronin/ui/hexdump/extensions/kernel.rb
|
143
135
|
lib/ronin/ui/console.rb
|
144
136
|
lib/ronin/ui/shell.rb
|
145
137
|
lib/ronin/ui/command_line.rb
|
@@ -183,7 +175,6 @@ spec/formatting/http_spec.rb
|
|
183
175
|
spec/formatting/text_spec.rb
|
184
176
|
spec/code/reference_spec.rb
|
185
177
|
spec/code/symbol_table_spec.rb
|
186
|
-
spec/web/extensions/hpricot_spec.rb
|
187
178
|
spec/license_spec.rb
|
188
179
|
spec/path_spec.rb
|
189
180
|
spec/platform_spec.rb
|
data/README.txt
CHANGED
@@ -61,7 +61,6 @@ of Ronin.
|
|
61
61
|
* Imap
|
62
62
|
* Telnet
|
63
63
|
* HTTP
|
64
|
-
* Web access (utilizing Mechanize and Hpricot).
|
65
64
|
* Provides an IRB styled console with:
|
66
65
|
* Tab-completion enabled.
|
67
66
|
* Auto-indentation enabled.
|
@@ -69,9 +68,6 @@ of Ronin.
|
|
69
68
|
|
70
69
|
== REQUIREMENTS:
|
71
70
|
|
72
|
-
* hpricot
|
73
|
-
* mechanize
|
74
|
-
* spidr >= 0.1.3
|
75
71
|
* DataMapper:
|
76
72
|
* dm-core >= 0.9.9
|
77
73
|
* data_objects >= 0.9.9
|
data/Rakefile
CHANGED
@@ -9,21 +9,20 @@ Hoe.new('ronin', Ronin::VERSION) do |p|
|
|
9
9
|
p.rubyforge_name = 'ronin'
|
10
10
|
p.developer('Postmodern','postmodern.mod3@gmail.com')
|
11
11
|
p.remote_rdoc_dir = 'docs/ronin'
|
12
|
-
p.extra_deps = [
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
['repertoire', '>=0.1.2']]
|
12
|
+
p.extra_deps = [
|
13
|
+
['dm-core', '>=0.9.9'],
|
14
|
+
['data_objects', '>=0.9.9'],
|
15
|
+
['do_sqlite3', '>=0.9.9'],
|
16
|
+
['dm-types', '>=0.9.9'],
|
17
|
+
['dm-serializer', '>=0.9.9'],
|
18
|
+
['dm-aggregates', '>=0.9.9'],
|
19
|
+
['dm-validations', '>=0.9.9'],
|
20
|
+
['dm-predefined', '>=0.1.0'],
|
21
|
+
['parameters', '>=0.1.3'],
|
22
|
+
['contextify', '>=0.1.0'],
|
23
|
+
['reverse-require', '>=0.3.1'],
|
24
|
+
['repertoire', '>=0.1.2']
|
25
|
+
]
|
27
26
|
end
|
28
27
|
|
29
28
|
# vim: syntax=Ruby
|
data/TODO.txt
CHANGED
data/lib/ronin.rb
CHANGED
@@ -21,14 +21,14 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/extensions'
|
25
24
|
require 'ronin/config'
|
25
|
+
require 'ronin/extensions'
|
26
26
|
require 'ronin/formatting'
|
27
27
|
require 'ronin/chars'
|
28
28
|
require 'ronin/path'
|
29
29
|
require 'ronin/network'
|
30
|
-
require 'ronin/web'
|
31
30
|
require 'ronin/models'
|
31
|
+
require 'ronin/ui'
|
32
32
|
require 'ronin/ronin'
|
33
33
|
require 'ronin/version'
|
34
34
|
|
data/lib/ronin/extensions.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin - A Ruby platform designed for information security and data
|
4
|
+
# exploration tasks.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
class File
|
25
|
+
|
26
|
+
#
|
27
|
+
# Writes the specified _data_ to the specified _path_.
|
28
|
+
#
|
29
|
+
def File.write(path,data)
|
30
|
+
File.open(path,'w') { |file| file.write(data) }
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -21,6 +21,8 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
+
require 'ronin/formatting/extensions/text'
|
25
|
+
|
24
26
|
require 'uri'
|
25
27
|
require 'cgi'
|
26
28
|
|
@@ -66,4 +68,14 @@ class String
|
|
66
68
|
CGI.unescape(self)
|
67
69
|
end
|
68
70
|
|
71
|
+
#
|
72
|
+
# Returns the HTTP hexidecimal encoded form of the string.
|
73
|
+
#
|
74
|
+
# "hello".format_http
|
75
|
+
# # => "hello"
|
76
|
+
#
|
77
|
+
def format_http(options={})
|
78
|
+
format_bytes(options) { |c| sprintf("%%%x",c) }
|
79
|
+
end
|
80
|
+
|
69
81
|
end
|
@@ -38,16 +38,16 @@ class String
|
|
38
38
|
included = (options[:included] || Ronin::Chars.all)
|
39
39
|
excluded = (options[:excluded] || [])
|
40
40
|
|
41
|
-
|
41
|
+
targeted = included - excluded
|
42
42
|
formatted = ''
|
43
43
|
|
44
44
|
self.each_byte do |b|
|
45
45
|
c = b.chr
|
46
46
|
|
47
|
-
if
|
48
|
-
|
47
|
+
if targeted.include_byte?(b)
|
48
|
+
formatted << block.call(c)
|
49
49
|
else
|
50
|
-
|
50
|
+
formatted << c
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
data/lib/ronin/model.rb
CHANGED
@@ -49,6 +49,14 @@ module Ronin
|
|
49
49
|
|
50
50
|
# The class type property
|
51
51
|
property :type, Discriminator
|
52
|
+
|
53
|
+
#
|
54
|
+
# Finds the first resource by conditions, or initializes a new
|
55
|
+
# resource with the attributes if none found.
|
56
|
+
#
|
57
|
+
def self.first_or_new(query,attributes={})
|
58
|
+
first(query) || new(query.merge(attributes))
|
59
|
+
end
|
52
60
|
end
|
53
61
|
end
|
54
62
|
end
|
@@ -31,8 +31,11 @@ module Ronin
|
|
31
31
|
|
32
32
|
setup_session do
|
33
33
|
parameter :host, :description => 'Telnet host'
|
34
|
-
parameter :port,
|
35
|
-
|
34
|
+
parameter :port,
|
35
|
+
:default => lambda {
|
36
|
+
Ronin::Network::Telnet.default_port
|
37
|
+
},
|
38
|
+
:description => 'Telnet port'
|
36
39
|
|
37
40
|
parameter :telnet_user, :description => 'Telnet user'
|
38
41
|
parameter :telnet_password, :description => 'Telnet password'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin - A Ruby platform designed for information security and data
|
4
|
+
# exploration tasks.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/ui/hexdump/extensions/file'
|
25
|
+
require 'ronin/ui/hexdump/extensions/kernel'
|
@@ -21,7 +21,7 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/hexdump/hexdump'
|
24
|
+
require 'ronin/ui/hexdump/hexdump'
|
25
25
|
|
26
26
|
class File
|
27
27
|
|
@@ -30,7 +30,7 @@ class File
|
|
30
30
|
# to the given _output_ stream.
|
31
31
|
#
|
32
32
|
def self.hexdump(path,output=STDOUT)
|
33
|
-
Ronin::Hexdump.dump(self.open(path),output)
|
33
|
+
Ronin::UI::Hexdump.dump(self.open(path),output)
|
34
34
|
end
|
35
35
|
|
36
36
|
end
|
@@ -21,13 +21,13 @@
|
|
21
21
|
#++
|
22
22
|
#
|
23
23
|
|
24
|
-
require 'ronin/hexdump/hexdump'
|
24
|
+
require 'ronin/ui/hexdump/hexdump'
|
25
25
|
|
26
26
|
module Kernel
|
27
27
|
#
|
28
28
|
# Hexdumps the specified _object_ to the given _output_ stream.
|
29
29
|
#
|
30
30
|
def hexdump(object,output=STDOUT)
|
31
|
-
Ronin::Hexdump.dump(object,output)
|
31
|
+
Ronin::UI::Hexdump.dump(object,output)
|
32
32
|
end
|
33
33
|
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin - A Ruby platform designed for information security and data
|
4
|
+
# exploration tasks.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2006-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
module Ronin
|
25
|
+
module UI
|
26
|
+
module Hexdump
|
27
|
+
#
|
28
|
+
# Hexdumps the specified _object_ to the given _output_ stream.
|
29
|
+
#
|
30
|
+
def Hexdump.dump(object,output=STDOUT)
|
31
|
+
index = 0
|
32
|
+
offset = 0
|
33
|
+
hex_segment = nil
|
34
|
+
print_segment = nil
|
35
|
+
|
36
|
+
segment = lambda {
|
37
|
+
output.printf(
|
38
|
+
"%.8x %s |%s|\n",
|
39
|
+
index,
|
40
|
+
hex_segment.join(' ').ljust(47).insert(23,' '),
|
41
|
+
print_segment
|
42
|
+
)
|
43
|
+
}
|
44
|
+
|
45
|
+
object.each_byte do |b|
|
46
|
+
if offset == 0
|
47
|
+
hex_segment = []
|
48
|
+
print_segment = []
|
49
|
+
end
|
50
|
+
|
51
|
+
hex_segment << ("%.2x" % b)
|
52
|
+
|
53
|
+
print_segment[offset] = case b
|
54
|
+
when (0x20..0x7e)
|
55
|
+
b.chr
|
56
|
+
else
|
57
|
+
'.'
|
58
|
+
end
|
59
|
+
|
60
|
+
offset += 1
|
61
|
+
|
62
|
+
if (offset >= 16)
|
63
|
+
segment.call
|
64
|
+
|
65
|
+
offset = 0
|
66
|
+
index += 16
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
unless offset == 0
|
71
|
+
segment.call
|
72
|
+
end
|
73
|
+
|
74
|
+
return nil
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|