SoftICE
From Wikipedia, the free encyclopedia
SoftICE is a kernel mode debugger for Microsoft Windows. Crucially, it is designed to run underneath Windows such that the operating system is unaware of its presence. Unlike an application debugger SoftICE is capable of suspending all operations in Windows when instructed. For driver debugging this is critical due to how hardware is accessed and the kernel of the operating system functions.
There are several kernel mode debuggers offered by Microsoft for free, although they required two interlinked computers until recently. SoftICE therefore is an exceptionally useful tool for difficult driver related development and continues to function well even with Microsoft's latest operating system versions.
Older versions exist for DOS and compatible operating systems. SoftICE was originally produced by a company called NuMega, and was subsequently acquired by Compuware.
SoftICE is also popular as a software cracking tool.
The "ICE" part of the name is an allusion to in-circuit emulator.
[edit] History
The original Soft-ICE for DOS was written in 1987 by NuMega founders Frank Grossman and Jim Moskun. The program, written in 80386 assembly language, played the role of an operating system and ran software in virtual 8086 mode. It sold for $386.
Newer versions of SoftICE patch deep into Microsoft Windows. As such old versions of SoftICE are rarely compatible with new versions of Windows. Compuware therefore offers SoftICE as a subscription so that it can be kept up to date and in sync with Microsoft.
It used to be offered as part of Compuware's DriverStudio package but was discontinued in April 2006.
[edit] Termination
As of April 3rd, 2006 the DriverStudio product family has been discontinued because of "a variety of technical and business issues as well as general market conditions". Maintenance support will be offered through March 31, 2007.
[edit] Open Source Replacements
Rasta Ring 0 Debugger
An open source kernel debugger similar to SoftICE named Rasta Ring 0 Debugger is available on the project page. It provides low level debugging for Microsoft Windows, Linux, OpenBSD and FreeBSD. As of the time of this writing a MacOS X version is in the works.