DLLs
These
DLLs forward calls to WinAPI functions to the appropriate and undocumented (for user mode)
Native API functions that are exported in
ntdll.dll
(and still run in user mode).
Base services for accessing the file system, managing processes and handling devices are implemented in
kernel32.dll
.
Apparently, with Windows 7, these system libraries were refactored into
Kernelbase32.dll
.
Native System Services / Kernel support functions
WinAPI functions must be distinguished from
native system services and
kernel support functions: Only WinAPI functions are documented.
Native system services are functions that are callable from user mode. For example, an application might call the WinAPI CreateProcess()
function which in turn calls the native system service function NtCreateService()
.
A Kernel support function can only be called from within kernel mode, very possibly by device drivers
An example is ExAllocatePoolWithTag
to allocate memory.
No hooking functionality
Some skilled developers have therefore developped kernel drivers (rootkits) that hooked the System Service Descriptor Table (SSDT) which then allowed to trace system calls on Windows.