Class: MachO::MachHeader

Inherits:
MachOStructure show all
Defined in:
lib/macho/headers.rb

Overview

32-bit Mach-O file header structure

Direct Known Subclasses

MachHeader64

Constant Summary collapse

FORMAT =
"VVVVVVV"
SIZEOF =
28

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from MachOStructure

bytesize, new_from_bin

Constructor Details

#initialize(magic, cputype, cpusubtype, filetype, ncmds, sizeofcmds, flags) ⇒ MachHeader

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of MachHeader.



238
239
240
241
242
243
244
245
246
247
# File 'lib/macho/headers.rb', line 238

def initialize(magic, cputype, cpusubtype, filetype, ncmds, sizeofcmds,
		flags)
	@magic = magic
	@cputype = cputype
	@cpusubtype = cpusubtype
	@filetype = filetype
	@ncmds = ncmds
	@sizeofcmds = sizeofcmds
	@flags = flags
end

Instance Attribute Details

#cpusubtypeFixnum (readonly)

Returns the CPU subtype of the Mach-O.

Returns:

  • (Fixnum)

    the CPU subtype of the Mach-O



220
221
222
# File 'lib/macho/headers.rb', line 220

def cpusubtype
  @cpusubtype
end

#cputypeFixnum (readonly)

Returns the CPU type of the Mach-O.

Returns:

  • (Fixnum)

    the CPU type of the Mach-O



217
218
219
# File 'lib/macho/headers.rb', line 217

def cputype
  @cputype
end

#filetypeFixnum (readonly)

Returns the file type of the Mach-O.

Returns:

  • (Fixnum)

    the file type of the Mach-O



223
224
225
# File 'lib/macho/headers.rb', line 223

def filetype
  @filetype
end

#flagsFixnum (readonly)

Returns the header flags associated with the Mach-O.

Returns:

  • (Fixnum)

    the header flags associated with the Mach-O



232
233
234
# File 'lib/macho/headers.rb', line 232

def flags
  @flags
end

#magicFixnum (readonly)

Returns the magic number.

Returns:

  • (Fixnum)

    the magic number



214
215
216
# File 'lib/macho/headers.rb', line 214

def magic
  @magic
end

#ncmdsFixnum (readonly)

Returns the number of load commands in the Mach-O.

Returns:

  • (Fixnum)

    the number of load commands in the Mach-O



226
227
228
# File 'lib/macho/headers.rb', line 226

def ncmds
  @ncmds
end

#sizeofcmdsFixnum (readonly)

Returns the size of all load commands, in bytes, in the Mach-O.

Returns:

  • (Fixnum)

    the size of all load commands, in bytes, in the Mach-O



229
230
231
# File 'lib/macho/headers.rb', line 229

def sizeofcmds
  @sizeofcmds
end

Instance Method Details

#flag?(flag) ⇒ Boolean

Returns true if flag is present in the header's flag section.

Examples:

puts "this mach-o has position-independent execution" if header.flag?(:MH_PIE)

Parameters:

  • flag (Symbol)

    a mach header flag symbol

Returns:

  • (Boolean)

    true if flag is present in the header's flag section



253
254
255
256
257
# File 'lib/macho/headers.rb', line 253

def flag?(flag)
	flag = MH_FLAGS[flag]
	return false if flag.nil?
	flags & flag == flag
end