@Windows XP Professional Service Pack 3 (x86) (5.1, Build 2600)
1 lkd> dt -b _LDR_DATA_TABLE_ENTRY 2 nt!_LDR_DATA_TABLE_ENTRY 3 +0x000 InLoadOrderLinks : _LIST_ENTRY 4 +0x000 Flink : Ptr32 5 +0x004 Blink : Ptr32 6 +0x008 InMemoryOrderLinks : _LIST_ENTRY 7 +0x000 Flink : Ptr32 8 +0x004 Blink : Ptr32 9 +0x010 InInitializationOrderLinks : _LIST_ENTRY 10 +0x000 Flink : Ptr32 11 +0x004 Blink : Ptr32 12 +0x018 DllBase : Ptr32 13 +0x01c EntryPoint : Ptr32 14 +0x020 SizeOfImage : Uint4B 15 +0x024 FullDllName : _UNICODE_STRING 16 +0x000 Length : Uint2B 17 +0x002 MaximumLength : Uint2B 18 +0x004 Buffer : Ptr32 19 +0x02c BaseDllName : _UNICODE_STRING 20 +0x000 Length : Uint2B 21 +0x002 MaximumLength : Uint2B 22 +0x004 Buffer : Ptr32 23 +0x034 Flags : Uint4B 24 +0x038 LoadCount : Uint2B 25 +0x03a TlsIndex : Uint2B 26 +0x03c HashLinks : _LIST_ENTRY 27 +0x000 Flink : Ptr32 28 +0x004 Blink : Ptr32 29 +0x03c SectionPointer : Ptr32 30 +0x040 CheckSum : Uint4B 31 +0x044 TimeDateStamp : Uint4B 32 +0x044 LoadedImports : Ptr32 33 +0x048 EntryPointActivationContext : Ptr32 34 +0x04c PatchInformation : Ptr32
@Windows 7 Ultimate (x64) (6.1, Build 7600)
1 lkd> dt -b _LDR_DATA_TABLE_ENTRY 2 nt!_LDR_DATA_TABLE_ENTRY 3 +0x000 InLoadOrderLinks : _LIST_ENTRY 4 +0x000 Flink : Ptr64 5 +0x008 Blink : Ptr64 6 +0x010 InMemoryOrderLinks : _LIST_ENTRY 7 +0x000 Flink : Ptr64 8 +0x008 Blink : Ptr64 9 +0x020 InInitializationOrderLinks : _LIST_ENTRY 10 +0x000 Flink : Ptr64 11 +0x008 Blink : Ptr64 12 +0x030 DllBase : Ptr64 13 +0x038 EntryPoint : Ptr64 14 +0x040 SizeOfImage : Uint4B 15 +0x048 FullDllName : _UNICODE_STRING 16 +0x000 Length : Uint2B 17 +0x002 MaximumLength : Uint2B 18 +0x008 Buffer : Ptr64 19 +0x058 BaseDllName : _UNICODE_STRING 20 +0x000 Length : Uint2B 21 +0x002 MaximumLength : Uint2B 22 +0x008 Buffer : Ptr64 23 +0x068 Flags : Uint4B 24 +0x06c LoadCount : Uint2B 25 +0x06e TlsIndex : Uint2B 26 +0x070 HashLinks : _LIST_ENTRY 27 +0x000 Flink : Ptr64 28 +0x008 Blink : Ptr64 29 +0x070 SectionPointer : Ptr64 30 +0x078 CheckSum : Uint4B 31 +0x080 TimeDateStamp : Uint4B 32 +0x080 LoadedImports : Ptr64 33 +0x088 EntryPointActivationContext : Ptr64 34 +0x090 PatchInformation : Ptr64 35 +0x098 ForwarderLinks : _LIST_ENTRY 36 +0x000 Flink : Ptr64 37 +0x008 Blink : Ptr64 38 +0x0a8 ServiceTagLinks : _LIST_ENTRY 39 +0x000 Flink : Ptr64 40 +0x008 Blink : Ptr64 41 +0x0b8 StaticLinks : _LIST_ENTRY 42 +0x000 Flink : Ptr64 43 +0x008 Blink : Ptr64 44 +0x0c8 ContextInformation : Ptr64 45 +0x0d0 OriginalBase : Uint8B 46 +0x0d8 LoadTime : _LARGE_INTEGER 47 +0x000 LowPart : Uint4B 48 +0x004 HighPart : Int4B 49 +0x000 u : <unnamed-tag> 50 +0x000 LowPart : Uint4B 51 +0x004 HighPart : Int4B52 +0x000 QuadPart : Int8B
C++ Code
typedef struct _LDR_DATA_TABLE_ENTRY { // Start from Windows XP 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; }; PVOID EntryPointActivationContext; //_ACTIVATION_CONTEXT * PVOID PatchInformation; // Start from Windows Vista LIST_ENTRY ForwarderLinks; LIST_ENTRY ServiceTagLinks; LIST_ENTRY StaticLinks; PVOID ContextInformation; PVOID OriginalBase; LARGE_INTEGER LoadTime; } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;
时间: 2024-12-24 05:11:59