Class SegmentCommand

java.lang.Object
ghidra.app.util.bin.format.macho.commands.LoadCommand
ghidra.app.util.bin.format.macho.commands.SegmentCommand
All Implemented Interfaces:
StructConverter

public class SegmentCommand extends LoadCommand
Represents a segment_command and segment_command_64 structure
  • Constructor Details

  • Method Details

    • getSections

      public List<Section> getSections()
    • getSectionContaining

      public Section getSectionContaining(Address address)
    • getSectionByName

      public Section getSectionByName(String sectionName)
    • getSegmentName

      public String getSegmentName()
    • getVMaddress

      public long getVMaddress()
    • getVMsize

      public long getVMsize()
    • getFileOffset

      public long getFileOffset()
    • setFileOffset

      public void setFileOffset(long fileOffset)
    • getFileSize

      public long getFileSize()
    • getMaxProtection

      public int getMaxProtection()
      Returns a octal model value reflecting the segment's maximum protection value allowed. For example: 7 -> 0x111 -> rwx 5 -> 0x101 -> rx
      Returns:
      the maximum protections of a segment
    • getInitProtection

      public int getInitProtection()
      Returns a octal model value reflecting the segment's initial protection value. For example: 7 -> 0x111 -> rwx 5 -> 0x101 -> rx
      Returns:
      the initial protections of a segment
    • isRead

      public boolean isRead()
      Returns true if the initial protections include READ.
      Returns:
      true if the initial protections include READ
    • isWrite

      public boolean isWrite()
      Returns true if the initial protections include WRITE.
      Returns:
      true if the initial protections include WRITE
    • isExecute

      public boolean isExecute()
      Returns true if the initial protections include EXECUTE.
      Returns:
      true if the initial protections include EXECUTE
    • getNumberOfSections

      public int getNumberOfSections()
    • getFlags

      public int getFlags()
    • isAppleProtected

      public boolean isAppleProtected()
    • toDataType

      public DataType toDataType() throws DuplicateNameException, IOException
      Description copied from interface: StructConverter
      Returns a structure datatype representing the contents of the implementor of this interface.

      For example, given:

       class A {
           int foo;
           double bar;
       }
       

      The return value should be a structure data type with two data type components; an INT and a DOUBLE. The structure should contain field names and, if possible, field comments.

      Returns:
      returns a structure datatype representing the implementor of this interface
      Throws:
      DuplicateNameException - when a datatype of the same name already exists
      IOException
      See Also:
    • getCommandName

      public String getCommandName()
      Description copied from class: LoadCommand
      Gets the name of this load command
      Specified by:
      getCommandName in class LoadCommand
      Returns:
      The name of this load command
    • markup

      public void markup(MachHeader header, FlatProgramAPI api, Address baseAddress, boolean isBinary, ProgramModule parentModule, TaskMonitor monitor, MessageLog log)
      Description copied from class: LoadCommand
      Marks-up the program with the data structures for this load command
      Specified by:
      markup in class LoadCommand
      Parameters:
      header - the mach header
      api - the flat program api
      baseAddress - the base address to apply the mark-up
      isBinary - true if mach-o was loaded as binary
      parentModule - parent module to create fragments
      monitor - the task monitor
      log - the message logS
    • toString

      public String toString()
      Overrides:
      toString in class Object