Skip to content

R-Visor

R-Visor is an extensible modular dynamic binary instrumentation (DBI) tool designed for open Instruction Set Architecture (ISA) ecosystems, facilitating architectural research and development.

Open ISAs such RISC-V are being widely adopted as the lack of a licensing requirement provides extensibility; Users can freely develop custom instructions and extensions. However, traditional instrumentation tools, built for closed ISAs, lack the adaptability to easily support new extensions. Therefore, a key requirement for modern instrumentation tools is easy extensibility.

R-Visor addresses this challenge by leveraging the ArchVisor DSL, which allows users to readily incorporate new ISA extensions. Additionally, R-Visor provides a modular, highly extensible platform with a user-friendly instrumentation API.

Key Advantages of R-Visor

R-Visor is built from the ground up with the unique challenges and opportunities of open ISAs in mind:

  • Extensibility : Leveraging ARCH-VISOR , a novel Domain-Specific Language (DSL), R-Visor allows users to effortlessly integrate new ISA extensions. This reduces the effort and code required to support new or custom instructions compared to traditional DBI tools.
  • High-Performance, Low Overhead : R-Visor employs a cache-based Just-In-Time (JIT) execution model, optimized to minimize performance and memory overheads. This ensures that instrumentation is both powerful and efficient.
  • Flexible and User-Friendly Instrumentation : R-Visor provides a rich Application Programming Interface (API), that supports diverse instrumentation capabilities at multiple granularities including module, instruction, instruction type, and basic block. This allows for fine-grained control and simplifies the creation of complex analysis routines.

Supported Architectures

R-Visor provides initial support for the RISC-V architecture, specifically rv64gc . It supports the instrumentation of static 64-bit binaries, compiled with the newlib ( riscv64-unknown-elf-gcc) and Glibc (riscv64-unknown-linux-gnu-gcc) toolchains.


Publication

  • R-Visor: An Extensible Dynamic Binary Instrumentation and Analysis Framework for Open Instruction Set Architectures. Edwin Kayang, Mishel Jyothis Paul, Eric Jahns, Ozgur Ozmen, Milan Stojkov, Kevin Rudd, Michel A. Kinsy. LCTES 25 ( pdf, video)

Citing R-Visor

Bibtex

@inproceedings{10.1145/3735452.3735522,
author = {Kayang, Edwin and Paul, Mishel Jyothis and Jahns, Eric and Ozmen, Muslum Ozgur and Stojkov, Milan and Rudd, Kevin and Kinsy, Michel A.},
title = {R-Visor: An Extensible Dynamic Binary Instrumentation and Analysis Framework for Open Instruction Set Architectures},
year = {2025},
isbn = {9798400719219},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3735452.3735522},
doi = {10.1145/3735452.3735522},
booktitle = {Proceedings of the 26th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems},
pages = {158–169},
numpages = {12},
keywords = {Domain Specific Languages, Dynamic Binary Instrumentation, Extensibility, ISA, Program Analysis},
location = {Seoul, Republic of Korea},
series = {LCTES '25}
}