确定一个process的所有dependency dlls的几种方法
最新推荐文章于 2021-09-25 15:10:02 发布
HMODULE hModule = GetModuleHandle(NULL);
PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)hModule;
PIMAGE_NT_HEADERS pNTHeader = MakePtr(PIMAGE_NT_HEADERS, pDosHeader, pDosHeader->e_lfanew);
PIMAGE_DATA_DIRECTORY pImports = &pNTHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT];
if ( 0 == pImports->VirtualAddress )
return;
PIMAGE_IMPORT_DESCRIPTOR pDLLs = MakePtr(PIMAGE_IMPORT_DESCRIPTOR, pDosHeader, pImports->VirtualAddress);
PCSTR pszModule;
while(NULL != pDLLs->Name)
{
pszModule = MakePtr(PCSTR, pDosHeader, pDLLs->Name);
TRACE("%s/n", pszModule);
pDLLs++;
}
成功的交流让彼此更进一步, welcome write me to Key.lei@gmail.com