Undert4ker Опубликовано 17 августа, 2020 Поделиться Опубликовано 17 августа, 2020 Имеется игра по локальной сети, в ней каждые 1 сек выполняется поток в котором идет скан памяти (если сказал бред, не судите строго :)) и нужно этот скан памяти как то отключить без десинхронизации клиента, т.е. меня. Пришел к сути вопроса, так как подумал что это наиболее логичный вариант, но с этим никогда не работал, нужно перехватить поток, и либо заморозить его, либо отключить, как это можно осуществить средствами с++? Ссылка на комментарий Поделиться на другие сайты Поделиться
Hack Опубликовано 17 августа, 2020 Поделиться Опубликовано 17 августа, 2020 (изменено) Спойлер int main() { DWORD thread_id = 0x123; HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, FALSE, thread_id); if (hThread == NULL) { printf("Error OpenThread %08lX\n", GetLastError()); return -1; } SuspendThread(hThread); //Приостановить system("pause"); ResumeThread(hThread); //Возобновить CloseHandle(hThread); return 0; } Лучше заблокировать создание потока или вызов скана. В CE есть возможность приостанавливать поток. Изменено 19 августа, 2020 пользователем Xipho Большие куски кода нужно прятать под спойлер. Читай правила. Ссылка на комментарий Поделиться на другие сайты Поделиться
Undert4ker Опубликовано 19 августа, 2020 Автор Поделиться Опубликовано 19 августа, 2020 В 17.08.2020 в 22:06, Hack сказал: Скрыть контент int main() { DWORD thread_id = 0x123; HANDLE hThread = OpenThread(THREAD_SUSPEND_RESUME, FALSE, thread_id); if (hThread == NULL) { printf("Error OpenThread %08lX\n", GetLastError()); return -1; } SuspendThread(hThread); //Приостановить system("pause"); ResumeThread(hThread); //Возобновить CloseHandle(hThread); return 0; } Лучше заблокировать создание потока или вызов скана. В CE есть возможность приостанавливать поток. За код спасибо конечно, но это мало информативно, так как суть вопроса это как раз таки перехват этого потока, т.е. как его поймать, я понятия не имею, порыв гугл, ответов полезных находил крайней мало, так что очень хотел бы узнать каким образом его можно перехватить для дальнейшей работы с ним Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 19 августа, 2020 Поделиться Опубликовано 19 августа, 2020 34 минуты назад, Undert4ker сказал: как его поймать 1. Найти функцию, которая делает проверку 2. Найти начальный адрес этой функции 3. Перебрать все потоки игры, проверяя стартовый адрес каждого потока. 4. Если адрес совпадает с нужным - заморозить/убить поток. Ссылка на комментарий Поделиться на другие сайты Поделиться
Undert4ker Опубликовано 19 августа, 2020 Автор Поделиться Опубликовано 19 августа, 2020 2 минуты назад, Xipho сказал: 1. Найти функцию, которая делает проверку 2. Найти начальный адрес этой функции 3. Перебрать все потоки игры, проверяя стартовый адрес каждого потока. 4. Если адрес совпадает с нужным - заморозить/убить поток. Спасибо за наводку, буду пробовать Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения