[DynInst_API:] [dyninst/dyninst] 4e14b3: PIE/PIC aarch64 rewrite implementation (#698)


Date: Wed, 04 Mar 2020 12:55:16 -0800
From: Sasha NÃcolas <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 4e14b3: PIE/PIC aarch64 rewrite implementation (#698)
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 4e14b3ebcb980c2de4d2c3e4404a86445ef26869
      https://github.com/dyninst/dyninst/commit/4e14b3ebcb980c2de4d2c3e4404a86445ef26869
  Author: Sasha NÃcolas <sasha@xxxxxxxxxxx>
  Date:   2020-03-04 (Wed, 04 Mar 2020)

  Changed paths:
    M dyninstAPI/src/Relocation/Widgets/PCWidget-aarch64.C
    M dyninstAPI/src/codegen-aarch64.h
    M dyninstAPI/src/inst-aarch64.C
    M dyninstAPI/src/parse-aarch64.C
    M symtabAPI/h/Region.h
    M symtabAPI/src/Object-elf.C
    M symtabAPI/src/emitElf.C
    M symtabAPI/src/emitElf.h
    M symtabAPI/src/emitElfStatic-aarch64.C

  Log Message:
  -----------
  PIE/PIC aarch64 rewrite implementation (#698)

* Implementing fixes for PIE/PIC for rewrite mode on aarch64

Fixes emitPLTCall and emitPLTJump
Fixes emitCall for binary edit
Fixes emitStoreShared, emitStoreRelative, emitLoadShared, and emitLoadRelative

* Fix emitPLTJump and emitPLTCall for zeroah
LDR instruction on Pre index mode behaves differently
in arm1 and zeroah.

* correct search of libc init and fini handlers (__libc_csu_init and __libc_csu_fini)
mirror functions add_handler and doStaticBinarySpecialCases to the other platforms
fill findGlobalConstructorFunc and findGlobalDestructorFunc
add RT_DYNSYM to Region as type
fix update of info column in the section table
update relocation of type R_AARCH64_IRELATIVE
fix use of moveValueToReg and generateAddSubShifted in IPPatch::apply



[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 4e14b3: PIE/PIC aarch64 rewrite implementation (#698), Sasha NÃcolas <=