DISE Project: Exploring Dynamic Instruction Stream EditingA New Hardware-Software Interface for Customizing Application Execution
Architecture and Compilers Group
Department of Computer and Information Science
University of Pennsylvania
Project DescriptionDynamic instruction stream editing (DISE) is a processor extension for customizing applications to the contexts in which they run by dynamically transforming the fetched instruction stream, feeding the execution engine an instruction stream with modified or added functionality. The highly efficient DISE mechanism is software programmable, admitting a host of customization activities, such as profiling, security checking, code decompression, dynamic optimization, and debugging. This research will prove the utility of DISE and explore its implementation.
PublicationsMarc L. Corliss and E Christopher Lewis. "A DISE Framework for Securing Software," Technical Report MS-CIS-05-13, University of Pennsylvania, April 2005. (available upon request)
Marc L. Corliss, E Christopher Lewis, and Amir Roth.
"The Implementation and Evaluation of
Dynamic Code Decompression using DISE,"
ACM Transactions on Embedded Computing Systems, 4(1):38-72,
February 2005. (paper in pdf)
Marc L. Corliss, E Christopher Lewis, and Amir Roth. "Using DISE to Protect Return Addresses from Attack," In Proceedings of the Workshop on Architectural Support for Security and Anti-Virus (held in conjunction with ASPLOS), pages 65-72, October 2004. (paper in pdf)
Marc L. Corliss, E Christopher Lewis, and Amir Roth, "A DISE
Implementation of Dynamic Code Decompression," in Proceedings of the
Conference on Languages, Compilers, and Tools for Embedded Systems
(LCTES '03), June 2003. (paper in pdf,
slides in pdf)
SupportThis project is supported in part by NSF Award CCR-0311199. Lewis is also supported by NSF CAREER Award CCF-0347290, and Roth is supported by NSF CAREER Award CCR-0238203.