Dokumentacja Steamworks
DRM Steam

Wprowadzenie

Wrapper DRM Steam jest ważną częścią platformy Steam, ponieważ weryfikuje stan posiadania gry przez użytkowników i upewnia się, że wszystkie funkcje Steamworks działają poprawnie, uruchamiając Steam przed rozpoczęciem gry.

Wrapper DRM Steam sam w sobie nie jest rozwiązaniem antypirackim. Wrapper DRM Steam chroni przed wyjątkowo częstym przypadkiem piractwa (tj. kopiowaniem wszystkich plików gry na inny komputer) i został poddany procesowi obfuskacji, ale jest łatwy do usunięcia przez osobę, która chce się go pozbyć.

Sugerujemy zwiększenie wartości legalnych kopii twojej gry dzięki funkcjom Steamworks, które nie będą działać w nieautoryzowanych kopiach (na przykład wieloosobowy tryb online, osiągnięcia, tabele wyników, karty kolekcjonerskie itp.).

Przejdź tutaj, aby dowiedzieć się więcej o łączeniu wrappera DRM Steam z innymi podobnymi rozwiązaniami.

Zautomatyzowany wrapper DRM Steam

Wrapper Steam może zostać zastosowany z poziomu skryptu przesyłania SteamPipe. Przez to zostanie wykonane żądanie inicjalizacji do serwerów Steam za pośrednictwem zalogowanego klienta, a następnie przesłanie pliku wykonywalnego w postaci zwykłego tekstu do back-endu Steam za pośrednictwem protokołu HTTP. Wrap jest wykonywany po stronie serwera, a następnie SteamCMD pobiera opakowany plik wykonywalny.

Aby wykonać wrap DRM poprzez SteamPipe, przygotuj skrypt logowania, a następnie wykonaj polecenie drm_wrap:
drm_wrap [ID aplikacji] [nazwa pliku wejściowego] [nazwa pliku wyjściowego] [nazwa narzędzia] [flagi] [<miejsce docelowe>]

Parametry:
  • ID aplikacji – twój identyfikator numeryczny aplikacji.
  • nazwa pliku wejściowego – względna lub bezwzględna ścieżka do pliku wykonywalnego w postaci zwykłego tekstu. Pamiętaj o umieszczeniu ścieżki w cudzysłowie, jeśli w ścieżce są spacje!
  • nazwa pliku wyjściowego – względna lub bezwzględna ścieżka do folderu, w którym narzędzie zapisze wyjściowy opakowany plik wykonywalny.
  • nazwa narzędzia – „drmtoolp” jest obecnie jedynym obsługiwanym parametrem nazwy narzędzia.
  • flagi – maska bitowa następujących flag numerycznych określająca zachowanie narzędzia.
    • 0 – normalny wrap (największa ochrona).
    • 6 – tryb zgodności (wyłącza obfuskację).
    • 32 – pominięcie sprawdzania przez debugger.
    • 38 – tryb zgodności i pominięcie sprawdzania przez debugger (najmniejsza ochrona).
  • miejsce docelowe, parametr opcjonalny – „cloud” lub „local”. Obecnie domyślnym parametrem jest „cloud”. Nie powinna istnieć potrzeba użycia opcji „local”, chyba że istnieją jakieś problemy z opcją „cloud”.

Przykładowy skrypt run_build.bat z logowaniem, nakładaniem DRM oraz tworzeniem i przesyłaniem kompilacji do Steam (gdzie ID aplikacji to 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

Ręczny wrapper DRM Steam

Aby szybko opakować plik wykonywalny za pomocą wrappera Steam, przejdź do strony administratora danych aplikacji, by dokonać tego na głównym pliku exe gry.

  1. Wybierz grę, do której chcesz dodać DRM na stronie administratora aplikacji.
  2. Wybierz „Edytuj ustawienia Steamworks” w sekcji „Narzędzia techniczne” na stronie administratora aplikacji.
  3. Wybierz DRM z zakładki „Bezpieczeństwo”.
  4. Prześlij główny plik exe gry – zobacz powyższy dział o automatycznym wrapperze, by uzyskać więcej informacji na temat opcji uruchamiania narzędzia.
  5. Pobierz plik exe z powrotem na swój lokalny komputer.
  6. Zmień nazwę pliku exe, nadając mu z powrotem oryginalną nazwę.
  7. Skopiuj go do lokalizacji źródłowej dla twoich magazynów zawartości narzędzi treści.
  8. Skompiluj nową wersję swojego magazynu zawartości.
  9. Przetestuj ten magazyn zawartości na swoim lokalnym serwerze treści.

Używanie wrappera Steam wraz z innymi rozwiązaniami DRM

Wrapper Steam może, a nawet powinien być używany w połączeniu z innymi rozwiązaniami DRM. Aby to zrobić, zastosuj wrapper Steam w trybie zgodności przed dodaniem innych rozwiązań DRM. Zastosuj go w pierwszej kolejności, aby nie zakłócał działania innych rozwiązań DRM. Tryb zgodności wyłączy możliwości DRM wrappera.

Prześlij plik exe w trybie zgodności, wybierając go w menu rozwijanym na stronie Steamworks lub używając odpowiednich flag w zautomatyzowanym narzędziu DRM.

Najczęściej zadawane pytania

P: Moja gra korzystająca z technologii C# lub .Net nie działa po uruchomieniu wrappera Steam.
O: Wrapper Steam nie obsługuje aplikacji korzystających z technologii .Net. Zamiast wrappera DRM użyj SteamAPI_RestartAppIfNecessary.

P: Moja gra nie uruchamia się po zastosowaniu wrappera DRM Steam.
O: Wrapper Steam może czasami sprawić, że inne narzędzia DRM przestaną działać. Przejdź tutaj, gdyż mógł wystąpić konflikt.

P: Czy muszę nakładać DRM do mojego pliku exe za każdym razem, gdy tworzę nową kompilację?
O: Tak. Musisz użyć wrappera Steam dla każdej kompilacji, którą chcesz opublikować. Spróbuj zautomatyzować proces, korzystając z instrukcji dotyczących procesu automatyzacji wrappera Steam powyżej.

P: Dostawca oprogramowania antywirusowego wykrył, że mój plik binarny zawiera wirusa po zastosowaniu wrappera DRM Steam. Co mogę zrobić?
O: Wykrycia fałszywie pozytywne tego typu mogą się zdarzać, ponieważ proces wstrzykiwania DRM modyfikuje twoje pliki binarne w taki sam sposób, w jaki może to robić wirus. Skontaktuj się z dostawcą oprogramowania lub użyć API zamiast wrappera DRM Steam.