Binary Rewriting and ARM Pointer Authentication
Retrofitting control-flow protection into compiled AArch64 software using binary rewriting and ARM Pointer Authentication.
- Research
Problem
Much of the software running on ARM devices is distributed only in compiled form and was built without modern control-flow protections. Recompiling it is often impossible, yet the AArch64 architecture now offers hardware Pointer Authentication that such binaries never use.
Technical approach
- 01Recover the program structure required for safe transformation from compiled AArch64 binaries.
- 02Rewrite the binary to sign and authenticate code pointers using ARM Pointer Authentication instructions.
- 03Enforce control-flow integrity policies on returns and indirect branches in the rewritten program.
- 04Validate that hardened binaries remain functionally correct and measure overhead.
01
Compiled binary
AArch64 executable
02
Analysis
Disassembly & control-flow recovery
03
Instrumentation
PAC signing / CFI checks
04
Hardened binary
Reassembled & validated
Associated publications
This research is ongoing; no publications are associated with it yet.