Документация Steamworks
Steam DRM

Введение

Оболочка для защиты авторских прав (Steam DRM wrapper) — важная часть платформы Steam, поскольку она проверяет, что пользователь владеет игрой, и что все функции работают корректно, запуская Steam до запуска игры.

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

Рекомендуется повысить ценность законным образом приобретённых экземпляров вашей игры посредством использования функций Steamworks, которые будут недоступны на пиратских копиях, например: многопользовательский режим в сети, достижения, списки лидеров, коллекционные карточки и пр.

См. раздел Использование оболочки Steam с другими средствами защиты авторских прав, чтобы узнать больше о том, как использовать оболочку Steam DRM в комбинации с другими DRM-решениями или механизмами защиты от постороннего вмешательства.

Автоматическое добавление оболочки для защиты авторских прав

Оболочка добавляется из скрипта загрузки SteamPipe. Он отправляет запрос на инициализацию на сервера Steam через авторизованный клиент, а затем загружает туда нешифрованный исполняемый файл через HTTP. На сервере добавляется оболочка, и затем SteamCMD скачивает итоговый исполняемый файл.

Чтобы добавить оболочку с помощью SteamPipe, ваш скрипт должен авторизоваться и затем выполнить команду drm_wrap:
drm_wrap [appid] [input filename] [output filename] [toolname] [flags]

Параметры:
  • appid — номер приложения
  • input filename — относительный или абсолютный путь к нешифрованному исполняемому файлу. Не забудьте взять его в кавычки, если в пути есть пробелы!
  • output filename — относительный или абсолютный путь в папку, куда будет записан исполняемый файл с оболочкой.
  • toolname — drmtoolp для нового платформонезависимого инструмента. drmtool для старого инструмента под Win32.
  • flags — битовая маска следующих числовых флагов, определяющих поведение инструмента.
  • 0 — нормальная оболочка (наибольшая защита)
  • 6 — режим совместимости (отключает маскирование)
  • 32 — пропустить проверку отладчиком
  • 38 — режим совместимости и пропустить проверку отладчиком (наименьшая защита)

Пример скрипта run_build.bat, который сначала авторизуется, затем добавляет оболочку, собирает сборку и загружает её в Steam (App ID равен 480):
builder\\steamcmd.exe +login мойаккаунтsteam мойпарольsteam +drm_wrap 480 "D:\\src\\steamworkssdk\\steamworksexample\\release\\steamworksexample.exe" "D:\\src\\steamworkssdk\\tools\\ContentBuilder\\content\\windows_content\\SteamworksExample.exe" drmtoolp 0 +run_app_build ..\\scripts\\app_build_480.vdf +quit

Ручное добавление оболочки для защиты авторских прав

Для того, чтобы быстро добавить оболочку к исполняемому файлу игры, зайдите на страницу управления данными приложения на сайте Steamworks.

  1. Выберите игру, к которой вы хотите добавить оболочку на странице управления приложениями
  2. Нажмите «Изменить настройки приложения» в разделе «Технические инструменты»
  3. На вкладке «Безопасность» выберите «Защита DRM».
  4. Загрузите исходный исполняемый файл. Параметры работы инструмента см. в разделе автоматического добавления оболочки выше.
  5. Скачайте .exe на свой компьютер
  6. Переименуйте файл, дав ему изначальное название
  7. Скопируйте его в папку исходных файлов в хранилище контента
  8. Создайте новое хранилище
  9. Протестируйте это хранилище на локальном контент-сервере

Использование оболочки Steam с другими средствами защиты авторских прав

Оболочку Steam можно и нужно использовать в комбинации с другими DRM-решениями. Для этого до добавления других DRM-решений добавьте оболочку Steam в режиме совместимости, чтобы она не конфликтовала с ними. Режим совместимости отключит DRM-компонент оболочки.

Чтобы создать файл в режиме совместимости либо выберите соответствующий пункт на странице DRM в Steamworks, либо используйте соответствующие флаги при автоматическом создании оболочки.

Частые вопросы

В. Моя игра на C# или .Net не запускается после добавления оболочки Steam.
О. Оболочка Steam не поддерживает приложения на .Net. Вместо использования оболочки Steam используйте SteamAPI_RestartAppIfNecessary.

В. Моя игра не запускается после добавления оболочки Steam
О. Оболочка Steam может сломать другие DRM-инструменты. См. Использование оболочки Steam с другими средствами защиты авторских прав.

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