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 re- targetable 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.
- Address sanitizer algorithm. https://code.google.com/p/address-sanitizer/wiki/AddressSanitizerAlgorithm.Google Scholar
- Dataflow sanitizer. http://clang.llvm.org/docs/DataFlowSanitizer.html.Google Scholar
- Memory sanitizer. https://code.google.com/p/memory-sanitizer/.Google Scholar
- Dynamically translating x86 to llvm using qemu. http://infoscience.epfl.ch/record/149975/files/x86-llvm-translator-chipounov2.pdf.Google Scholar
- Thread sanitizer. https://code.google.com/p/thread-sanitizer/.Google Scholar
- F. Bellard. QEMU, a fast and portable dynamic translator. USENIX ATC'05. Google Scholar
Digital Library
- D. Bruening and Q. Zhao. Practical memory checking with dr. memory. CGO '11. Google Scholar
Digital Library
- D. Bruening, T. Garnett, and S. Amarasinghe. An infrastructure for adaptive dynamic optimization. CGO '03. Google Scholar
Digital Library
- V. Chipounov and G. Candea. Enabling sophisticated analyses of x86 binaries with revgen. DSNW '11. Google Scholar
Digital Library
- D.-Y. Hong, C.-C. Hsu, P.-C. Yew, J.-J. Wu, W.-C. Hsu, P. Liu, C.-M. Wang, and Y.-C. Chung. HQEMU: A multi- threaded and retargetable dynamic binary translator on multi-cores. CGO '12. Google Scholar
Digital Library
- C.-C. Hsu, P. Liu, C.-M. Wang, J.-J. Wu, D.-Y. Hong, P.-C. Yew, and W.-C. Hsu. LnQ: Building high performance dynamic binary translators with existing compiler backends. ICPP '11. Google Scholar
Digital Library
- C. Lattner and V. Adve. LLVM: A compilation framework for lifelong program analysis & transformation. CGO '04. Google Scholar
Digital Library
- C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood. Pin: Building customized program analysis tools with dynamic instrumentation. PLDI '05. Google Scholar
Digital Library
- N. Nethercote and J. Seward. Valgrind: A framework for heavyweight dynamic binary instrumentation. PLDI '07. Google Scholar
Digital Library
- M. Payer and T. R. Gross. Fine-grained user-space security through virtualization. VEE '11. Google Scholar
Digital Library
- M. Payer, E. Kravina, and T. R. Gross. Lightweight memory tracing. USENIX ATC'13. Google Scholar
Digital Library
- F. Qin, C. Wang, Z. Li, H.-s. Kim, Y. Zhou, and Y. Wu. LIFT: A low-overhead practical information flow tracking system for detecting security attacks. MICRO '06. Google Scholar
Digital Library
- K. Serebryany, D. Bruening, A. Potapenko, and D. Vyukov. AddressSanitizer: A fast address sanity checker. USENIX ATC'12. Google Scholar
Digital Library
- C. Wang, S. Hu, H.-s. Kim, S. R. Nair, M. Breternitz, Z. Ying, and Y. Wu. StarDBT: An efficient multi-platform dynamic binary translation system. ACSAC '07. Google Scholar
Digital Library
- R. Whelan, T. Leek, and D. Kaeli. Architecture-independent dynamic information flow tracking. CC '13. Google Scholar
Digital Library
Index Terms
DBILL: an efficient and retargetable dynamic binary instrumentation framework using llvm backend
Recommendations
DBILL: an efficient and retargetable dynamic binary instrumentation framework using llvm backend
VEE '14: Proceedings of the 10th ACM SIGPLAN/SIGOPS international conference on Virtual execution environmentsDynamic 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 ...
Isolating bugs in multithreaded programs using execution suppression
Memory-related program failures in multithreaded programs can be caused by a variety of bugs. Concurrency bugs can occur due to unexpected or incorrect thread interleavings during execution. Other kinds of memory bugs, such as buffer overflows and ...
Efficient Java exception handling in just-in-time compilation
Research ArticlesJava uses exceptions to provide elegant error handling capabilities during program execution. However, the presence of exception handlers complicates the job of the just-in-time (JIT) compiler, while exceptions are rarely used in most programs. This ...







Comments