DieHard project automatically hardens software applications against a wide range of bugs.
These bugs, known as memory errors, often end up as serious security vulnerabilities, cause crashes, or lead to unpredictable behavior.
DieHard either eliminates these bugs altogether, or avoids them with high probability.
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.
What's New in This Release:
· This release features dramatically reduced memory consumption, fixes logic (for Windows) that protects against double free errors, fixes the internal random number generator, enhancing randomness, and adds more robust whitelist processing for the DieHard system, for Windows protection.