Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Get's base address
- __int64 GetModuleBaseAddress(LPCWSTR szProcessName, LPCWSTR szModuleName)
- {
- HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
- PROCESSENTRY32 pe32;
- if (hSnap == INVALID_HANDLE_VALUE)
- {
- return 0;
- }
- pe32.dwSize = sizeof(PROCESSENTRY32);
- if (Process32First(hSnap, &pe32) == 0)
- {
- CloseHandle(hSnap);
- return 0;
- }
- do
- {
- if (lstrcmp(pe32.szExeFile, szProcessName) == 0)
- {
- int PID;
- PID = pe32.th32ProcessID;
- HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, PID);
- MODULEENTRY32 xModule;
- if (hSnap == INVALID_HANDLE_VALUE)
- {
- return 0;
- }
- xModule.dwSize = sizeof(MODULEENTRY32);
- if (Module32First(hSnap, &xModule) == 0)
- {
- CloseHandle(hSnap);
- return 0;
- }
- do
- {
- if (lstrcmp(xModule.szModule, szModuleName) == 0)
- {
- CloseHandle(hSnap);
- return (__int64)xModule.modBaseAddr;
- }
- } while (Module32Next(hSnap, &xModule));
- CloseHandle(hSnap);
- return 0;
- }
- } while (Process32Next(hSnap, &pe32));
- CloseHandle(hSnap);
- return 0;
- }
Add Comment
Please, Sign In to add comment