Class Arm64Relocator

Relocates machine code for arm64.

Hierarchy

  • Arm64Relocator

Constructors

  • Creates a new code relocator for copying AArch64 instructions from one memory location to another, taking care to adjust position-dependent instructions accordingly.

    Parameters

    • inputCode: NativePointerValue

      Source address to copy instructions from.

    • output: Arm64Writer

      Arm64Writer pointed at the desired target memory address.

    Returns Arm64Relocator

Properties

eob: boolean

Indicates whether end-of-block has been reached, i.e. we've reached a branch of any kind, like CALL, JMP, BL, RET.

eoi: boolean

Indicates whether end-of-input has been reached, e.g. we've reached JMP/B/RET, an instruction after which there may or may not be valid code.

input: null | Instruction

Latest Instruction read so far. Starts out null and changes on every call to readOne().

Methods

  • Eagerly cleans up memory.

    Returns void

  • Peeks at the next Instruction to be written or skipped.

    Returns null | Instruction

  • Peeks at the address of the next instruction to be written or skipped.

    Returns NativePointer

  • Reads the next instruction into the relocator's internal buffer and returns the number of bytes read so far, including previous calls.

    You may keep calling this method to keep buffering, or immediately call either writeOne() or skipOne(). Or, you can buffer up until the desired point and then call writeAll().

    Returns zero when end-of-input is reached, which means the eoi property is now true.

    Returns number

  • Skips the instruction that would have been written next.

    Returns void

  • Writes all buffered instructions.

    Returns void

  • Writes the next buffered instruction.

    Returns boolean

Generated using TypeDoc