DBILL: An efficient and retargetable dynamic binary instrumentation framework using LLVM backend

Yi Hong Lyu, Ding Yong Hong, Tai Yi Wu, Jan Jan Wu, Wei Chung Hsu, Pangfeng Liu, Pen Chung Yew

Research output: Contribution to conferencePaperpeer-review

15 Scopus citations

Abstract

Dynamic Binary Instrumentation (DBI) is a core technology for building debugging and profiling tools for application executables. Most state-of-the-art DBI systems have focused on the same instruction set architecture (ISA) where the guest binary and the host binary have the same ISA. It is uncommon to have a cross-ISA DBI system, such as a system that instruments ARM executables to run on x86 machines. We believe cross-ISA DBI systems are increasingly more important, since ARM executables could be more productively analyzed on x86 based machines such as commonly available PCs and servers. In this paper, we present DBILL, a cross-ISA and retargetable dynamic binary instrumentation framework that builds on both QEMU and LLVM. The DBILL framework enables LLVM-based static instrumentation tools to become DBI ready, and deployable to different target architectures. Using address sanitizer and memory sanitizer as implementation examples, we show DBILL is an efficient, versatile and easy to use cross-ISA retargetable DBI framework.

Original languageEnglish (US)
Pages141-152
Number of pages12
DOIs
StatePublished - 2014
Event10th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, VEE 2014 - Salt Lake City, UT, United States
Duration: Mar 1 2014Mar 2 2014

Other

Other10th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, VEE 2014
Country/TerritoryUnited States
CitySalt Lake City, UT
Period3/1/143/2/14

Keywords

  • Dynamic binary instrumentation framework
  • LLVM enhanced dynamic binary translation and instrumentation
  • LLVM-based instrumentation
  • Memory bugs

Fingerprint

Dive into the research topics of 'DBILL: An efficient and retargetable dynamic binary instrumentation framework using LLVM backend'. Together they form a unique fingerprint.

Cite this