For more information, links and resources go here and you can download a free revealer http://www.sysinternals.com/utilities/rootkitrevealer.html
A root kit is a Trojan horse program that sits silently on your computer and does pretty much whatever it wants. Recall that Trojan horses can be programs that launch Distributed Denial of Service (DDoS) attacks, such as the widespread Mydoom virus. Other Trojan horses might be keystroke loggers--programs that record every key you press, including passwords--and ship them over the Internet to a malicious user who seeks to steal your identity and assets. You can find Trojans running on your system in several places: They might show up as a service, as a running program in the Windows Task Manager list, or as an entry in your registry's Run keys. A run-of-the-mill antivirus program can find and eliminate such Trojans.
Root kits are dangerous because they can "stealth" themselves. They modify the basic, low-level parts of the OS, instructing Windows to keep them off its lists of running services and processes and to not display them in the registry. And a simple hard-disk scan won't detect the program files. Because antivirus and antispyware programs must rely on the OS to find running programs, they're powerless to find root kits, much less eliminate them.
Imagine how devastating the effects of a root kit attack could be. What if someone has already built a root kit that spreads quietly and calls no attention to itself--one that waits until some date, such as December 25, 2006, then activates and erases hard disks. How do you defend against this type of attack? You could, I suppose, run a network sniffer such as Ethereal or Microsoft Network Monitor and examine network traces for unexpected network activity, but the volume of traffic on a network segment would make that a Herculean task. No, the way to attack root kits is by exploiting the way that they modify the OS to hide themselves--or at least modify the copy on the hard disk.
The term rootkit is used to describe the mechanisms and techniques whereby malware, including viruses, spyware, and trojans, attempt to hide their presence from spyware blockers, antivirus, and system management utilities. There are several rootkit classifications depending on whether the malware survives reboot and whether it executes in user mode or kernel mode.
Persistent Rootkits
A persistent rootkit is one associated with malware that activates each time the system boots. Because such malware contain code that must be executed automatically each system start or when a user logs in, they must store code in a persistent store, such as the Registry or file system, and configure a method by which the code executes without user intervention.
Memory-Based Rootkits
Memory-based rootkits are malware that has no persistent code and therefore does not survive a reboot.
User-mode Rootkits
There are many methods by which rootkits attempt to evade detection. For example, a user-mode rootkit might intercept all calls to the Windows FindFirstFile/FindNextFile APIs, which are used by file system exploration utilities, including Explorer and the command prompt, to enumerate the contents of file system directories. When an application performs a directory listing that would otherwise return results that contain entries identifying the files associated with the rootkit, the rootkit intercepts and modifies the output to remove the entries.
The Windows native API serves as the interface between user-mode clients and kernel-mode services and more sophisticated user-mode rootkits intercept file system, Registry, and process enumeration functions of the Native API. This prevents their detection by scanners that compare the results of a Windows API enumeration with that returned by a native API enumeration.
Kernel-mode Rootkits
Kernel-mode rootkits can be even more powerful since, not only can they intercept the native API in kernel-mode, but they can also directly manipulate kernel-mode data structures. A common technique for hiding the presence of a malware process is to remove the process from the kernel's list of active processes. Since process management APIs rely on the contents of the list, the malware process will not display in process management tools like Task Manager or Process Explorer.
updated link to revealer
