DieHard helps buggy programs run correctly
and protects them from a range of security vulnerabilities.
| Download DieHard now.
Do the following errors look familiar?
|DieHard: Probabilistic Memory Safety for Unsafe Languages
Emery D. Berger and Benjamin G. Zorn, ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation (PLDI 2006).
Or view this PowerPoint presentation.
DieHard works in two modes: standalone and replicated. The standalone version replaces the memory manager with the DieHard randomized memory manager. This randomization increases the odds that buffer overflows will have no effect, and reduces the risk of dangling pointers. The replicated version provides greater protection against errors by running several instances of the application simultaneously and voting on their output. Because each replica is randomized differently, each replica will likely have a different output if it has an error, and some replicas are likely to run correctly despite the error.
The standalone version works for Linux, Solaris, and Windows, while the replicated version currently only supports Linux or Solaris console applications.
DieHard is Copyright (C) 2005-13 Emery Berger, University of Massachusetts Amherst, and is free for noncommercial use. For information on commercial licenses through the University of Massachusetts Amherst, please contact Emery Berger.
This work is supported in part by the National Science Foundation, Intel Corporation, and Microsoft Research. This material is based upon work supported by the National Science Foundation under Grant No CNS-0615211. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).