ronin 0.0.9
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/COPYING.txt +339 -0
- data/History.txt +34 -0
- data/Manifest.txt +157 -0
- data/README.txt +131 -0
- data/Rakefile +23 -0
- data/TODO.txt +6 -0
- data/bin/ronin +12 -0
- data/lib/ronin.rb +35 -0
- data/lib/ronin/arch.rb +86 -0
- data/lib/ronin/author.rb +88 -0
- data/lib/ronin/cache.rb +27 -0
- data/lib/ronin/cache/config.rb +34 -0
- data/lib/ronin/cache/exceptions.rb +25 -0
- data/lib/ronin/cache/exceptions/extension_not_found.rb +29 -0
- data/lib/ronin/cache/exceptions/overlay_cached.rb +29 -0
- data/lib/ronin/cache/exceptions/overlay_not_found.rb +29 -0
- data/lib/ronin/cache/extension.rb +706 -0
- data/lib/ronin/cache/extension_cache.rb +108 -0
- data/lib/ronin/cache/overlay.rb +418 -0
- data/lib/ronin/cache/overlay_cache.rb +228 -0
- data/lib/ronin/cache/ronin.rb +50 -0
- data/lib/ronin/chars.rb +25 -0
- data/lib/ronin/chars/char_set.rb +121 -0
- data/lib/ronin/chars/chars.rb +180 -0
- data/lib/ronin/config.rb +31 -0
- data/lib/ronin/console.rb +127 -0
- data/lib/ronin/context.rb +233 -0
- data/lib/ronin/database.rb +122 -0
- data/lib/ronin/environment.rb +39 -0
- data/lib/ronin/exceptions/context_not_found.rb +27 -0
- data/lib/ronin/exceptions/invalid_database_config.rb +27 -0
- data/lib/ronin/exceptions/object_context_not_found.rb +27 -0
- data/lib/ronin/exceptions/unknown_context.rb +27 -0
- data/lib/ronin/exceptions/unknown_object_context.rb +27 -0
- data/lib/ronin/extensions.rb +28 -0
- data/lib/ronin/extensions/hash.rb +62 -0
- data/lib/ronin/extensions/kernel.rb +34 -0
- data/lib/ronin/extensions/meta.rb +24 -0
- data/lib/ronin/extensions/meta/object.rb +24 -0
- data/lib/ronin/extensions/string.rb +37 -0
- data/lib/ronin/extensions/uri.rb +24 -0
- data/lib/ronin/extensions/uri/http.rb +78 -0
- data/lib/ronin/extensions/uri/query_params.rb +97 -0
- data/lib/ronin/formatting.rb +29 -0
- data/lib/ronin/formatting/binary.rb +24 -0
- data/lib/ronin/formatting/digest.rb +24 -0
- data/lib/ronin/formatting/extensions.rb +26 -0
- data/lib/ronin/formatting/extensions/binary.rb +25 -0
- data/lib/ronin/formatting/extensions/binary/integer.rb +59 -0
- data/lib/ronin/formatting/extensions/binary/string.rb +73 -0
- data/lib/ronin/formatting/extensions/digest.rb +24 -0
- data/lib/ronin/formatting/extensions/digest/string.rb +65 -0
- data/lib/ronin/formatting/extensions/html.rb +24 -0
- data/lib/ronin/formatting/extensions/html/string.rb +75 -0
- data/lib/ronin/formatting/extensions/http.rb +24 -0
- data/lib/ronin/formatting/extensions/http/string.rb +69 -0
- data/lib/ronin/formatting/extensions/text.rb +24 -0
- data/lib/ronin/formatting/extensions/text/string.rb +96 -0
- data/lib/ronin/formatting/html.rb +24 -0
- data/lib/ronin/formatting/http.rb +24 -0
- data/lib/ronin/formatting/text.rb +24 -0
- data/lib/ronin/license.rb +87 -0
- data/lib/ronin/model.rb +44 -0
- data/lib/ronin/models.rb +34 -0
- data/lib/ronin/network.rb +31 -0
- data/lib/ronin/network/esmtp.rb +24 -0
- data/lib/ronin/network/extensions.rb +31 -0
- data/lib/ronin/network/extensions/esmtp.rb +24 -0
- data/lib/ronin/network/extensions/esmtp/net.rb +68 -0
- data/lib/ronin/network/extensions/http.rb +24 -0
- data/lib/ronin/network/extensions/http/net.rb +303 -0
- data/lib/ronin/network/extensions/imap.rb +24 -0
- data/lib/ronin/network/extensions/imap/net.rb +92 -0
- data/lib/ronin/network/extensions/pop3.rb +24 -0
- data/lib/ronin/network/extensions/pop3/net.rb +65 -0
- data/lib/ronin/network/extensions/smtp.rb +24 -0
- data/lib/ronin/network/extensions/smtp/net.rb +80 -0
- data/lib/ronin/network/extensions/tcp.rb +24 -0
- data/lib/ronin/network/extensions/tcp/net.rb +94 -0
- data/lib/ronin/network/extensions/telnet.rb +24 -0
- data/lib/ronin/network/extensions/telnet/net.rb +132 -0
- data/lib/ronin/network/extensions/udp.rb +24 -0
- data/lib/ronin/network/extensions/udp/net.rb +99 -0
- data/lib/ronin/network/http.rb +128 -0
- data/lib/ronin/network/http/exceptions.rb +24 -0
- data/lib/ronin/network/http/exceptions/unknown_request.rb +31 -0
- data/lib/ronin/network/imap.rb +47 -0
- data/lib/ronin/network/pop3.rb +47 -0
- data/lib/ronin/network/smtp.rb +26 -0
- data/lib/ronin/network/smtp/email.rb +126 -0
- data/lib/ronin/network/smtp/smtp.rb +55 -0
- data/lib/ronin/network/tcp.rb +24 -0
- data/lib/ronin/network/telnet.rb +95 -0
- data/lib/ronin/network/udp.rb +24 -0
- data/lib/ronin/object_context.rb +257 -0
- data/lib/ronin/objects.rb +29 -0
- data/lib/ronin/parameters.rb +27 -0
- data/lib/ronin/parameters/class_param.rb +45 -0
- data/lib/ronin/parameters/exceptions.rb +25 -0
- data/lib/ronin/parameters/exceptions/missing_param.rb +29 -0
- data/lib/ronin/parameters/exceptions/param_not_found.rb +29 -0
- data/lib/ronin/parameters/instance_param.rb +57 -0
- data/lib/ronin/parameters/param.rb +45 -0
- data/lib/ronin/parameters/parameters.rb +275 -0
- data/lib/ronin/path.rb +70 -0
- data/lib/ronin/pending_context.rb +42 -0
- data/lib/ronin/persistence.rb +32 -0
- data/lib/ronin/platform.rb +95 -0
- data/lib/ronin/product.rb +56 -0
- data/lib/ronin/ronin.rb +49 -0
- data/lib/ronin/rpc.rb +27 -0
- data/lib/ronin/rpc/call.rb +75 -0
- data/lib/ronin/rpc/client.rb +91 -0
- data/lib/ronin/rpc/console.rb +79 -0
- data/lib/ronin/rpc/exceptions.rb +25 -0
- data/lib/ronin/rpc/exceptions/not_implemented.rb +29 -0
- data/lib/ronin/rpc/exceptions/response_missing.rb +29 -0
- data/lib/ronin/rpc/interactive.rb +55 -0
- data/lib/ronin/rpc/interactive_console.rb +58 -0
- data/lib/ronin/rpc/interactive_shell.rb +59 -0
- data/lib/ronin/rpc/response.rb +57 -0
- data/lib/ronin/rpc/service.rb +69 -0
- data/lib/ronin/rpc/shell.rb +66 -0
- data/lib/ronin/runner.rb +24 -0
- data/lib/ronin/runner/program.rb +26 -0
- data/lib/ronin/runner/program/command.rb +204 -0
- data/lib/ronin/runner/program/commands.rb +33 -0
- data/lib/ronin/runner/program/commands/add.rb +73 -0
- data/lib/ronin/runner/program/commands/help.rb +52 -0
- data/lib/ronin/runner/program/commands/install.rb +65 -0
- data/lib/ronin/runner/program/commands/list.rb +81 -0
- data/lib/ronin/runner/program/commands/remove.rb +57 -0
- data/lib/ronin/runner/program/commands/uninstall.rb +57 -0
- data/lib/ronin/runner/program/commands/update.rb +55 -0
- data/lib/ronin/runner/program/exceptions.rb +24 -0
- data/lib/ronin/runner/program/exceptions/unknown_command.rb +31 -0
- data/lib/ronin/runner/program/options.rb +205 -0
- data/lib/ronin/runner/program/program.rb +173 -0
- data/lib/ronin/runner/program/runner.rb +35 -0
- data/lib/ronin/sessions.rb +32 -0
- data/lib/ronin/sessions/esmtp.rb +76 -0
- data/lib/ronin/sessions/imap.rb +73 -0
- data/lib/ronin/sessions/pop3.rb +70 -0
- data/lib/ronin/sessions/session.rb +52 -0
- data/lib/ronin/sessions/smtp.rb +76 -0
- data/lib/ronin/sessions/tcp.rb +111 -0
- data/lib/ronin/sessions/telnet.rb +76 -0
- data/lib/ronin/sessions/udp.rb +99 -0
- data/lib/ronin/sessions/web.rb +83 -0
- data/lib/ronin/shell.rb +81 -0
- data/lib/ronin/target.rb +40 -0
- data/lib/ronin/version.rb +27 -0
- data/lib/ronin/web.rb +24 -0
- data/lib/ronin/web/web.rb +265 -0
- data/spec/spec_helper.rb +9 -0
- data/tasks/spec.rb +7 -0
- metadata +324 -0
data/README.txt
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
= Ronin
|
|
2
|
+
|
|
3
|
+
* http://ronin.rubyforge.org/
|
|
4
|
+
* Postmodern Modulus III
|
|
5
|
+
|
|
6
|
+
== DESCRIPTION:
|
|
7
|
+
|
|
8
|
+
Ronin is a Ruby platform designed for information security and data
|
|
9
|
+
exploration tasks. Ronin allows for the rapid development and distribution
|
|
10
|
+
of code over many of the common Source-Code-Management (SCM) systems.
|
|
11
|
+
|
|
12
|
+
=== Free
|
|
13
|
+
|
|
14
|
+
All source code within Ronin is licensed under the GPL-2, therefore no user
|
|
15
|
+
will ever have to pay for Ronin or updates to Ronin. Not only is the
|
|
16
|
+
source code free, the Ronin project will not sell enterprise grade security
|
|
17
|
+
snake-oil solutions, give private training classes or later turn Ronin into
|
|
18
|
+
commercial software.
|
|
19
|
+
|
|
20
|
+
=== Modular
|
|
21
|
+
|
|
22
|
+
Ronin was not designed as one monolithic library but instead as a collection
|
|
23
|
+
of libraries which can be individually installed. This allows users to pick
|
|
24
|
+
and choose what functionality they want in Ronin.
|
|
25
|
+
|
|
26
|
+
=== Decentralized
|
|
27
|
+
|
|
28
|
+
Ronin does not have a central repository of exploits and payloads which
|
|
29
|
+
all developers contribute to. Instead Ronin has Overlays, repositories of
|
|
30
|
+
code that can be hosted on any CVS/SVN/Git/Rsync server. Users can then use
|
|
31
|
+
Ronin to quickly install or update Overlays. This allows developers and
|
|
32
|
+
users to form their own communities, independent of the main developers
|
|
33
|
+
of Ronin.
|
|
34
|
+
|
|
35
|
+
== FEATURES:
|
|
36
|
+
|
|
37
|
+
* Supports installing/updating/uninstalling of Overlays.
|
|
38
|
+
* Supports accessing Overlays from various media types:
|
|
39
|
+
* CVS
|
|
40
|
+
* Subversion (SVN)
|
|
41
|
+
* Git
|
|
42
|
+
* Rsync
|
|
43
|
+
* Darcs
|
|
44
|
+
* Allows for the loading of Extensions from one or more Overlays.
|
|
45
|
+
* Provides persistent storage of objects using DataMapper.
|
|
46
|
+
* Caches and mirrors objects stored in Overlays using DataMapper.
|
|
47
|
+
* Provides convenience methods for:
|
|
48
|
+
* Formatting data:
|
|
49
|
+
* Binary
|
|
50
|
+
* HTTP
|
|
51
|
+
* URIs
|
|
52
|
+
* HTML
|
|
53
|
+
* Generating random text.
|
|
54
|
+
* Networking:
|
|
55
|
+
* TCP
|
|
56
|
+
* UDP
|
|
57
|
+
* SMTP
|
|
58
|
+
* POP
|
|
59
|
+
* Imap
|
|
60
|
+
* Telnet
|
|
61
|
+
* HTTP
|
|
62
|
+
* Web access (utilizing Mechanize and Hpricot).
|
|
63
|
+
* Provides an IRB styled console with:
|
|
64
|
+
* Tab-completion enabled.
|
|
65
|
+
* Auto-indentation enabled.
|
|
66
|
+
* Pretty-Print loaded.
|
|
67
|
+
|
|
68
|
+
== SYNOPSIS:
|
|
69
|
+
|
|
70
|
+
* List installed Overlays:
|
|
71
|
+
|
|
72
|
+
$ ronin ls
|
|
73
|
+
|
|
74
|
+
* Install an Overlay:
|
|
75
|
+
|
|
76
|
+
$ ronin install svn://example.com/var/svn/overlay
|
|
77
|
+
|
|
78
|
+
* Update all installed Overlays:
|
|
79
|
+
|
|
80
|
+
$ ronin up
|
|
81
|
+
|
|
82
|
+
* Update a specific Overlay:
|
|
83
|
+
|
|
84
|
+
$ ronin up overlay-name
|
|
85
|
+
|
|
86
|
+
* Uninstall an Overlay:
|
|
87
|
+
|
|
88
|
+
$ ronin uninstall overlay-name
|
|
89
|
+
|
|
90
|
+
* Start the Ronin console:
|
|
91
|
+
|
|
92
|
+
$ ronin
|
|
93
|
+
|
|
94
|
+
== REQUIREMENTS:
|
|
95
|
+
|
|
96
|
+
* Hpricot
|
|
97
|
+
* Mechanize
|
|
98
|
+
* DataMapper:
|
|
99
|
+
* dm-core
|
|
100
|
+
* data_objects
|
|
101
|
+
* do_sqlite3
|
|
102
|
+
* dm-types
|
|
103
|
+
* dm-serializer
|
|
104
|
+
* dm-aggregates
|
|
105
|
+
* reverserequire
|
|
106
|
+
* R'epertoire
|
|
107
|
+
|
|
108
|
+
== INSTALL:
|
|
109
|
+
|
|
110
|
+
$ sudo gem install ronin
|
|
111
|
+
|
|
112
|
+
== LICENSE:
|
|
113
|
+
|
|
114
|
+
Ronin - A Ruby platform designed for information security and data
|
|
115
|
+
exploration tasks.
|
|
116
|
+
|
|
117
|
+
Copyright (c) 2006-2008 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
118
|
+
|
|
119
|
+
This program is free software; you can redistribute it and/or modify
|
|
120
|
+
it under the terms of the GNU General Public License as published by
|
|
121
|
+
the Free Software Foundation; either version 2 of the License, or
|
|
122
|
+
(at your option) any later version.
|
|
123
|
+
|
|
124
|
+
This program is distributed in the hope that it will be useful,
|
|
125
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
126
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
127
|
+
GNU General Public License for more details.
|
|
128
|
+
|
|
129
|
+
You should have received a copy of the GNU General Public License
|
|
130
|
+
along with this program; if not, write to the Free Software
|
|
131
|
+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
data/Rakefile
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# -*- ruby -*-
|
|
2
|
+
|
|
3
|
+
require 'rubygems'
|
|
4
|
+
require 'hoe'
|
|
5
|
+
require './tasks/spec.rb'
|
|
6
|
+
require './lib/ronin/version.rb'
|
|
7
|
+
|
|
8
|
+
Hoe.new('ronin', Ronin::VERSION) do |p|
|
|
9
|
+
p.rubyforge_name = 'ronin'
|
|
10
|
+
p.developer('Postmodern Modulus III','postmodern.mod3@gmail.com')
|
|
11
|
+
p.extra_deps = ['hpricot',
|
|
12
|
+
'mechanize',
|
|
13
|
+
['dm-core', '>=0.9.3'],
|
|
14
|
+
['data_objects', '>=0.9.3'],
|
|
15
|
+
['do_sqlite3', '>=0.9.3'],
|
|
16
|
+
['dm-types', '>=0.9.3'],
|
|
17
|
+
['dm-serializer', '>=0.9.3'],
|
|
18
|
+
['dm-aggregates', '>=0.9.3'],
|
|
19
|
+
['reverserequire', '>=0.1.0'],
|
|
20
|
+
['repertoire', '>=0.1.2']]
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# vim: syntax=Ruby
|
data/TODO.txt
ADDED
data/bin/ronin
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'rubygems'
|
|
4
|
+
|
|
5
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__),'..','lib'))
|
|
6
|
+
unless $LOAD_PATH.include?(lib_dir)
|
|
7
|
+
$LOAD_PATH << lib_dir
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
require 'ronin/runner/program'
|
|
11
|
+
|
|
12
|
+
Ronin::Runner.program(ARGV)
|
data/lib/ronin.rb
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#
|
|
2
|
+
#--
|
|
3
|
+
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
+
# exploration tasks.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2006-2008 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/extensions'
|
|
25
|
+
require 'ronin/environment'
|
|
26
|
+
require 'ronin/formatting'
|
|
27
|
+
require 'ronin/chars'
|
|
28
|
+
require 'ronin/path'
|
|
29
|
+
require 'ronin/network'
|
|
30
|
+
require 'ronin/web'
|
|
31
|
+
require 'ronin/persistence'
|
|
32
|
+
require 'ronin/ronin'
|
|
33
|
+
require 'ronin/version'
|
|
34
|
+
|
|
35
|
+
Ronin::Environment.load
|
data/lib/ronin/arch.rb
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
#
|
|
2
|
+
#--
|
|
3
|
+
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
+
# exploration tasks.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2006-2008 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/extensions/meta'
|
|
25
|
+
require 'ronin/extensions/string'
|
|
26
|
+
require 'ronin/model'
|
|
27
|
+
|
|
28
|
+
module Ronin
|
|
29
|
+
class Arch
|
|
30
|
+
|
|
31
|
+
include Model
|
|
32
|
+
|
|
33
|
+
property :id, Serial
|
|
34
|
+
|
|
35
|
+
# Name of the architecture
|
|
36
|
+
property :name, String
|
|
37
|
+
|
|
38
|
+
# Endianness of the architecture
|
|
39
|
+
property :endian, String
|
|
40
|
+
|
|
41
|
+
# Address length of the architecture
|
|
42
|
+
property :address_length, Integer
|
|
43
|
+
|
|
44
|
+
#
|
|
45
|
+
# Returns the name of the arch as a String.
|
|
46
|
+
#
|
|
47
|
+
def to_s
|
|
48
|
+
@name.to_s
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
#
|
|
52
|
+
# Defines a new builtin Arch with the specified _name_ and the given
|
|
53
|
+
# _opts_. If _block_ is given, it will be passed the newly created
|
|
54
|
+
# Arch.
|
|
55
|
+
#
|
|
56
|
+
def Arch.define(name,options={})
|
|
57
|
+
name = name.to_s
|
|
58
|
+
endian = options[:endian].to_s
|
|
59
|
+
address_length = options[:address_length].to_i
|
|
60
|
+
|
|
61
|
+
meta_def(name.to_method_name) do
|
|
62
|
+
Arch.first_or_create(:name => name,
|
|
63
|
+
:endian => endian,
|
|
64
|
+
:address_length => address_length)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
return nil
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
define :i386, :endian => :little, :address_length => 4
|
|
71
|
+
define :i486, :endian => :little, :address_length => 4
|
|
72
|
+
define :i686, :endian => :little, :address_length => 4
|
|
73
|
+
define :i986, :endian => :little, :address_length => 4
|
|
74
|
+
define :x86_64, :endian => :little, :address_length => 8
|
|
75
|
+
define :ia64, :endian => :little, :address_length => 8
|
|
76
|
+
define :ppc, :endian => :big, :address_length => 4
|
|
77
|
+
define :ppc64, :endian => :big, :address_length => 8
|
|
78
|
+
define :sparc, :endian => :big, :address_length => 4
|
|
79
|
+
define :sparc64, :endian => :big, :address_length => 8
|
|
80
|
+
define :mips_le, :endian => :little, :address_length => 4
|
|
81
|
+
define :mips_be, :endian => :big, :address_length => 4
|
|
82
|
+
define :arm_le, :endian => :little, :address_length => 4
|
|
83
|
+
define :arm_be, :endian => :big, :address_length => 4
|
|
84
|
+
|
|
85
|
+
end
|
|
86
|
+
end
|
data/lib/ronin/author.rb
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#
|
|
2
|
+
#--
|
|
3
|
+
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
+
# exploration tasks.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2006-2008 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/model'
|
|
25
|
+
|
|
26
|
+
require 'rexml/document'
|
|
27
|
+
require 'uri'
|
|
28
|
+
|
|
29
|
+
module Ronin
|
|
30
|
+
class Author
|
|
31
|
+
|
|
32
|
+
include Model
|
|
33
|
+
|
|
34
|
+
# Anonymouse author name.
|
|
35
|
+
ANONYMOUSE = 'anonymous'
|
|
36
|
+
|
|
37
|
+
property :id, Serial
|
|
38
|
+
|
|
39
|
+
# Name of author
|
|
40
|
+
property :name, String
|
|
41
|
+
|
|
42
|
+
# Author's associated group
|
|
43
|
+
property :organization, String
|
|
44
|
+
|
|
45
|
+
# Author's PGP signature
|
|
46
|
+
property :pgp_signature, Text
|
|
47
|
+
|
|
48
|
+
# Author's email
|
|
49
|
+
property :email, String
|
|
50
|
+
|
|
51
|
+
# Author's site
|
|
52
|
+
property :site, String
|
|
53
|
+
|
|
54
|
+
# Author's biography
|
|
55
|
+
property :biography, Text
|
|
56
|
+
|
|
57
|
+
#
|
|
58
|
+
# Creates a new Author object with the given _name_ and _info_. The
|
|
59
|
+
# _name_ defaults to ANONYMOUSE. If _block_ is given, it will be passed
|
|
60
|
+
# the newly created Author object.
|
|
61
|
+
#
|
|
62
|
+
# _info_ may contain the following keys:
|
|
63
|
+
# <tt>:organization</tt>:: The organization of the author.
|
|
64
|
+
# <tt>:pgp_signature</tt>:: The PGP signature of the author.
|
|
65
|
+
# <tt>:email</tt>:: The email address of the author.
|
|
66
|
+
# <tt>:url</tt>:: The URL for the author.
|
|
67
|
+
# <tt>:biography</tt>:: The biography of the author.
|
|
68
|
+
#
|
|
69
|
+
def initialize(name=ANONYMOUSE,info={},&block)
|
|
70
|
+
@name = name
|
|
71
|
+
@organization= info[:organization]
|
|
72
|
+
@pgp_signature = info[:pgp_signature]
|
|
73
|
+
@email = info[:email]
|
|
74
|
+
@url = info[:url]
|
|
75
|
+
@biography = info[:biography]
|
|
76
|
+
|
|
77
|
+
block.call(self) if block
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
#
|
|
81
|
+
# Returns the name of the author.
|
|
82
|
+
#
|
|
83
|
+
def to_s
|
|
84
|
+
@name.to_s
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
end
|
|
88
|
+
end
|
data/lib/ronin/cache.rb
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#
|
|
2
|
+
#--
|
|
3
|
+
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
+
# exploration tasks.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2006-2008 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/cache/exceptions'
|
|
25
|
+
require 'ronin/cache/extension'
|
|
26
|
+
require 'ronin/cache/overlay'
|
|
27
|
+
require 'ronin/cache/ronin'
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#
|
|
2
|
+
#--
|
|
3
|
+
# Ronin - A Ruby platform designed for information security and data
|
|
4
|
+
# exploration tasks.
|
|
5
|
+
#
|
|
6
|
+
# Copyright (c) 2006-2008 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/config'
|
|
25
|
+
|
|
26
|
+
module Ronin
|
|
27
|
+
module Config
|
|
28
|
+
# Path to overlays directory
|
|
29
|
+
OVERLAY_DIR = File.join(Config::PATH,'overlays')
|
|
30
|
+
|
|
31
|
+
# Path to overlays cache file
|
|
32
|
+
OVERLAY_CACHE_PATH = File.join(Config::PATH,'overlays.yaml')
|
|
33
|
+
end
|
|
34
|
+
end
|