Главное Авторские колонки Вакансии Образование
Выбор редакции:
7 733 3 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Защита игр в Steam: собственные механизмы и сторонние DRM

В 2008 году выступая на саммите, посвященном играм для PC, управляющий директор Valve Гейб Ньюэлл заявил, что его не волнуют действия пиратов, крадущих игры компании.
Мнение автора может не совпадать с мнением редакции

По его словам, система цифровой дистрибуции Steam надежно защищает изданные в ней проекты от нелегального копирования.Ньюэлл считает, что игроки высоко ценят сервис, который предоставляет Steam. Со временем они становятся все менее заинтересованными в пиратстве, ведь, украв одну из игр Valve, игрок рискует потерять и все законно купленные копии.

b_56b1e819a30ab.jpg

В 2015 году в компанию StarForce обратился потенциальный клиент, который захотел распространять на дисках игру, украденную из Steam. Звучит как нонсенс, но это сермяжная правда. Так насколько хороша защита Steam и какие методы используют издатели для предотвращения распространения пиратских копий?

Как устроена защита Steam

По умолчанию игры в Steam никак не защищены и представляют собой обыкновенные файлы, которые могут быть скопированы или запущены без каких-либо ограничений. Если требуется защитить файл (здесь и далее под словом "файл" подразумевается исполняемый файл приложения) от копирования на другой компьютер или от запуска на аккаунте, для которого данный файл (приложение) не авторизовано, Steam предлагает четыре способа.

Способ 1. Защита с помощью Steamworks API

b_56b1e829b3e75.jpg

Steam предоставляет разработчикам особое API "Steamworks", с помощью которого можно, помимо прочего, получить информацию о пользовательском аккаунте и приобретённых на него играх. Таким образом, самый простой способ узнать, что данный аккаунт имеет право на запуск приложения - проверить с помощью API из самого приложения, что оно действительно было куплено текущим пользователем. Это делается буквально парой строк кода:

if ( Steamworks.SteamInterface.User.UserHasLicenseForApp(playerSteamInfo.savedSteamID, new AppID(MyApplicationId)) == UserHasLicenseForAppResult.HasLicense )
{
    Debug.Log("Valid License");
}

Поскольку в один момент времени аккаунт может быть авторизован только на одном компьютере, этот способ также решает проблему с запуском приложения на множестве разных компьютеров под одним аккаунтом. В случае если интернет-соединения нет, данный способ не сможет подтвердить право на запуск приложения. Чтобы этого избежать, программный клиент Steam необходимо предварительно перевести в т.н. Offline-режим, при котором текущее состояние аккаунта сохраняется локально. Впрочем, если офлайн-запуск приложения по каким-либо причинам нежелателен, через Steamworks API всегда можно выяснить текущий режим и прервать запуск приложения, если это необходимо.

В настоящее время для взлома такого типа защиты обычно производится подмена интерфейсной библиотеки Steamworks API (steam_api.dll) на собственную, которая эмулирует требуемое поведение защиты.

Способ 2. Защита с помощью Steam Bind

b_56b1e84ed3ed7.jpg

В случае если у издателя нет возможности модифицировать код приложения, чтобы добавить туда защиту через API, он может воспользоваться "навесной" защитой Steam Bind. Такая защита устанавливается на уже готовые .exe/.dll файлы и самостоятельно проводит операции авторизации аналогично описанным выше. Такая защита не отличается особой взломостойкостью. В защищаемом файле производится шифрование части секции кода и дописывается модуль для вызова API Steam и восстановления зашифрованного кода, если проверка прошла успешно. Поскольку ключ для расшифровывания файла содержится в нём самом, защиту можно снять с произвольного приложения, не покупая его.

Существует как минимум один публичный проект, который снимает подобную защиту - Steamless. Проект доступен с открытым исходным кодом: https://github.com/atom0s/Steamless.

Способ 3. Защита с помощью Steam Custom Executable Generation

b_56b1e86b500bf.jpg

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

Способ 4. Использование сторонней DRM

Steam позволяет использовать системы, разработанные сторонними компаниями, для защиты игр от взлома и пиратского распространения.

b_56b1e89811f5c.jpg

В середине января 2016 года появилась новость о том, что пираты в скором времени не смогут взламывать игры из-за того, что системы защиты станут слишком совершенными. В частности речь шла о Denuvo, австрийском разработчике, наследнике SecuROM. Данное заявление больше похоже на PR ход, однако нельзя не признать, что технологии защиты постоянно совершенствуются, в том числе в области обфускации кода.

В последнее время в Steam появилось довольно много игр, защищенных Denuvo. Что это за система и насколько справедливо называть её DRM?

Основной задачей Denuvo является защита кода игры, поэтому применяется виртуальная машина, большое количество обфускации, и различные методы шифрования файлов. Если говорить именно о функционале DRM, то Denuvo может выполнять проверку авторизации копии игры на аккаунте игрока (см. способ 1).

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

Традиционно компания StarForce предлагает свои решения для защиты игр на платформе Steam. Широкая линейка продуктов позволяет выбрать оптимальный вариант защиты: только код, код + DRM, только DRM. Основной задачей StarForce в данный момент является предоставление защиты, которая не доставляет беспокойств честному игроку, а для пирата становится непреодолимой преградой. Основным преимуществом по сравнению с Denuvo можно назвать экономический аспект – при высоком уровне взломостойкости решения StarForce дешевле.

Также на Steam можно встретить игры, защищенные системами ActControl, Reality Pump, TAGES. Они не так широко известны, как две предыдущие, что скорее является их преимуществом. В основном эти решения выступают как альтернативные DRM-защиты, но могут предоставлять и защиту кода.

Экономический расчет

b_56b1e8aacc833.jpg

Ответить на вопрос, сколько стоит защита, не так просто. Все зависит от того, будет ли отдельно учитываться каждый игрок или речь идет только о защите кода. В первом случае, при подключении альтернативной DRM, будет оплачиваться лицензия на защиту и отдельно серийные номера на каждого игрока. При этом здесь тоже есть нюанс – серийники можно оплачивать сразу или, если удаться договориться с производителем системы защиты, по факту активации игроком. Стоимость номеров StarForce варьируется от 7 до 70 руб. и зависит от многих факторов: количества, вида защиты, количества активаций, способа оплаты.

При защите кода без учета игроков определяется общая стоимость использования системы защиты. Она зависит от производителя и территории распространения игры.

Отношение игроков к сторонним DRM на Стиме

b_56b1e8b99f9e3.jpg

Игроки относятся насторожено к играм со сторонней защитой. На форуме Steam можно найти такие заголовки: «Не покупайте эту игру! Она использует стороннюю DRM!» и еще 15 восклицательных знаков. С чем связана такая негативная реакция пользователей?

Во-первых, ограничения по количеству компьютеров. Это противоречит философии Steam, которая позволяет играть в любом месте, где есть интернет, а игру с DRM-защитой можно активировать только на ограниченном количестве компьютеров. Многих беспокоят вопросы: «А если мне не хватит активаций?», «Смогу ли я поиграть в эту игру через пять лет, когда мой компьютер будет совсем другим?». Ответы на эти вопросы есть. Например, в системе StarForce есть функция АДА – автоматического добавления активаций. Она позволяет добавлять игрокам новые активации по истечении определенного периода времени, например, по одной активации в год. Издателю только нужно будет объяснить это игрокам, чтобы они не беспокоились.

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

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

Перспективы защиты игр: Steam и пираты

b_56b1e8c746178.jpg

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

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Виктор Маскин
В многих случаях люди качают пиратскую версию игры, чтобы ее попробовать, чтобы оценить мощность своего девайся в этой игре. И если она ему понравится он рано или поздно купит лицензию.

По опыту из сетевой игры моего игрового сообщества.
Ответить
Пётр Горячёв
Не вижу смысла покупать оффлайн игры типа Skyrim,Darksiders,крякнул фениксом api стима и поехали ирать в офф версию) онлайн другой разговор
Ответить
Роман Грей
Я являюсь акционером, который часть своих активов забросил в игры площадки стим. И раз уж у людей такое забавное, двоякое отношение к DRM, я выскажу и свою точку зрения.

DRM или внешняя безопасность - шифрование исходного кода игры, создают одну глобальную проблему. Вы не владеете игрой - но это понятно. Игрой владеет разработчик. Но! Вы не владеете даже копией игры! Вы ее покупаете, вы ее используете, но вы не имеете право ее использовать вне клиента Steam. И любой адекватный человек сразу задумается, а не используют ли его кошелек, чтобы Steam могло выкупать игры и быть их единственным собственником. Т.е передавать клиенту право аренды, но не владения копией. И вот это больше всего раздражает, когда дело касается DRM. Отмена право собственности, и тут рос потреб надзор не поможет, так как в договоре ясно прописано, что ваши права как клиента сильно урезаны. Вы как бы партнер, помогающий Steam получать копии игр, за что вы имеете право в них играть.
Ответить
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.