Class DyldCacheSlideInfoCommon

java.lang.Object
ghidra.app.util.bin.format.macho.dyld.DyldCacheSlideInfoCommon
All Implemented Interfaces:
StructConverter
Direct Known Subclasses:
DyldCacheSlideInfo1, DyldCacheSlideInfo2, DyldCacheSlideInfo3, DyldCacheSlideInfo4

public abstract class DyldCacheSlideInfoCommon extends Object implements StructConverter
Class for representing the common components of the various dyld_cache_slide_info structures. The intent is for the the full dyld_cache_slide_info structures to extend this and add their specific parts.
See Also:
  • Field Details

    • DATA_PAGE_MAP_ENTRY

      public static final int DATA_PAGE_MAP_ENTRY
      See Also:
    • BYTES_PER_CHAIN_OFFSET

      public static final int BYTES_PER_CHAIN_OFFSET
      See Also:
    • CHAIN_OFFSET_MASK

      public static final int CHAIN_OFFSET_MASK
      See Also:
    • version

      protected int version
    • slideInfoOffset

      protected long slideInfoOffset
  • Constructor Details

  • Method Details

    • parseSlideInfo

      public static DyldCacheSlideInfoCommon parseSlideInfo(BinaryReader reader, long slideInfoOffset, MessageLog log, TaskMonitor monitor)
      Parses the slide info
      Parameters:
      reader - A BinaryReader positioned at the start of a DYLD slide info
      slideInfoOffset - The offset of the slide info to parse
      log - The log
      monitor - A cancelable task monitor
      Returns:
      The slide info object
    • getVersion

      public int getVersion()
      Gets the version of the DYLD slide info.
      Returns:
      The version of the DYLD slide info.
    • getSlideInfoOffset

      public long getSlideInfoOffset()
      Return the original slide info offset
      Returns:
      the original slide info offset
    • fixPageChains

      public abstract void fixPageChains(Program program, DyldCacheHeader dyldCacheHeader, boolean addRelocations, MessageLog log, TaskMonitor monitor) throws MemoryAccessException, CancelledException
      Throws:
      MemoryAccessException
      CancelledException
    • addRelocationTableEntry

      protected void addRelocationTableEntry(Program program, Address chainLoc, int type, long chainValue, byte[] origBytes, String name) throws MemoryAccessException
      Throws:
      MemoryAccessException
    • createChainPointers

      protected void createChainPointers(Program program, List<Address> unchainedLocList, TaskMonitor monitor) throws CancelledException
      Create pointers at each fixed chain location.
      Parameters:
      program - The program
      unchainedLocList - Address list of fixed pointer locations
      monitor - A cancelable task monitor
      Throws:
      CancelledException - if the user cancels
    • 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.

      Specified by:
      toDataType in interface StructConverter
      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: