Class: Rex::PeParsey::PeBase::FileHeader

Inherits:
GenericHeader show all
Defined in:
lib/rex/peparsey/pebase.rb

Instance Attribute Summary

Attributes inherited from GenericStruct

#struct

Instance Method Summary collapse

Methods inherited from GenericStruct

#[], #keys, #method_missing, #v

Constructor Details

#initialize(rawdata) ⇒ FileHeader

Returns a new instance of FileHeader.



189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
# File 'lib/rex/peparsey/pebase.rb', line 189

def initialize(rawdata)
	file_header = IMAGE_FILE_HEADER.make_struct

	if !file_header.from_s(rawdata)
		raise FileHeaderError, "Couldn't parse IMAGE_FILE_HEADER", caller
	end

	if file_header.v['NtSignature'] != IMAGE_NT_SIGNATURE
		raise FileHeaderError, "Couldn't find the PE magic!"
	end

	if SUPPORTED_MACHINES.include?(file_header.v['Machine']) == false
		raise FileHeaderError, "Unsupported machine type: #{file_header.v['Machine']}", caller
	end

	self.struct = file_header
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Rex::PeParsey::PeBase::GenericStruct

Instance Method Details

#MachineObject



207
208
209
# File 'lib/rex/peparsey/pebase.rb', line 207

def Machine
	v['Machine']
end

#NumberOfSectionsObject



215
216
217
# File 'lib/rex/peparsey/pebase.rb', line 215

def NumberOfSections
	v['NumberOfSections']
end

#SizeOfOptionalHeaderObject



211
212
213
# File 'lib/rex/peparsey/pebase.rb', line 211

def SizeOfOptionalHeader
	v['SizeOfOptionalHeader']
end