A U.S. computer scientist and a Microsoft researcher have devised a program that drastically reduces application crashes and can prevent some types of attacks by altering the way applications use memory.
The program, called DieHard, officially launched over the holidays, following development that was funded by large grants from Microsoft, Intel and the US' National Science Foundation.
Developers Emery Berger, a computer scientist from the University of Massachusetts Amherst, and Microsoft's Ben Zorn, have made DieHard freely available for noncommercial use at their Web site.
The problems Berger wanted to address were caused by the fact that despite the huge amount of memory installed in today's PCs, "programmers are still writing code as if memory is in short supply".
That leads to errors such as double-frees, invalid frees, and various types of overflow. Berger said DieHard eliminates or makes less dangerous many of these problems by making chunks of memory available at various locations, and assigning addresses randomly.
Address-space randomization is a technique used in some versions of Linux and in Windows Vista, but Berger said DieHard is a much more thorough application of the idea. Without randomization, attackers can easily locate where applications store sensitive data such as passwords. Attackers also commonly use memory errors to execute malicious code and take control of systems.
DieHard also secretly launches multiple copies of some applications, so that when one application is about to crash it can be shut down, while the others continue to run.
He said DieHard completely prevents double-free and invalid-free errors from having any effect, reduces the likelihood of dangling pointer errors and moderate buffer overflows. It prevents certain library-based heap overflows and all but eliminates heap corruption.
The program is available for Windows XP, Windows Vista and Linux, but the Windows versions only protect the Firefox browser so far. The Linux version protects any application launched once DieHard is running.
Programmers on either Windows or Linux can use DieHard to protect any application they are developing.
One caveat is that DieHard noticeably increases memory usage -- a rise of 50 to 75 percent, according to Berger. Application performance shouldn't be noticeably altered, though, as long as the system has sufficient memory.