資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡(luò)安全教程|rigasin.com|我的開發(fā)技術(shù)隨記

標(biāo)題: c++怎么讀64位程序的模塊基址 [打印本頁]

作者: we104676    時(shí)間: 2022-4-18 12:34
標(biāo)題: c++怎么讀64位程序的模塊基址
求大佬給個(gè)例子

作者: littleboy    時(shí)間: 2022-4-18 12:34
  1. //獲取模塊基址
  2. PVOID GetModuleBaseAddr(const char* szWindowName, const char* szModuleName)
  3. {
  4.         DWORD pid = GetProcessId(szWindowName);
  5.         HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,NULL,pid);
  6.         MODULEENTRY32 me32;
  7.         ZeroMemory(&me32, sizeof(me32));
  8.         me32.dwSize = sizeof(me32);
  9.         HANDLE hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pid);
  10.         unsigned long long baseAddr = 0;
  11.         while (Module32Next(hModuleSnap, &me32))
  12.         {
  13.                 if (strstr(me32.szModule, szModuleName))
  14.                 {
  15.                         break;
  16.                 }
  17.         }
  18.         printf("%16s模塊基址=%#p,%16s模塊大小=%#x\n",szModuleName, me32.modBaseAddr, szModuleName,me32.modBaseSize);
  19.         CloseHandle(hModuleSnap);
  20.         CloseHandle(hProcess);
  21.         return me32.modBaseAddr;
  22. }

  23. DWORD GetProcessId(const char* szWindowName)
  24. {
  25.         HWND hwnd = FindWindowA(NULL, szWindowName);
  26.         DWORD pid = 0;
  27.         GetWindowThreadProcessId(hwnd, &pid);
  28.         return pid;
  29. }
復(fù)制代碼



作者: littleboy    時(shí)間: 2022-4-18 17:14
littleboy 發(fā)表于 2022-4-18 16:30

鬼谷八荒親測有效。項(xiàng)目測試文件:
鏈接:https://pan.baidu.com/s/1xHEa7oJDwah6G8J7biDEoQ?pwd=gr9b
提取碼:gr9b
--來自百度網(wǎng)盤超級會員V5的分享
作者: we104676    時(shí)間: 2022-4-18 20:16
littleboy 發(fā)表于 2022-4-18 16:30

CreateToolhelp32Snapshot弄不了64位游戲
作者: littleboy    時(shí)間: 2022-4-18 23:29
we104676 發(fā)表于 2022-4-18 20:16
CreateToolhelp32Snapshot弄不了64位游戲

編譯成64位程序獲取到的就是64位
作者: we104676    時(shí)間: 2022-4-19 12:57
littleboy 發(fā)表于 2022-4-18 23:29
編譯成64位程序獲取到的就是64位

報(bào)錯(cuò)了,你真的用過CreateToolhelp32Snapshot取64位程序模塊基址?

作者: littleboy    時(shí)間: 2022-4-19 17:10
本帖最后由 littleboy 于 2022-4-19 17:27 編輯
we104676 發(fā)表于 2022-4-19 12:57
報(bào)錯(cuò)了,你真的用過CreateToolhelp32Snapshot取64位程序模塊基址?

(, 下載次數(shù): 81)
你是不是沒有定義這個(gè)函數(shù)?建議你先看看我分享的項(xiàng)目文件
(, 下載次數(shù): 88)

作者: we104676    時(shí)間: 2022-4-19 18:37
本帖最后由 we104676 于 2022-4-19 18:42 編輯
littleboy 發(fā)表于 2022-4-19 17:10
你是不是沒有定義這個(gè)函數(shù)?建議你先看看我分享的項(xiàng)目文件

多謝大佬,搞定了,我的不能像你那樣把etProcessId放在GetModuleBaseAddr后面
作者: littleboy    時(shí)間: 2022-4-19 20:21
we104676 發(fā)表于 2022-4-19 18:37
多謝大佬,搞定了,我的不能像你那樣把etProcessId放在GetModuleBaseAddr后面

建議你多了解一點(diǎn)C語言基本語法,定義放在源文件里,聲明放在頭文件里。
作者: 1232    時(shí)間: 2022-5-9 15:03
祝資源共享吧越來越火!




歡迎光臨 資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡(luò)安全教程|rigasin.com|我的開發(fā)技術(shù)隨記 (http://rigasin.com/) Powered by Discuz! X3.4