DMA-читы: почему аппаратные схемы сложнее обнаружить и действительно ли они «невидимы» для античитов
Борьба разработчиков онлайн-игр с читерами постепенно вышла за пределы обычного поиска подозрительных программ на компьютере. Одним из наиболее сложных направлений стали так называемые DMA-читы — схемы, в которых для получения данных из памяти игрового компьютера используется отдельное оборудование.
Такие решения нередко рекламируются как практически «невидимые» для античитов. На практике ситуация значительно сложнее: DMA действительно меняет модель обнаружения читов, однако сама по себе аппаратная схема не делает игрока неуязвимым для блокировки.
Что такое DMA
DMA расшифровывается как Direct Memory Access — прямой доступ к памяти. Это не технология, созданная для читов, а обычный механизм работы компьютерного оборудования.
Различные устройства могут обращаться к оперативной памяти напрямую, не заставляя центральный процессор обслуживать каждую операцию. Именно эту возможность и стали использовать разработчики аппаратных читов.
В наиболее известной схеме специальная плата подключается к игровому компьютеру через PCIe. Она получает данные из оперативной памяти, после чего информация обрабатывается уже на другом устройстве или компьютере.
В результате непосредственно на игровом ПК может отсутствовать обычное приложение-чита, которое можно было бы обнаружить простым поиском запущенных процессов.
Именно этим DMA принципиально отличается от многих традиционных схем.
Чем DMA отличается от обычного чита
Классический чит обычно работает непосредственно на том компьютере, где запущена игра.
Одни программы взаимодействуют с памятью игры извне, другие внедряют свой код непосредственно в игровой процесс. Для античита подобное взаимодействие потенциально оставляет множество признаков: процессы, драйверы, обращения к памяти, загруженные библиотеки и другие программные следы.
DMA переносит часть этой деятельности за пределы игровой операционной системы.
Именно поэтому обнаруживать такие системы традиционными методами сложнее.
Однако из этого иногда делают слишком далеко идущий вывод — будто DMA невозможно обнаружить вообще.
Это не так.
«DMA не определяется античитом» — слишком сильное утверждение
В описаниях подобных продуктов часто встречаются формулировки вроде «полностью незаметный», «нулевой риск обнаружения» или «античит ничего не видит».
Относиться к таким заявлениям следует прежде всего как к рекламе.
Например, разработчики Riot Games открыто называют DMA одним из способов получения игрового преимущества и описывают использование аппаратных механизмов защиты, включая IOMMU — систему, ограничивающую доступ PCIe-устройств к областям памяти.
Более того, противостояние происходит уже не только внутри Windows. Разработчики античитов анализируют параметры загрузки компьютера, конфигурацию оборудования и настройки безопасности еще до полноценного запуска игры.
Получается своеобразная технологическая гонка: разработчики читов пытаются сделать оборудование похожим на обычное периферийное устройство, а разработчики античитов — определить аномальную конфигурацию или заблокировать саму возможность несанкционированного доступа к памяти.
Зачем нужен второй компьютер
Отдельная машина в DMA-схемах используется прежде всего для обработки полученной информации.
Если плата передает содержимое определенных областей памяти, программа на втором компьютере должна понять эти данные: определить координаты игровых объектов, положение персонажей, состояние инвентаря и другую информацию.
Затем данные могут отображаться в форме радара или дополнительных элементов интерфейса.
Таким образом, сама PCIe-плата — лишь канал доступа к информации. Большая часть логики по-прежнему реализуется программным обеспечением.
Подробное описание различий между программной и аппаратной частью подобных систем ранее приводилось в материале о принципах работы DMA-читов.
Почему после обновления игры такая система может перестать работать
DMA не избавляет разработчиков читов от одной из фундаментальных проблем: программа должна понимать структуру данных конкретной игры.
После обновлений расположение нужной информации в памяти может измениться. В результате программа, которая еще вчера правильно определяла положение игроков или игровых объектов, после патча может начать получать неправильные данные или вообще перестать работать.
Именно поэтому вокруг подобных продуктов существует собственная индустрия постоянных обновлений.
Но частота этих обновлений одновременно создает дополнительный риск для пользователей: фактически приходится постоянно доверять неизвестному разработчику программного обеспечения и прошивок.
Аппаратный чит не обязательно является безопаснее для владельца компьютера
Есть и еще один аспект, который часто остается за рамками рекламы подобных систем.
Пользователь приобретает оборудование, прошивку и программное обеспечение у стороннего поставщика и зачастую не имеет возможности проверить, что именно выполняет этот код.
Сам факт использования отдельного компьютера не гарантирует отсутствия вредоносного ПО, кражи учетных данных или других угроз.
Поэтому утверждение «на игровом компьютере ничего не устанавливается, значит схема безопасна» также нельзя считать универсальным.
Можно ли получить бан без обнаружения программы
Да.
Современная борьба с читерами давно не ограничивается поиском конкретного файла на компьютере.
Разработчик игры может анализировать игровые данные на сервере: скорость реакции, поведение при наведении, получение информации о противниках, статистические аномалии и множество других параметров.
Отдельным источником информации остаются жалобы игроков и ручная проверка записей матчей.
Поэтому даже идеально скрытое от локального сканирования устройство не делает действия игрока невидимыми.
Особенно это касается ситуаций, когда полученная при помощи постороннего оборудования информация используется слишком очевидно.
Почему разработчикам игр сложно полностью закрыть DMA
Проблема заключается в том, что прямой доступ к памяти сам по себе является легитимной возможностью компьютерной архитектуры.
PCIe используется огромным количеством совершенно обычного оборудования.
Поэтому задача античита состоит не в том, чтобы просто запретить все подобные устройства, а в том, чтобы отделить нормальное оборудование от техники, применяемой для вмешательства в игровой процесс.
Для этого используются одновременно программные и аппаратные механизмы безопасности.
Например, IOMMU может ограничивать области памяти, доступные конкретному устройству. Дополнительные проверки касаются Secure Boot, TPM, виртуализации и конфигурации BIOS.
Со своей стороны производители читов пытаются обходить новые проверки.
Именно поэтому говорить о каком-либо окончательном техническом преимуществе одной стороны пока преждевременно.
DMA скорее меняет борьбу с читами, чем отменяет ее
Главное отличие DMA заключается не в появлении какой-то принципиально «необнаруживаемой» технологии, а в переносе части операций с программного уровня на аппаратный.
Это действительно усложняет задачу разработчиков античитов.
Но в ответ защита тоже становится более низкоуровневой: современные античиты проверяют не только процессы Windows, но и конфигурацию компьютера, механизмы защиты памяти и признаки подозрительного поведения непосредственно в игре.
Поэтому распространенный тезис о том, что достаточно установить DMA-карту — и античит оказывается бессилен, сильно упрощает реальность.
Правильнее рассматривать DMA как очередной этап многолетней технологической гонки между разработчиками игр и создателями инструментов для получения нечестного преимущества. И пока одна сторона переносит читы из программ в отдельное оборудование, другая постепенно переносит защиту все ближе к аппаратному уровню компьютера.