@muttley
I would like to get no-ASLR address to save in config, but I'm not knowing how this calculate ;/
#edit
I know why this function:
Code:
bool runMC(const char* path, DWORD address, bool tibia91plus){
bool ret = true;
PROCESS_INFORMATION pi;
STARTUPINFOA si = {sizeof(si)};
std::string spath = path;
if(spath.find_last_of("\\") != spath.size()-1)
spath += "\\";
path = spath.c_str();
if(CreateProcess(std::string(spath+"Tibia.exe").c_str(), NULL, NULL, NULL, false, CREATE_SUSPENDED, NULL, path, &si, &pi) == 0)
ret = false;
if(WriteProcessMemory(pi.hProcess, (LPVOID)address, &MCJMP, 1, NULL) == 0)
ret = false;
ResumeThread(pi.hThread);
if(WaitForInputIdle(pi.hProcess, -1) != 0)
ret = false;
if(WriteProcessMemory(pi.hProcess, (LPVOID)address, &MCJNZ, 1, NULL) == 0)
ret = false;
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return ret;
}
not work.
Module base I can check before ResumeThread function.
Ideas??