Перейти к содержанию

Нужна помощь с перехватом потока


Рекомендуемые сообщения

Имеется игра по локальной сети, в ней каждые 1 сек выполняется поток в котором идет скан памяти (если сказал бред, не судите строго :)) и нужно этот скан памяти как то отключить без десинхронизации клиента, т.е. меня. Пришел к сути вопроса, так как подумал что это наиболее логичный вариант, но с этим никогда не работал, нужно перехватить поток, и либо заморозить его, либо отключить, как это можно осуществить средствами с++?

Ссылка на комментарий
Поделиться на другие сайты

Спойлер

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
Большие куски кода нужно прятать под спойлер. Читай правила.
Ссылка на комментарий
Поделиться на другие сайты

В 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 есть возможность приостанавливать поток.

За код спасибо конечно, но это мало информативно, так как суть вопроса это как раз таки перехват этого потока, т.е. как его поймать, я понятия не имею, порыв гугл, ответов полезных находил крайней мало, так что очень хотел бы узнать каким образом его можно перехватить для дальнейшей работы с ним

Ссылка на комментарий
Поделиться на другие сайты

34 минуты назад, Undert4ker сказал:

как его поймать

1. Найти функцию, которая делает проверку

2. Найти начальный адрес этой функции

3. Перебрать все потоки игры, проверяя стартовый адрес каждого потока. 

4. Если адрес совпадает с нужным - заморозить/убить поток.

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, Xipho сказал:

1. Найти функцию, которая делает проверку

2. Найти начальный адрес этой функции

3. Перебрать все потоки игры, проверяя стартовый адрес каждого потока. 

4. Если адрес совпадает с нужным - заморозить/убить поток.

Спасибо за наводку, буду пробовать

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.