skip to main content
10.1145/2024569.2024572acmconferencesArticle/Chapter ViewAbstractPublication PagespasteConference Proceedingsconference-collections
research-article

Anywhere, any-time binary instrumentation

Published:05 September 2011Publication History

ABSTRACT

The Dyninst binary instrumentation and analysis framework distinguishes itself from other binary instrumentation tools through its abstract, machine independent interface; its emphasis on anywhere, any-time binary instrumentation; and its low overhead that is proportional to the number of instrumented locations. Dyninst represents the program in terms of familiar control flow structures such as functions, loops, and basic blocks, and users manipulate these representations to insert instrumentation anywhere in the binary. We use graph transformation techniques to insure that this instrumentation executes when desired even when instrumenting highly optimized (or malicious) code that other instrumenters cannot correctly instrument. Unlike other binary instrumenters, Dyninst can instrument at any time in the execution continuum, from static instrumentation (binary rewriting) to instrumenting actively executing code (dynamic instrumentation). Furthermore, we allow users to modify or remove instrumentation at any time, with such modifications taking immediate effect. Our analysis techniques allow us to insert new code without modifying uninstrumented code; as a result, all uninstrumented code executes at native speed. We demonstrate that our techniques provide this collection of capabilities while imposing similar or lower overhead than other widely used instrumenters.

References

  1. A. R. Bernat, K. Roundy, and B. P. Miller. Efficient, sensitivity resistant binary instrumentation. In International Symposium on Software Testing and Analysis (ISSTA), Toronto, CA, July 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. D. Bruening, T. Garnett, and S. Amarasinghe. An infrastructure for adaptive dynamic optimization. In Symposium on Code Generation and Optimization (CGO), San Francisco, CA, March 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. B. Buck and J. Hollingsworth. An API for runtime code patching. Journal of High Performance Computing Applications, 14(4):317--329, Winter 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. B. De Bus, B. De Sutter, L. Van Put, D. Chanet, and K. De Bosschere. Link-time optimization of arm binaries. In 2004 ACM SIGPLAN/SIGBED conference on Languages, Compilers, and Tools, pages 211--220, Jun 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. W. Drewry and T. Ormandy. Flayer: exposing application internals. In Workshop on Offensive Technologies (WOOT), Boston, MA, USA, August 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Eustace and A. Srivastava. ATOM: A flexible interface for building high performance program analysis tools. In USENIX Technical Conference, New Orleans, LA, January 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. R. Heckel. Graph transformation in a nutshell. In Electr. Notes Theor. Comput. Sci., pages 187--198. Elsevier, 2006. Google ScholarGoogle Scholar
  8. M. Laurenzano, M. Tikir, L. Carrington, and A. Snavely. PEBIL: Efficient static binary instrumentation for linux. In International Symposium for Performance Analysis of Systems and Software (ISPASS), White Plains, NY, 2010.Google ScholarGoogle ScholarCross RefCross Ref
  9. 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. In Programming Language Design and Implementation (PLDI), pages 190--200, Chicago, IL, USA, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. Moser, C. Kruegel, and E. Kirda. Exploring multiple execution paths for malware analysis. In Security and Privacy (SP), Oakland,CA, USA, May 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Nanda, W. Li, L.-C. Lam, and T. cker Chiueh. Bird: Binary interpretation using runtime disassembly. In International Symposium on Code Generation and Optimization (CGO 2006), pages 358--370, New York, NY, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. N. Nethercote and J. Seward. Valgrind: A framework for heavyweight dynamic binary instrumentation. In Programming Language Design and Implementation (PLDI), San Diego, CA, USA, June 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Newsome, D. Brumley, D. Song, J. Chamcham, and X. Kovah. Vulnerability-specific execution filtering for exploit prevention on commodity software. In Network and Distributed Systems Security Symposium (NDSS), San Diego, CA, USA, February 2006.Google ScholarGoogle Scholar
  14. M. Olszewski, J. Cutler, and J. Steffan. Judostm: A dynamic binary-rewriting approach to software transactional memory. In Parallel Architecture and Compilation Techniques, pages 365--375, Brasov, Romania, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Open Speedshop. Open speedshop performance tool. February 2011.Google ScholarGoogle Scholar
  16. K. A. Roundy and B. Miller. Hybrid analysis and control of malware binaries. In Recent Advances in Intrusion Detection (RAID), Ottawa, Canada, September 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. Shende and A. D. Malony. The TAU parallel performance system. Journal of High Performance Computing Applications, 20(2):287--311, Summer 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Anywhere, any-time binary instrumentation

    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
    • Published in

      cover image ACM Conferences
      PASTE '11: Proceedings of the 10th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools
      September 2011
      46 pages
      ISBN:9781450308496
      DOI:10.1145/2024569

      Copyright © 2011 ACM

      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]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 5 September 2011

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate50of146submissions,34%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader