class Rex::MachParsey::MachBase::MachHeader
Attributes
bits[RW]
endian[RW]
Public Class Methods
new(rawdata)
click to toggle source
# File lib/rex/machparsey/machbase.rb, line 131 def initialize(rawdata) mach_header = MACH_HEADER_LSB.make_struct if !mach_header.from_s(rawdata) raise MachHeaderError, "Could't access Mach-O Magic", caller end if mach_header.v['magic'] == MH_MAGIC endian = ENDIAN_LSB bits = BITS_32 mach_header = MACH_HEADER_LSB.make_struct elsif mach_header.v['magic'] == MH_CIGAM bits = BITS_32 endian = ENDIAN_MSB mach_header = MACH_HEADER_MSB.make_struct elsif mach_header.v['magic'] == MH_MAGIC_64 endian = ENDIAN_LSB bits = BITS_64 mach_header = MACH_HEADER_LSB.make_struct elsif mach_header.v['magic'] == MH_CIGAM_64 endian = ENDIAN_MSB bits = BITS_64 mach_header = MACH_HEADER_MSB.make_struct else raise MachHeaderError, "Couldn't find Mach Magic", caller end if !mach_header.from_s(rawdata) raise MachHeaderError, "Could't process Mach-O Header", caller end self.struct = mach_header self.endian = endian self.bits = bits end