我自己写了一个程序 枚举另一个进程中的模块信息 提权神马的 都已经用了 最后在使用创建进程块照的时候 也指定了进程ID 但是用module32first列举模块信息的时候 返回的模块信息 始终是我自己写的(demo) demo这个程序的加载模块 而不是创建快照后的指定进程的模块信息
DWORD FindModuleBase(DWORD pid,char* dllName){
HANDLE hSnap=NULL;
BOOL flag=FALSE;
MODULEENTRY32 mod={0};
if(dllName)
{
hSnap=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pid);
if(hSnap==INVALID_HANDLE_VALUE)
{
// printf("module snap create fail,err no:%d!\n",GetLastError());
return -2;
}
else
{
mod.dwSize=sizeof(MODULEENTRY32);
flag=Module32First(hSnap,&mod);
if(flag==FALSE){
// printf("module check failed,err no:%d\n",GetLastError());
CloseHandle(hSnap);
return -1;
}
// printf("QQ id=%d\n",pid);
while(flag=Module32Next(hSnap,&mod)){
// printf("mod.szModule:%s\n",mod.szModule);
if(!strcmp(dllName,mod.szModule))
{
CloseHandle(hSnap);
// printf("mod base:%x\n",mod.modBaseAddr);
return (DWORD)mod.modBaseAddr;
}
}
}
}
else{
printf("module is not in used!\n");
}
CloseHandle(hSnap);
return 0;
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!