首页
社区
课程
招聘
未解决 CE找到基址模块,用C语言怎么获取到这个模块
2021-2-9 00:30 4927

未解决 CE找到基址模块,用C语言怎么获取到这个模块

2021-2-9 00:30
4927


咋获取PlantsVsZombies.exe这个模块 ,GetModulehandle?
可以的话麻烦留下一点代码作为参考,感谢各位


[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

最后于 2021-2-9 00:32 被wx_python_215编辑 ,原因:
收藏
免费 0
打赏
分享
最新回复 (8)
雪    币: 498
活跃值: (251)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
寻她梦 2021-2-9 09:17
2
0

菜鸟思路

通过 进程快照 得到 进程模块地址 加上偏移

最后于 2021-2-9 09:18 被寻她梦编辑 ,原因:
雪    币: 2958
活跃值: (4831)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
舒默哦 1 2021-2-9 11:55
3
0
LPCVOID getLoadAddress( DWORD dwProcessId )
{
       HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, 0, dwProcessId);
 
       HMODULE hModule = LoadLibrary(TEXT("Ntdll.dll "));
       if (NULL == hModule)
               return NULL;
 
       PROCESS_BASIC_INFORMATION pbi = {0};
       NtQueryInformationProcessPtr NtQueryInformationProcess = (NtQueryInformationProcessPtr)GetProcAddress(hModule, "NtQueryInformationProcess");
       LONG status = NtQueryInformationProcess(hProcess, ProcessBasicInformation, (PVOID)&pbi, sizeof(PROCESS_BASIC_INFORMATION), NULL);
       if (NULL != hModule)
               FreeLibrary(hModule);
 
       if (NULL != hProcess)
               CloseHandle(hProcess);
 
       return pbi.PebBaseAddress->Reserved3[1];
}
雪    币: 9163
活跃值: (2849)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
千音丶 2021-2-9 13:41
4
0

如果是注入的方式的话,你要取这个模块直接用LoadLibrary函数即可,如果是远程的话参考我写的这个函数即可

//获得进程指定模块句柄  参数:进程pid,模块名
DWORD GetModule(DWORD pid, LPBYTE ModuleName)
{
 MODULEENTRY32 me32;
 me32.dwSize = sizeof(MODULEENTRY32); //在使用这个结构前,先设置它的大小
 HANDLE hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid); //HANDLE也是属于句柄,是通用句柄  ,HWND是窗口句柄
 if (hModuleSnap == INVALID_HANDLE_VALUE)     //INVALID_HANDLE_VALUE表示无效的句柄
 {
  return 0;
 }
 BOOL bMore = Module32First(hModuleSnap, &me32);  //获取第一个模块信息
 char* name = NULL;
 char temp_dest[MAX_PATH] = { 0 };  //用来存放遍历模块转换大写的结果
 char temp_results[MAX_PATH] = { 0 }; //用来存放要查询模块的大写结果
 Conversion_Big((char*)ModuleName, temp_results);  //转换大写
 while (bMore)
 {
  USES_CONVERSION;
  name = W2A(me32.szExePath);
  Conversion_Big(name, temp_dest);
  if ( strstr(temp_dest, temp_results) != NULL)
  {
   CloseHandle(hModuleSnap);
   return  (DWORD)me32.modBaseAddr;
  }
  bMore = Module32Next(hModuleSnap, &me32);
 }
 CloseHandle(hModuleSnap);
 return 0;

}


雪    币: 2726
活跃值: (1110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ffggddss 2021-2-9 14:16
5
0
API EnumProcessModules   直接可以遍历进程内的所有模块句柄,GetModuleFileNameEx 获取模块路径
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_python_215 2021-2-9 17:20
6
0
ffggddss API EnumProcessModules 直接可以遍历进程内的所有模块句柄,GetModuleFileNameEx 获取模块路径
感谢老哥的帮助
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_python_215 2021-2-9 17:21
7
0
千音丶 如果是注入的方式的话,你要取这个模块直接用LoadLibrary函数即可,如果是远程的话参考我写的这个函数即可//获得进程指定模块句柄  参数:进程pid,模块名 ...
感谢老哥的帮助
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_python_215 2021-2-9 17:21
8
0
舒默哦 LPCVOID getLoadAddress( DWORD dwProcessId ) { HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMA ...
感谢老哥的帮助
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
wx_python_215 2021-2-9 17:21
9
0
寻她梦 菜鸟思路通过 进程快照 得到 进程模块地址 加上偏移
感谢老哥的帮助
游客
登录 | 注册 方可回帖
返回