skip to main content
research-article

DBILL: an efficient and retargetable dynamic binary instrumentation framework using llvm backend

Published:01 March 2014Publication History
Skip Abstract Section

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.

References

  1. Address sanitizer algorithm. https://code.google.com/p/address-sanitizer/wiki/AddressSanitizerAlgorithm.Google ScholarGoogle Scholar
  2. Dataflow sanitizer. http://clang.llvm.org/docs/DataFlowSanitizer.html.Google ScholarGoogle Scholar
  3. Memory sanitizer. https://code.google.com/p/memory-sanitizer/.Google ScholarGoogle Scholar
  4. Dynamically translating x86 to llvm using qemu. http://infoscience.epfl.ch/record/149975/files/x86-llvm-translator-chipounov2.pdf.Google ScholarGoogle Scholar
  5. Thread sanitizer. https://code.google.com/p/thread-sanitizer/.Google ScholarGoogle Scholar
  6. F. Bellard. QEMU, a fast and portable dynamic translator. USENIX ATC'05. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Bruening and Q. Zhao. Practical memory checking with dr. memory. CGO '11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Bruening, T. Garnett, and S. Amarasinghe. An infrastructure for adaptive dynamic optimization. CGO '03. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. V. Chipounov and G. Candea. Enabling sophisticated analyses of x86 binaries with revgen. DSNW '11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. C. Lattner and V. Adve. LLVM: A compilation framework for lifelong program analysis & transformation. CGO '04. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. N. Nethercote and J. Seward. Valgrind: A framework for heavyweight dynamic binary instrumentation. PLDI '07. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. Payer and T. R. Gross. Fine-grained user-space security through virtualization. VEE '11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Payer, E. Kravina, and T. R. Gross. Lightweight memory tracing. USENIX ATC'13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. K. Serebryany, D. Bruening, A. Potapenko, and D. Vyukov. AddressSanitizer: A fast address sanity checker. USENIX ATC'12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. R. Whelan, T. Leek, and D. Kaeli. Architecture-independent dynamic information flow tracking. CC '13. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. DBILL: an efficient and retargetable dynamic binary instrumentation framework using llvm backend

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!