Efficient, transparent, and comprehensive runtime code manipulation

Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2004.

Bibliographic Details
Main Author: Bruening, Derek L. (Derek Lane), 1976-
Other Authors: Saman Amarasinghe.
Format: Thesis
Language:eng
Published: Massachusetts Institute of Technology 2006
Subjects:
Online Access:http://hdl.handle.net/1721.1/30160
_version_ 1826209496385454080
author Bruening, Derek L. (Derek Lane), 1976-
author2 Saman Amarasinghe.
author_facet Saman Amarasinghe.
Bruening, Derek L. (Derek Lane), 1976-
author_sort Bruening, Derek L. (Derek Lane), 1976-
collection MIT
description Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2004.
first_indexed 2024-09-23T14:23:23Z
format Thesis
id mit-1721.1/30160
institution Massachusetts Institute of Technology
language eng
last_indexed 2024-09-23T14:23:23Z
publishDate 2006
publisher Massachusetts Institute of Technology
record_format dspace
spelling mit-1721.1/301602019-04-10T21:34:08Z Efficient, transparent, and comprehensive runtime code manipulation Bruening, Derek L. (Derek Lane), 1976- Saman Amarasinghe. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2004. Includes bibliographical references (p. 293-306). This thesis addresses the challenges of building a software system for general-purpose runtime code manipulation. Modern applications, with dynamically-loaded modules and dynamically-generated code, are assembled at runtime. While it was once feasible at compile time to observe and manipulate every instruction--which is critical for program analysis, instrumentation, trace gathering, optimization, and similar tools--it can now only be done at runtime. Existing runtime tools are successful at inserting instrumentation calls, but no general framework has been developed for fine-grained and comprehensive code observation and modification without high overheads. This thesis demonstrates the feasibility of building such a system in software. We present DynamoRIO, a fully-implemented runtime code manipulation system that supports code transformations on any part of a program, while it executes. DynamoRIO uses code caching technology to provide efficient, transparent, and comprehensive manipulation of an unmodified application running on a stock operating system and commodity hardware. DynamoRIO executes large, complex, modern applications with dynamically-loaded, generated, or even modified code. Despite the formidable obstacles inherent in the IA-32 architecture, DynamoRIO provides these capabilities efficiently, with zero to thirty percent time and memory overhead on both Windows and Linux. DynamoRIO exports an interface for building custom runtime code manipulation tools of all types. It has been used by many researchers, with several hundred downloads of our public release, and is being commercialized in a product for protection against remote security exploits, one of numerous applications of runtime code manipulation. by Derek L. Bruening. Ph.D. 2006-03-24T18:25:10Z 2006-03-24T18:25:10Z 2004 2004 Thesis http://hdl.handle.net/1721.1/30160 60655261 eng M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 306 p. 19460581 bytes 19501881 bytes application/pdf application/pdf application/pdf Massachusetts Institute of Technology
spellingShingle Electrical Engineering and Computer Science.
Bruening, Derek L. (Derek Lane), 1976-
Efficient, transparent, and comprehensive runtime code manipulation
title Efficient, transparent, and comprehensive runtime code manipulation
title_full Efficient, transparent, and comprehensive runtime code manipulation
title_fullStr Efficient, transparent, and comprehensive runtime code manipulation
title_full_unstemmed Efficient, transparent, and comprehensive runtime code manipulation
title_short Efficient, transparent, and comprehensive runtime code manipulation
title_sort efficient transparent and comprehensive runtime code manipulation
topic Electrical Engineering and Computer Science.
url http://hdl.handle.net/1721.1/30160
work_keys_str_mv AT brueningderekldereklane1976 efficienttransparentandcomprehensiveruntimecodemanipulation