Class MachoRelocation
java.lang.Object
ghidra.app.util.bin.format.macho.relocation.MachoRelocation
A representation of a single Mach-O relocation that the
MachoRelocationHandler will use
to perform the relocation. In Mach-O, some relocations may be "paired," so an instance of this
class may contain 2 RelocationInfos.-
Constructor Summary
ConstructorsConstructorDescriptionMachoRelocation(Program program, MachHeader machoHeader, Address relocationAddress, RelocationInfo relocationInfo) Creates a new unpairedMachoRelocationobjectMachoRelocation(Program program, MachHeader machoHeader, Address relocationAddress, RelocationInfo relocationInfo, RelocationInfo relocationInfoExtra) Creates a new pairedMachoRelocationobject -
Method Summary
Modifier and TypeMethodDescriptionGets theProgramassociated with this relocationGets theAddressthe relocation takes place atGets the lower-levelRelocationInfothat describes the relocationGets the lower-levelRelocationInfothat describes the second part of the paired relocation.Gets theAddressof the relocation targetGets theAddressof the extra relocation targetGets a short description of the target of the relocationbooleanChecks to see if this relocation requires work to be done on it.toString()
-
Constructor Details
-
MachoRelocation
public MachoRelocation(Program program, MachHeader machoHeader, Address relocationAddress, RelocationInfo relocationInfo) Creates a new unpairedMachoRelocationobject- Parameters:
program- The programmachoHeader- The Mach-O headerrelocationAddress- TheAddressthe relocation takes place atrelocationInfo- The lower-levelRelocationInfothat describes the relocation
-
MachoRelocation
public MachoRelocation(Program program, MachHeader machoHeader, Address relocationAddress, RelocationInfo relocationInfo, RelocationInfo relocationInfoExtra) Creates a new pairedMachoRelocationobject- Parameters:
program- The programmachoHeader- The Mach-O headerrelocationAddress- TheAddressthe relocation takes place atrelocationInfo- The lower-levelRelocationInfothat describes the first part of the relocationrelocationInfoExtra- The lower-levelRelocationInfothat describes the second part of the relocation
-
-
Method Details
-
getProgram
Gets theProgramassociated with this relocation- Returns:
- The
Programassociated with this relocation
-
getRelocationAddress
Gets theAddressthe relocation takes place at- Returns:
- The
Addressthe relocation takes place at
-
getRelocationInfo
Gets the lower-levelRelocationInfothat describes the relocation- Returns:
- The lower-level
RelocationInfothat describes the relocation
-
getRelocationInfoExtra
Gets the lower-levelRelocationInfothat describes the second part of the paired relocation. This could be null if the relocation is not paired.- Returns:
- The lower-level
RelocationInfothat describes the second part of the paired relocation, or null if the relocation is not paired
-
getTargetAddress
Gets theAddressof the relocation target- Returns:
- The
Addressof the relocation target - Throws:
RelocationException- If theAddressof the relocation target could not be found
-
getTargetAddressExtra
Gets theAddressof the extra relocation target- Returns:
- The
Addressof the extra relocation target - Throws:
RelocationException- If theAddressof 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 ourloaderdoes 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
Gets a short description of the target of the relocation- Returns:
- A short description of the target of the relocation
-
toString
-