Overview
Dapper transforms a live process's state for different purposes. For example, Dapper supports live process migration of natively compiled Linux binaries across servers with CPUs of different architectures. It also supports re-randomizing the stack and registers of a process to improve security.
Dapper was built on top of CRIU to dump
a running process and then transform the CRIU images to support restoration
on servers of a different architecture (see the demo below).
Currently, Dapper supports live process migration on x86-64
and aarch64
CPUs.
Demo
Getting Started
Please refer to the wiki page for a tutorial on how to rewrite process images with Dapper.
Publication
- Dapper: A Lightweight and Extensible Framework for Live Program State Rewriting.
A. Bapat, J. Shastri, X. Wang, A. Sundarasamy, and B. Ravindran
to appear in IEEE ICDCS'24 [Paper] [Code] - DynaCut: A Framework for Dynamic and Adaptive Program Customization.
A. Mahurkar, X. Wang, H. Zhang, and B. Ravindran
appears in ACM Middleware'23 [Paper] [Code]
Dapper is supported in part by the US Office of Naval Research under grants N00014-18-1-2022, N00014-19-1-2493, and N0001422-1-2672, and by the US National Science Foundation (NSF) under grant CNS 2127491. Any opinions, findings, and conclusions expressed in this material are those of the authors and do not necessarily reflect the views of these agencies.