skip to main content
10.1145/2576195.2576213acmconferencesArticle/Chapter ViewAbstractPublication PagesveeConference Proceedingsconference-collections
research-article

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

Published: 01 March 2014 Publication History

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

Cited By

View all
  • (2024)LeanBin: Harnessing Lifting and Recompilation to Debloat BinariesProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695515(1434-1446)Online publication date: 27-Oct-2024
  • (2023)RUSPATCH: Towards Timely and Effectively Patching Rust Applications2023 IEEE 23rd International Conference on Software Quality, Reliability, and Security (QRS)10.1109/QRS60937.2023.00057(517-528)Online publication date: 22-Oct-2023
  • (2022)CrossDBT: An LLVM-Based User-Level Dynamic Binary Translation EmulatorEuro-Par 2022: Parallel Processing10.1007/978-3-031-12597-3_1(3-18)Online publication date: 22-Aug-2022
  • Show More Cited By

Index Terms

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

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    VEE '14: Proceedings of the 10th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
    March 2014
    236 pages
    ISBN:9781450327640
    DOI:10.1145/2576195
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 March 2014

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. dynamic binary instrumentation framework
    2. llvm enhanced dynamic binary translation and instrumentation
    3. llvm-based instrumentation
    4. memory bugs

    Qualifiers

    • Research-article

    Conference

    VEE '14

    Acceptance Rates

    VEE '14 Paper Acceptance Rate 18 of 56 submissions, 32%;
    Overall Acceptance Rate 80 of 235 submissions, 34%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)22
    • Downloads (Last 6 weeks)5
    Reflects downloads up to 25 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)LeanBin: Harnessing Lifting and Recompilation to Debloat BinariesProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695515(1434-1446)Online publication date: 27-Oct-2024
    • (2023)RUSPATCH: Towards Timely and Effectively Patching Rust Applications2023 IEEE 23rd International Conference on Software Quality, Reliability, and Security (QRS)10.1109/QRS60937.2023.00057(517-528)Online publication date: 22-Oct-2023
    • (2022)CrossDBT: An LLVM-Based User-Level Dynamic Binary Translation EmulatorEuro-Par 2022: Parallel Processing10.1007/978-3-031-12597-3_1(3-18)Online publication date: 22-Aug-2022
    • (2020)InstrewProceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3381052.3381319(172-184)Online publication date: 17-Mar-2020
    • (2020)Fuzzing Binaries for Memory Safety Errors with QASan2020 IEEE Secure Development (SecDev)10.1109/SecDev45635.2020.00019(23-30)Online publication date: Sep-2020
    • (2019)Cross-ISA machine instrumentation using fast and scalable dynamic binary translationProceedings of the 15th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3313808.3313811(74-87)Online publication date: 14-Apr-2019
    • (2018)Towards Cross-Framework Workload Analysis via Flexible Event-Driven Interfaces2018 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS)10.1109/ISPASS.2018.00030(169-178)Online publication date: Apr-2018
    • (2016)Re-constructing high-level information for language-specific binary re-optimizationProceedings of the 2016 International Symposium on Code Generation and Optimization10.1145/2854038.2854057(273-283)Online publication date: 29-Feb-2016
    • (2016)Dual-Engine Cross-ISA DBTO Technique Utilising MultiThreaded Support for Multicore Processor System2016 IEEE 10th International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSOC)10.1109/MCSoC.2016.36(257-264)Online publication date: Sep-2016
    • (2015)HERMESProceedings of the 13th Annual IEEE/ACM International Symposium on Code Generation and Optimization10.5555/2738600.2738631(246-256)Online publication date: 7-Feb-2015
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media