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

Огляд

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

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

Рекомендуємо підвищити цінність легальних копій вашої гри за допомогою функцій Steamworks, які не працюватимуть на піратських копіях (наприклад, мережева гра, досягнення, таблиці лідері, колекційні картки тощо).

Дивіться розділ про інші DRM для докладнішої інформації про поєднання DRM Steam та інших DRM-рішень чи механізмів захисту від стороннього втручання.

Автоматичне додавання оболонки DRM Steam

Оболонка додається зі скрипта вивантаження SteamPipe. Він надсилає запит на ініціалізацію до серверів Steam через авторизований клієнт, а потім завантажує туди текстовий виконуваний файл через HTTP. На сервері додається оболонка, а steamcmd завантажує виконуваний файл.

Щоби додати оболонку за допомогою SteamPipe ваш скрипт повинен авторизуватися й потім виконати команду drm_wrap:
drm_wrap [appid] [input filename] [output filename] [toolname] [flags] [<destination>]

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

Приклад скрипта run_build.bat, котрий спочатку авторизується, а потім додає оболонку, збирає збірку й вивантажує її до Steam (AppID — 480):
builder\steamcmd.exe +login mysteamaccount +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

Ручне додавання оболонки DRM Steam

Щоби швидко додати оболонку до виконуваного файлу гри, зайдіть на сторінку адміністрування даних застосунку в Steamworks.

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

Використання оболонки Steam з іншими DRM

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

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

Часті питання

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

П. Моя гра не запускається після додавання оболонки DRM Steam
В. Оболонка Steam може зламати інші DRM-інструменти. Дивіться розділ про інші DRM, оскільки може виникнути конфлікт.

П. Чи потрібно додавати DRM до мого виконуваного файлу щоразу, коли я роблю збірку?
В. Так, кожну збірку, яку ви збираєтеся публікувати, потрібно загорнути в оболонку Steam. Ви можете автоматизувати цей процес за інструкціями вище.

П. Антивірус визначив наявність у моєму двійковому файлі вірусу після застосування оболонки DRM Steam. Що я можу зробити?
В. Такі хибні виявлення можуть траплятися, бо процес DRM модифікує ваш двійковий файл таким способом, яким це може робити вірус. Зверніться до розробника антивірусу або скористайтеся API замість оболонки DRM Steam.