GetModuleHandle(NULL);
HANDLE handle = GetCurrentProcess(); void *baseAddress = (void*) handle;
Well this piece of code gives me the address 0xffffffff, I'm not quite sure this is what I'm looking for, or maybe I poorly explained myself. But in the meantime, I found a solution to my problem - I was gonna edit the thread.and I call it like this:Code:BYTE *find_base_address(DWORD pid) { HANDLE ghandle; MODULEENTRY32 me32; ghandle = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, 0); if (ghandle == INVALID_HANDLE_VALUE) return NULL; me32.dwSize = sizeof(MODULEENTRY32); if (Module32First(ghandle, &me32)) { do { if (me32.th32ProcessID == pid) { CloseHandle(ghandle); return me32.modBaseAddr; } } while (Module32Next(ghandle, &me32)); } CloseHandle(ghandle); return NULL; }Code:find_base_address(GetCurrentProcessId());
GetModuleHandle(NULL);
//Summary: Entry point of Dll. BOOL WINAPI DllMain( _In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ LPVOID lpvReserved );
#include <Windows.h>
//Summary: Entry point of Dll.
BOOL WINAPI DllMain(
_In_ HINSTANCE hinstDLL,
_In_ DWORD fdwReason,
_In_ LPVOID lpvReserved
){
DisableThreadLibraryCalls(hinstDLL);
if(fdwReason == DLL_PROCESS_ATTACH){
LPVOID lpBaseAddress = (LPVOID)hinstDLL;
//(...) do something here.
return TRUE;
}
return FALSE;
}