modGREPER (a hidden module detector)
modGREPER is a hidden module detector for Windows 2000/XP/2003. It searches through whole kernel memory (0x80000000 – 0xffffffff) in order to find structures which looks like a valid module description objects. Currently two most important objects type are recognized: well known _DRIVER_OBJECT and _MODULE_DESCRIPTION. GREPER has some sort of artificial intelligence built in, which allows it recognize if the given bytes actually describe a module-specific object. The term AI for this algorithm is probably a little bit exaggerated, since it is just a few bunches of logical rules which should be satisfied by the potential fields of the structure in question.
modGREPER builds a list of found objects, matches them to each other and finally compares this list against the list of kernel modules obtained with documented API (EnumDeviceDrivers).
modGREPER should be able to detect all kinds of modules hiding techniques used today. Some of the modules are also marked as “SUSPECTED”. This applies to (not hidden) modules which corresponding image files are either not present either lie within hidden directories (hidden by rootkit not system)). This feature was added because, sadly, most of the rootkits do not even try to hide their kernel modules against API!
modGREPER is also able to find and display the list of unloaded kernel modules. This way it is sometime possible to detect also more advanced driverless kernel rootkits. However the list has some limitations it is of a limited capacity and contains only a module base name (no path included).