Вопрос Как хукнуть функцию?/how to hook function?

niklive

Активный
Сообщения
159
Реакции
13
Привет, если есть желание, накидайте материала на счёт хука функций. Я в эту тему только погружаюсь и, если кто-то знает какие-нибудь интересные статьи или видео, я буду очень рад, если вы поделитесь этими материалами для изучения. P.S. для internal чита
 

honorbuddy

Активный
Сообщения
141
Реакции
17
C++:
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.S

Для просмотра скрытого содержимого вы должны авторизироваться или зарегистрироваться

 

niklive

Активный
Сообщения
159
Реакции
13
C++:
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.S

Для просмотра скрытого содержимого вы должны авторизироваться или зарегистрироваться

Спасибо, крайне ценная информация!
 

niklive

Активный
Сообщения
159
Реакции
13
C++:
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.S

Для просмотра скрытого содержимого вы должны авторизироваться или зарегистрироваться

А можно ли обойтись без создания треда? Насколько я понимаю - любой античит задетектит такое изменение в стеке. Или я что-то не понимаю?
 

honorbuddy

Активный
Сообщения
141
Реакции
17
А можно ли обойтись без создания треда? Насколько я понимаю - любой античит задетектит такое изменение в стеке. Или я что-то не понимаю?
да можно , я и вообще не рассматриваю варианты с созданием потока)
 

niklive

Активный
Сообщения
159
Реакции
13
Хукаешь любую функцпию которая постоянно вызывается и там крутишь свои функции.
Хорошая идея! Через такой способ можно сделать, например instant win или нечто подобное? То есть в постоянно вызывающуюся функцию вставить jmp на собственную функцию, которая будет взята из этой же игры(в данном случае функция когда ты победил в игре). Или это всё не так работает?
 

$1and1

Активный
Сообщения
279
Реакции
41
Хорошая идея! Через такой способ можно сделать, например instant win или нечто подобное? То есть в постоянно вызывающуюся функцию вставить jmp на собственную функцию, которая будет взята из этой же игры(в данном случае функция когда ты победил в игре). Или это всё не так работает?
но только не в х64 ой архитектуре
 
Верх Низ