Class MachoRelocation
- java.lang.Object
-
- ghidra.app.util.bin.format.macho.relocation.MachoRelocation
-
public class MachoRelocation extends java.lang.Object
A representation of a single Mach-O relocation that theMachoRelocationHandler
will use to perform the relocation. In Mach-O, some relocations may be "paired," so an instance of this class may contain 2RelocationInfo
s.
-
-
Constructor Summary
Constructors Constructor Description MachoRelocation(Program program, MachHeader machoHeader, Address relocationAddress, RelocationInfo relocationInfo)
Creates a new unpairedMachoRelocation
objectMachoRelocation(Program program, MachHeader machoHeader, Address relocationAddress, RelocationInfo relocationInfo, RelocationInfo relocationInfoExtra)
Creates a new pairedMachoRelocation
object
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Program
getProgram()
Gets theProgram
associated with this relocationAddress
getRelocationAddress()
Gets theAddress
the relocation takes place atRelocationInfo
getRelocationInfo()
Gets the lower-levelRelocationInfo
that describes the relocationRelocationInfo
getRelocationInfoExtra()
Gets the lower-levelRelocationInfo
that describes the second part of the paired relocation.Address
getTargetAddress()
Gets theAddress
of the relocation targetAddress
getTargetAddressExtra()
Gets theAddress
of the extra relocation targetjava.lang.String
getTargetDescription()
Gets a short description of the target of the relocationboolean
requiresRelocation()
Checks to see if this relocation requires work to be done on it.java.lang.String
toString()
-
-
-
Constructor Detail
-
MachoRelocation
public MachoRelocation(Program program, MachHeader machoHeader, Address relocationAddress, RelocationInfo relocationInfo)
Creates a new unpairedMachoRelocation
object- Parameters:
program
- The programmachoHeader
- The Mach-O headerrelocationAddress
- TheAddress
the relocation takes place atrelocationInfo
- The lower-levelRelocationInfo
that describes the relocation
-
MachoRelocation
public MachoRelocation(Program program, MachHeader machoHeader, Address relocationAddress, RelocationInfo relocationInfo, RelocationInfo relocationInfoExtra)
Creates a new pairedMachoRelocation
object- Parameters:
program
- The programmachoHeader
- The Mach-O headerrelocationAddress
- TheAddress
the relocation takes place atrelocationInfo
- The lower-levelRelocationInfo
that describes the first part of the relocationrelocationInfoExtra
- The lower-levelRelocationInfo
that describes the second part of the relocation
-
-
Method Detail
-
getProgram
public Program getProgram()
Gets theProgram
associated with this relocation- Returns:
- The
Program
associated with this relocation
-
getRelocationAddress
public Address getRelocationAddress()
Gets theAddress
the relocation takes place at- Returns:
- The
Address
the relocation takes place at
-
getRelocationInfo
public RelocationInfo getRelocationInfo()
Gets the lower-levelRelocationInfo
that describes the relocation- Returns:
- The lower-level
RelocationInfo
that describes the relocation
-
getRelocationInfoExtra
public RelocationInfo getRelocationInfoExtra()
Gets the lower-levelRelocationInfo
that describes the second part of the paired relocation. This could be null if the relocation is not paired.- Returns:
- The lower-level
RelocationInfo
that describes the second part of the paired relocation, or null if the relocation is not paired
-
getTargetAddress
public Address getTargetAddress() throws NotFoundException
Gets theAddress
of the relocation target- Returns:
- The
Address
of the relocation target - Throws:
NotFoundException
- If theAddress
of the relocation target could not be found
-
getTargetAddressExtra
public Address getTargetAddressExtra() throws NotFoundException
Gets theAddress
of the extra relocation target- Returns:
- The
Address
of the extra relocation target - Throws:
NotFoundException
- If theAddress
of the extra relocation target could not be found (of if there wasn't an extra relocation target).
-
requiresRelocation
public boolean requiresRelocation()
Checks to see if this relocation requires work to be done on it. Since ourloader
does not allow non-default image bases, it is unnecessary to perform relocations under certain conditions.- Returns:
- True if relocation steps are needed; otherwise, false
-
getTargetDescription
public java.lang.String getTargetDescription()
Gets a short description of the target of the relocation- Returns:
- A short description of the target of the relocation
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-