Package ghidra.app.util.opinion

# Class DyldCacheUtils

java.lang.Object
ghidra.app.util.opinion.DyldCacheUtils

public class DyldCacheUtils extends Object
Utilities methods for working with Mach-O DYLD shared cache binaries.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final record`
  `DyldCacheUtils.DyldCacheImageRecord`
  A `DyldCacheImage` and its corresponding metadata
  `static class`
  `DyldCacheUtils.SplitDyldCache`
  Class to store a "split" DYLD Cache, which is split across several subcache files (base file, .1, .2, .symbols, etc).

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DyldCacheUtils()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static final List<DyldCacheUtils.DyldCacheImageRecord>`
  `getImageRecords(List<DyldCacheHeader> headers)`
  Gets all the `DyldCacheUtils.DyldCacheImageRecord`s for the given `List` of `DyldCacheHeader`s
  `static final boolean`
  `isDyldCache(ByteProvider provider)`
  Determines if the given `ByteProvider` is a DYLD cache.
  `static final boolean`
  `isDyldCache(Program program)`
  Determines if the given `Program` is a DYLD cache.
  `static final boolean`
  `isDyldCache(String signature)`
  Determines if the given signature represents a DYLD cache signature with an architecture we support.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DyldCacheUtils

    public DyldCacheUtils()

- ## Method Details

  - ### isDyldCache

    public static final boolean isDyldCache(Program program)
    Determines if the given `Program` is a DYLD cache.
    Parameters:
      `program` - The `Program`
    Returns:
      True if the given `Program` is a DYLD cache; otherwise, false

  - ### isDyldCache

    public static final boolean isDyldCache(ByteProvider provider)
    Determines if the given `ByteProvider` is a DYLD cache.
    Parameters:
      `provider` - The `ByteProvider`
    Returns:
      True if the given `ByteProvider` is a DYLD cache; otherwise, false

  - ### getImageRecords

    public static final List<DyldCacheUtils.DyldCacheImageRecord> getImageRecords(List<DyldCacheHeader> headers)
    Gets all the `DyldCacheUtils.DyldCacheImageRecord`s for the given `List` of `DyldCacheHeader`s
    Parameters:
      `headers` - The `List` of `DyldCacheHeader`s
    Returns:
      A `List` of `DyldCacheUtils.DyldCacheImageRecord`s

  - ### isDyldCache

    public static final boolean isDyldCache(String signature)
    Determines if the given signature represents a DYLD cache signature with an architecture we support.
    Parameters:
      `signature` - The DYLD cache signature
    Returns:
      True if the given signature represents a DYLD cache signature with an architecture we support; otherwise, false