Luís Pina

SaBRe: load-time selective binary rewriting

| PDF | |

Paul-Antoine Arras and Anastasios Andronidis and Luís Pina and Karolis Mituzas and Qianyi Shu and Daniel Grumberg and Cristian Cadar
In International Journal on Software Tools for Technology Transfer
April, 2022


Binary rewriting consists in disassembling a program to modify its instructions. However, existing solutions suffer from shortcomings in terms of soundness and performance. We present SaBRe, a load-time system for selective binary rewriting. SaBRe rewrites specific constructs—particularly system calls and functions—when the program is loaded into memory, and intercepts them using plugins through a simple API. We also discuss the theoretical underpinnings of disassembling and rewriting. We developed two backends—for x86_64 and RISC-V—which were used to implement three plugins: a fast system call tracer, a multi-version executor, and a fault injector. Our evaluation shows that SaBRe imposes little overhead, typically below 3%.


  title     = {SaBRe: load-time selective binary rewriting},
  author    = {Arras, Paul-Antoine and Andronidis, Anastasios and Pina, Lu\'{\i}s and Mituzas, Karolis and Shu, Qianyi and Grumberg, Daniel and Cadar, Cristian},
  journal   = {International Journal on Software Tools for Technology Transfer},
  year      = {2022},
  month     = APR,
  volume    = {24},
  number    = {2},
  pages     = {205-223},
  publisher = {Springer-Verlag},