Перейти к содержанию
  • записи
    82
  • комментариев
    68
  • просмотров
    4488

Обход проверки целостности (программный метод)

Авторизация  
partoftheworlD

231 просмотр

Однажды я уже рассказывал как обойти проверку целостности руками, но это долго, нудно, да и кому вообще надо?!
Для начала необходимые утилиты: x64dbg, CrySearch/CE, любой компилятор.

 

Нашли адрес отвечающий за патроны, ставим на него бряк на запись, выходи на пишущую инструкцию, ставим бряк на доступ размером 1 байт в памяти на эту инструкцию и ждем срабатывания. После срабатывания в заголовке x64dbg будет написан ID потока.

 

420546730_.thumb.png.6a71f3937fec3c2899c55cede1e7dec7.png

 

Переходим во вкладку "Потоки", здесь нам необходим только адрес начала:

 

image.png.69bf5e9c66416236ae78a72cb82a3820.png

 

Теперь переходим к автоматизации, вся суть этого обхода в получении всех потоков и сравнении адреса начала, т.е если адрес начала равен 0x7FF730E2449D, то убиваем поток. Вот и весь обход.

 

if (reinterpret_cast<DWORD64>(thread->Win32StartAddress) == (reinterpret_cast<DWORD64>(mainModule) + 0x4490))
		{
			HANDLE hThread = OpenThread(THREAD_TERMINATE, FALSE, threadId);
			TerminateThread(hThread, 1);
			CloseHandle(hThread);
		}

 

0x4490 это относительный виртуальный адрес адреса начала потока.

 

image.png.4080de136df19c8b7680351067962e1d.png

 

 

ÐÐ¾Ñ Ð¸ вÑе ÑебÑÑа ! â боÑÑжÑÑнал Toyota Celica СлепÑÑ | DRIVE2

  • Понравилось 1
  • Плюс 2
Авторизация  


6 Комментариев


Рекомендуемые комментарии

Шикарно. (Всего 4 строки)

А могут разрабы проверку несколькими потоками запускать? С разными интервалами.

Поделиться этим комментарием


Ссылка на комментарий
Только что, Garik66 сказал:

Шикарно. (Всего 4 строки)

А могут разрабы проверку несколькими потоками запускать? С разными интервалами.

 

Конечно, но пусть запускают хоть 10 потоков, просто в программе надо указать их начальные адреса, а так программу включил и она в цикле будет отключать потоки при их создании(если они пересоздаются).

Но конкретно в этой игре, все проверки в одном потоке.

  • Плюс 1

Поделиться этим комментарием


Ссылка на комментарий

В таком случае, можно вообще поставить хук на CreateThread, сравнивать передаваемый адрес начала потока и тут же его убивать. Тогда точно без вариантов будет - поток будет умирать сразу во время создания.

Поделиться этим комментарием


Ссылка на комментарий
8 часов назад, Xipho сказал:

В таком случае, можно вообще поставить хук на CreateThread, сравнивать передаваемый адрес начала потока и тут же его убивать. Тогда точно без вариантов будет - поток будет умирать сразу во время создания.

 

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

Поделиться этим комментарием


Ссылка на комментарий
34 минуты назад, partoftheworlD сказал:

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

А, это было для онлайна? Интересно, что за онлайн игры, где это прокатывает 😁  За самописный хук бан? Это вряд ли.

Поделиться этим комментарием


Ссылка на комментарий
27 минут назад, JustHack сказал:

За самописный хук бан? Это вряд ли.

Некоторые игры/анти-читы(например VAC) проверяют целостность некоторого списка winapi функций, вот тебе и бан за хук.

 

29 минут назад, JustHack сказал:

Интересно, что за онлайн игры, где это прокатывает

Любая игра с анти-читом на стороне сервера в 80% случаев имеет проверку целостности кода.

  • Печалька 1

Поделиться этим комментарием


Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×

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

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