Class: Rex::Exploitation::OpcodeDb::ImageModule
- Inherits:
-
Object
- Object
- Rex::Exploitation::OpcodeDb::ImageModule
- Extended by:
- Cachable
- Includes:
- DbEntry
- Defined in:
- lib/rex/exploitation/opcodedb.rb
Overview
This class represents a particular image module including its name, segments, imports, exports, base address, and so on.
Defined Under Namespace
Classes: Export, Import, Segment
Instance Attribute Summary collapse
-
#base_address ⇒ Object
readonly
The preferred base address at which the module will load.
-
#exports ⇒ Object
readonly
An array of Export instances.
-
#image_size ⇒ Object
readonly
The size of the image mapping associated with the module in bytes.
-
#imports ⇒ Object
readonly
An array of Import instances.
-
#locale ⇒ Object
readonly
An instance of a Locale class that is associated with this module.
-
#maj_maj_ver ⇒ Object
readonly
The module’s major major version number (X.x.x.x).
-
#maj_min_ver ⇒ Object
readonly
The module’s major minor version number (x.X.x.x).
-
#min_maj_ver ⇒ Object
readonly
The module’s minor major version number (x.x.X.x).
-
#min_min_ver ⇒ Object
readonly
The module’s minor minor version number (x.x.x.X).
-
#platforms ⇒ Object
readonly
An array of OsVersion instances.
-
#segments ⇒ Object
readonly
An array of Segment instances.
-
#timestamp ⇒ Object
readonly
The timestamp that the image was compiled (as a Time instance).
-
#vendor ⇒ Object
readonly
The vendor that created the module.
Attributes included from DbEntry
Attributes included from OpcodeResult
Class Method Summary collapse
-
.hash_key(hash) ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#initialize(hash) ⇒ ImageModule
constructor
A new instance of ImageModule.
Methods included from Cachable
Methods included from DbEntry
Constructor Details
#initialize(hash) ⇒ ImageModule
Returns a new instance of ImageModule.
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 |
# File 'lib/rex/exploitation/opcodedb.rb', line 194 def initialize(hash) super @locale = Locale.create(hash['locale']) @maj_maj_ver = hash['maj_maj_ver'].to_i @maj_min_ver = hash['maj_min_ver'].to_i @min_maj_ver = hash['min_maj_ver'].to_i @min_min_ver = hash['min_min_ver'].to_i @timestamp = Time.at(hash['timestamp'].to_i) @vendor = hash['vendor'] @base_address = hash['base_address'].to_i @image_size = hash['image_size'].to_i @segments = hash['segments'].map { |ent| Segment.new(ent) } if (hash['segments']) @imports = hash['imports'].map { |ent| Import.new(ent) } if (hash['imports']) @exports = hash['exports'].map { |ent| Export.new(ent) } if (hash['exports']) @platforms = hash['platforms'].map { |ent| OsVersion.create(ent) } if (hash['platforms']) @segments = [] unless(@segments) @imports = [] unless(@imports) @exports = [] unless(@exports) @platforms = [] unless(@platforms) end |
Instance Attribute Details
#base_address ⇒ Object (readonly)
The preferred base address at which the module will load.
257 258 259 |
# File 'lib/rex/exploitation/opcodedb.rb', line 257 def base_address @base_address end |
#exports ⇒ Object (readonly)
An array of Export instances.
273 274 275 |
# File 'lib/rex/exploitation/opcodedb.rb', line 273 def exports @exports end |
#image_size ⇒ Object (readonly)
The size of the image mapping associated with the module in bytes.
261 262 263 |
# File 'lib/rex/exploitation/opcodedb.rb', line 261 def image_size @image_size end |
#imports ⇒ Object (readonly)
An array of Import instances.
269 270 271 |
# File 'lib/rex/exploitation/opcodedb.rb', line 269 def imports @imports end |
#locale ⇒ Object (readonly)
An instance of a Locale class that is associated with this module.
229 230 231 |
# File 'lib/rex/exploitation/opcodedb.rb', line 229 def locale @locale end |
#maj_maj_ver ⇒ Object (readonly)
The module’s major major version number (X.x.x.x).
233 234 235 |
# File 'lib/rex/exploitation/opcodedb.rb', line 233 def maj_maj_ver @maj_maj_ver end |
#maj_min_ver ⇒ Object (readonly)
The module’s major minor version number (x.X.x.x).
237 238 239 |
# File 'lib/rex/exploitation/opcodedb.rb', line 237 def maj_min_ver @maj_min_ver end |
#min_maj_ver ⇒ Object (readonly)
The module’s minor major version number (x.x.X.x).
241 242 243 |
# File 'lib/rex/exploitation/opcodedb.rb', line 241 def min_maj_ver @min_maj_ver end |
#min_min_ver ⇒ Object (readonly)
The module’s minor minor version number (x.x.x.X).
245 246 247 |
# File 'lib/rex/exploitation/opcodedb.rb', line 245 def min_min_ver @min_min_ver end |
#platforms ⇒ Object (readonly)
An array of OsVersion instances.
277 278 279 |
# File 'lib/rex/exploitation/opcodedb.rb', line 277 def platforms @platforms end |
#segments ⇒ Object (readonly)
An array of Segment instances.
265 266 267 |
# File 'lib/rex/exploitation/opcodedb.rb', line 265 def segments @segments end |
#timestamp ⇒ Object (readonly)
The timestamp that the image was compiled (as a Time instance).
249 250 251 |
# File 'lib/rex/exploitation/opcodedb.rb', line 249 def @timestamp end |
#vendor ⇒ Object (readonly)
The vendor that created the module.
253 254 255 |
# File 'lib/rex/exploitation/opcodedb.rb', line 253 def vendor @vendor end |
Class Method Details
.hash_key(hash) ⇒ Object
:nodoc:
186 187 188 189 190 191 |
# File 'lib/rex/exploitation/opcodedb.rb', line 186 def hash_key(hash) # :nodoc: (hash['id'] || '') + (hash['segments'] || '').to_s + (hash['exports'] || '').to_s + (hash['imports'] || '').to_s end |