Перейти к содержанию
Авторизация  
Undert4ker

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

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

Имеется игра по локальной сети, в ней каждые 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. Если адрес совпадает с нужным - заморозить/убить поток.

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

Поделиться сообщением


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр
Авторизация  

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

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

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