Спасибо, крайне ценная информация!P.SC++:uintptr_t GetSpread = PatternScan((uintptr_t)GetModuleHandleA(NULL), "40 53 48 83 EC 30 48 83 B9 ? ? ? ? ? 48 8B D9 75 09 0F 57 C0 48"); if (!GetSpread) return FALSE; if (MH_Initialize( ) != MH_STATUS::MH_OK) return FALSE; if (MH_CreateHook(reinterpret_cast<LPVOID>(GetSpread), GetCurrentSpread, reinterpret_cast<LPVOID*>(&OGetCurrentSpread)) != MH_STATUS::MH_OK) return FALSE; if (MH_EnableHook(reinterpret_cast<LPVOID>(GetSpread)) != MH_STATUS::MH_OK) return FALSE;
А можно ли обойтись без создания треда? Насколько я понимаю - любой античит задетектит такое изменение в стеке. Или я что-то не понимаю?P.SC++:uintptr_t GetSpread = PatternScan((uintptr_t)GetModuleHandleA(NULL), "40 53 48 83 EC 30 48 83 B9 ? ? ? ? ? 48 8B D9 75 09 0F 57 C0 48"); if (!GetSpread) return FALSE; if (MH_Initialize( ) != MH_STATUS::MH_OK) return FALSE; if (MH_CreateHook(reinterpret_cast<LPVOID>(GetSpread), GetCurrentSpread, reinterpret_cast<LPVOID*>(&OGetCurrentSpread)) != MH_STATUS::MH_OK) return FALSE; if (MH_EnableHook(reinterpret_cast<LPVOID>(GetSpread)) != MH_STATUS::MH_OK) return FALSE;
А есть статьи или видео про хук функции без создания потока?да можно , я и вообще не рассматриваю варианты с созданием потока)
Хукаешь любую функцпию которая постоянно вызывается и там крутишь свои функции.А есть статьи или видео про хук функции без создания потока?
Хорошая идея! Через такой способ можно сделать, например instant win или нечто подобное? То есть в постоянно вызывающуюся функцию вставить jmp на собственную функцию, которая будет взята из этой же игры(в данном случае функция когда ты победил в игре). Или это всё не так работает?Хукаешь любую функцпию которая постоянно вызывается и там крутишь свои функции.
но только не в х64 ой архитектуреХорошая идея! Через такой способ можно сделать, например instant win или нечто подобное? То есть в постоянно вызывающуюся функцию вставить jmp на собственную функцию, которая будет взята из этой же игры(в данном случае функция когда ты победил в игре). Или это всё не так работает?
Правильно понимаешь, ты можешь хукать игровые функции которые всегда вызываются, и вызывать в них свои функции. Это даже гараздо лучше дефолтного создания тредаА можно ли обойтись без создания треда? Насколько я понимаю - любой античит задетектит такое изменение в стеке. Или я что-то не понимаю?