Describir: Robust Low-Overhead Binary Rewriting: Design, Extensibility, and Customizability