63.利用PEB获取模块列表
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:易道云信息技术研究院
上一个内容:62.隐藏辅助模块前置知识
效果图:
#include <iostream>
#include <Windows.h>
#include <winternl.h>int main() {PPEB _peb;_asm {mov eax, fs: [0x30]mov _peb, eax}PPEB_LDR_DATA Pldr = _peb->Ldr;PLIST_ENTRY FIRST = &(Pldr->InMemoryOrderModuleList);PLIST_ENTRY CURLST = FIRST->Flink;PLDR_DATA_TABLE_ENTRY lModule;PLDR_DATA_TABLE_ENTRY lDis{};int StructDiff = (int)&lDis->InMemoryOrderLinks;do {lModule = (PLDR_DATA_TABLE_ENTRY)((unsigned)CURLST - StructDiff);// std::wcout.imbue(std::locale());std::locale::global(std::locale(""));std::wcout << L"模块名:" << lModule->FullDllName.Buffer << L" 基址:" << lModule->DllBase << L" 大小:" << lModule->Reserved3 << std::endl;CURLST = CURLST->Flink;} while (FIRST != CURLST);while (true);
}