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 uzyskać więcej informacji 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 [appid] [input filename] [output filename] [toolname] [flags] [<destination>]

Parametry:
  • appid — twój identyfikator numeryczny aplikacji.
  • input filename — 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!
  • output filename — względna lub bezwzględna ścieżka do folderu, w którym narzędzie zapisze wyjściowy opakowany plik wykonywalny.
  • toolname - "drmtoolp" is currently the only supported toolname parameter.
  • flags - Bitmask of the following numeric flags specifying tool behavior.
    • 0 - Normal wrap (most protection)
    • 6 - Compatibility mode (disables obfuscation)
    • 32 - Skip debugger check
    • 38 - compatibility mode and also skip debugger check (least protection)
  • destination, optional parameter - "cloud" or "local". The current default is "local". We will be migrating this command to use cloud storage by default in the future.

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 automatycznym drmtool.

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.

Q. An Anti-virus vendor has detected my binary as having a virus after applying the Steam DRM wrapper. What can I do?
A. False positives like this can happen, as the DRM injection process is modifying your binary in the same way a virus might do. Feel free to contact the vendor, or use the API instead of the Steam DRM wrapper.