• Добро пожаловать на сайт - wlux.net!

    FAQ по форуму

    1. Все сообщения до группы местный проходят модерацию от 1 минуты до 24 часа

    2. Сообщения учитываються в следующих разделах: Читать

    3.Что-бы скачать вложение нужно 2 сообщения.

    4.Личные переписки работают только с Администрацией форума

    5. Запрещено: Просить скрытый текст , спам, реклама, скам, ддос, кардинг и другая чернуха, нарушать любые законы РФ/СНГ = бан аккаунта

    6. Внимание! Мы не удаляем аккаунты с форума! Будьте внимательны ДО регистрации! Как удалить аккаунт на форуме?!

    5.Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь

This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Гайд Kernel Anti-cheat (EAC, Vanguard, BattlEye). Мануал для разработчиков: как работает, способы обхода, разработка драйверов режима ядра

Оффлайн

wlux.net

Где волчьи уши, там волчьи зубы.
Команда форума
LV
7
 
20.06.2022
23 849
218
36
Награды
10
Пол
Муж.

Репутация:

  • Автор темы
  • Администратор
  • Модератор
  • Команда форума
  • #1


Большинство популярных игр используют античиты режима ядра. Такой способ защиты наиболее эффективен в предотвращении использования читов пользователем. Этот мануал предоставит максимум информации, необходимой для обхода подобных античитов.
Информация, представленная в этом руководстве, объясняет:

  • Что такое режим ядра, пользовательский режим.
  • Как научиться разработке драйверов режима ядра (KMDF).
  • Серия англоязычных видеоуроков, посвященная читам режима ядра.
  • Как использовать драйверы с уязвимостями.
  • Распространенные драйверы с уязвимостями и инструменты.
  • Обзор общих функций античитов в режиме ядра.
  • Обнаружение читов режима ядра.

Что такое режим ядра и в чем его отличие от пользовательского режима.​

Процессор на компьютере с Windows имеет два разных режима: режим ядра (kernel mode) и пользовательский режим (user mode). Процессор переключается между двумя режимами в зависимости от того, какой тип кода выполняется. Обычные программы .exe запускаются в пользовательском режиме, а основные компоненты операционной системы - в режиме ядра. Конструкция этих режимов встроена в ЦП. Низкоуровневые основные функции операционной системы выполняются в режиме ядра, который является привилегированной частью памяти, которая недоступна из пользовательского режима и выполняется с привилегированным статусом на ЦП. Вы можете создать драйвер .sys для выполнения любых действий в режиме ядра, включая обход античита.

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

Многие из простых вещей, которые вам нужно делать при взломе игр, зависят от ядра, выполняющего эти задачи за вас. Например, когда вы вызываете WriteProcessMemory (), эта функция экспортируется из NTDLL.DLL, этот запрос на запись в память другого процесса передается ядру через NTDLL. Ваше приложение на самом деле этого не делает, это ядро, ваша программа просто делает запрос. Просмотрите изображение ниже, чтобы понять, как разделены режим ядра и режим пользователя.



Процессы пользовательского режима не имеют доступа к процессам и памяти режима ядра. Так устроены ЦП и операционная система.

Как это применимо к обходу античита?

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

Если игра использует античит режима ядра, тогда вы также должны быть в ядре, потому что ничего, что вы делаете в пользовательском режиме, не сможет обойти или скрыть античит ядра. Вообще, драйверы режима ядра не нужны для взлома 99% игр. Фактически, драйверы режима ядра очень легко обнаружить античитом, если все сделано неправильно.

Разработка драйвера режима ядра намного сложнее, чем для приложений пользовательского режима, по этой причине ваши функции, обеспечивающие «обход», выполняются в ядре, но в большинстве случаев, фактическая логика читерства выполняется в модуле пользовательского режима. В этой ситуации вы загружаете драйвер, включаете функцию обхода и затем инжектите свою DLL. В качестве альтернативы вы можете написать весь свой хак в режиме ядра, что намного сложнее.

Разработка драйвера режима ядра.​

Тестовая подпись и подпись драйвера.​

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

Раньше вы могли отключить подписи драйверов, выполнив эти команды от имени администратора и перезагрузившись:

Код:
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON

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

Код:
bcdedit /set {default} bootmenupolicy legacy

Затем перезагрузитесь и нажмите F8 перед загрузкой Windows, вы увидите меню, в котором вы можете отключить подпись драйверов. В качестве альтернативы, в Windows 10 вы можете удерживать SHIFT при нажатии кнопки “Перезагрузить”, и появится это меню. Но это работает только для этой одной перезагрузки, вам нужно делать это каждый раз, потому что Windows 10 сбрасывает его до значения по умолчанию.

Как использовать драйверы с уязвимостями.​

Любой драйвер, который берет данные из пользовательского режима и что-то делает с ними в ядре, потенциально уязвим. У многих есть переполнение буфера, которое можно использовать, или, что еще хуже, произвольная уязвимость ядра, связанная с записью данных. Эти уязвимости могут быть использованы из пользовательского режима для выполнения вашего кода, обеспечивая простой метод для загрузки вашего собственного драйвера.

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

В учебных целях сначала научитесь использовать

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

, а затем

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

.

KDMapper.​


Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

используется создателями платных читов:

  • Использует встроенный уязвимый драйвер Intel.
  • Предоставляет простой интерфейс командной строки.
  • Вы просто передаете ему 1 аргумент, и ваш драйвер загружен.
  • В KDMapper встроен уязвимый драйвер диагностики Intel Ethernet iqvw64e.sys. Драйвер встроен в массив байтов в

    Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

    .
Драйвер был подписан в 2013 году. Уязвимость была официально опубликована в 2015 году как

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

с оценкой серьезности 7,8. Удивительно, но сертификат еще не отозван.

iqvw64e.sys
Код:
sha256            :     B2B2A748EA3754C90C83E1930336CF76C5DF9CBB1E3EEC175164BB01A54A4701
date            :     empty
language        :     English-United States
code-page        :     Unicode UTF-16    :      little endian
CompanyName        :     Intel Corporation
FileDescription    :     Intel(R) Network Adapter Diagnostic Driver
FileVersion        :     1.03.0.7 built by WinDDK
InternalName    :     iQVW64.SYS
LegalCopyright    :     Copyright (C) 2002-2013 Intel Corporation All Rights Reserved.
OriginalFilename:     iQVW64.SYS
ProductName        :     Intel(R) iQVW64.SYS
ProductVersion    :     1.03.0.7

Уязвимость существует из-за недостаточной проверки входного буфера, когда драйвер обрабатывает коды IOCTL 0x80862013, 0x8086200B, 0x8086200F, 0x80862007 с использованием METHOD_NEITHER, а также из-за небезопасных разрешений, позволяющих всем читать и писать доступ только к функциям привилегированного использования.

KDMapper использует код IOCTL 0x80862007 для произвольного выполнения.


Список уязвимых драйверов.​

Вероятно, существуют тысячи уязвимых драйверов, вот некоторые из них, о которых мы знаем.
Ресурсы для уязвимых драйверов:

Функциональность античитов в режиме ядра.​

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

Что делать дальше?​

Итак, вы можете загрузить ваш драйвер с помощью Manual Map, можете читать и записывать память, что делать дальше?

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

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

Помните, что вы не можете пропатчить античит режима ядра, поэтому вам нужно обойти его.

Затем вы должны исправить все детекты в пользовательском режиме, чтобы вы могли подключить отладчик, особенно Cheat Engine & Reclass, чтобы вы могли начать реверс игры.

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

Обнаружение читов режима ядра.​

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

Драйвер внедренный с помощью Manual Map не может быть обнаружен с помощью стандартных методов, но внедрение вашего драйвера оставляет следы. Убедитесь, что вы очистили PiDDBCacheTable и все остальное, что оставил после себя ваш драйвер.

Ресурсы:

 
N Оффлайн

Nikolsky

Участник
LV
2
 
20.01.2024
2
0
24
Награды
2
25

Репутация:

Ну очень полезный гайд!
 
M Оффлайн

M1poH

Участник
LV
2
 
13.05.2024
3
0
9
Награды
2
24

Репутация:

Отличный гайд, автору за труды плюс
 
Оффлайн

ServArch

Участник
LV
0
 
23.06.2024
3
0
7
Награды
1
24

Репутация:

Очень полезный гайд, спасибо, помог найти ответ на мой вопрос
 
C Оффлайн

corentos

Участник
LV
2
 
31.01.2024
2
0
24
Награды
2
24

Репутация:

Ну очень полезный гайд!
 
R Оффлайн

Rekigano

Участник
LV
2
 
05.07.2024
5
0
11
Награды
2
23

Репутация:

огромное спасибо, было очень нужно
 
M Оффлайн

morty__q

Участник
LV
2
 
29.04.2024
2
0
24
Награды
2
24

Репутация:

было нужно, сяб огромное
 
S Оффлайн

swanxie

Участник
LV
0
 
12.07.2024
2
0
6
20

Репутация:

требует доработки, но в целом интересно
 
S Оффлайн

SENTI FOMOV

Участник
LV
2
 
28.09.2024
28
0
10
Награды
3
18

Репутация:

оп оп нормальный гайд подьехал
 
V Оффлайн

vteme777

Участник
LV
0
 
08.11.2024
2
0
6
36

Репутация:

Вопрос... Есть большое колличество драйверов которые действительно уязвимы и позволяют через них загрузку своего драйвера, но можно ли через уязвимый драйвер просто на прямую проводить мапирования dll в целевой процесс ?
 
Y Оффлайн

yarkiki

Участник
LV
0
 
30.11.2024
3
0
6
30

Репутация:

очень полезный гайд, спасибо большое
 

Поиск по форуму

Похожие темы:

Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше....