结构体介绍
_LDR_DATA_TABLE_ENTRY包含三个双向链表的结构体
1 typedef struct _PEB_LDR_DATA 2 { 3 ULONG Length; 4 BOOLEAN Initialized; 5 PVOID SsHandle; 6 LIST_ENTRY InLoadOrderModuleList; //模块加载顺序 7 LIST_ENTRY InMemoryOrderModuleList; //模块在内存中顺序 8 LIST_ENTRY InInitializationorderModuleList; //模块初始化的顺序 9 }_PEB_LDR_DATA,*PPEB_LDR_DATA;
_LIST_ENTRY指向双向链表的结构体指针
1 typedef struct _LIST_ENTRY 2 { 3 struct _LIST_ENTRY *Flink; // 指向下一个节点的指针 4 struct _LIST_ENTRY *Blink; // 指向前一个节点的指针 5 } LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY;
_LDR_DATA_TABLE_ENTRY保存模块信息的结构体
1 typedef struct _LDR_DATA_TABLE_ENTRY 2 { 3 _LIST_ENTRY InLoadOrderLinks; 4 _LIST_ENTRY InMemoryOrderLinks; 5 _LIST_ENTRY InInitializationorderLinks; 6 PVOID DllBase; 7 PVOID EntryPoint; //入口地址 8 ULONG SizeOfImage; 9 _UNICODE_STRING FullDllName; //所有模块名称 10 _UNICODE_STRING BaseDllName; //模块名称的base 11 ULONG Flags; 12 USHORT LoadCount; 13 USHORT TlsIndex; 14 union 15 { 16 _LIST_ENTRY hashlinks; 17 struct 18 { 19 PVOID SectionPointer; 20 ULONG CheckSum; 21 }; 22 }; 23 ULONG TimeDateStamp; 24 }_LDR_DATA_TABLE_ENTRY,*PLDR_DATA_TABLE_ENTRY;
断链隐藏指定模块
1 VOID brokenHidden(HMODULE hModule) 2 { 3 PPEB_LDR_DATA pLdr; 4 PLDR_DATA_TABLE_ENTRY pLdrData; 5 PLIST_ENTRY pHead; 6 PLIST_ENTRY Cur; 7 8 9 _asm 10 { 11 mov eax,fs:[0x18] //指向TEB地址 12 mov eax, [eax+0x30] //指向PEB地址 13 mov ecx,[eax+0xc] ////指向PEB_LDR_DATA 地址 14 mov pLdr,ecx 15 } 16 pLdrData = (PLDR_DATA_TABLE_ENTRY)pLdr->InLoadOrderModuleList.Flink; 17 //pHead = pLdr; 18 pHead = &(pLdr->InLoadOrderModuleList); 19 Cur = pHead->Flink; 20 21 //循环遍历找到要隐藏的模块并隐藏 22 do 23 { 24 pLdrData = (PLDR_DATA_TABLE_ENTRY)Cur; 25 if (pLdrData->BaseAddress == hModule) 26 { 27 //printf("success!"); 28 pLdrData->InLoadOrderLinks.Blink->Flink = pLdrData->InLoadOrderLinks.Flink; 29 pLdrData->InInitializationorderLinks.Blink->Flink=pLdrData->InInitializationorderLinks.Flink; 30 pLdrData->InMemoryOrderLinks.Blink->Flink=pLdrData->InMemoryOrderLinks.Flink; 31 } 32 Cur = Cur->Flink; 33 } while (pHead != Cur); //判断链表是否遍历完 34 }
实现断链隐藏模块中,当用od加载时断链隐藏模块的效果还是不能实现。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。