Steamworks-Dokumentation
Steam-DRM

Übersicht

Der Steam-DRM-Wrapper ist eine wichtige Komponente der Steam-Plattform, da er die Eigentumsrechte am Spiel verifiziert und sicherstellt, dass die Steamworks-Funktionen ordnungsgemäß ausgeführt werden, indem Steam vor Start des Spiels gestartet wird.

Der Steam-DRM-Wrapper allein stellt keine Lösung gegen Softwarepiraterie dar. Er schützt vor sehr einfachen Formen der Piraterie (d. h. das Kopieren aller Spieldateien auf einen anderen Computer) und bietet ein gewisses Maß an Obfuskation, kann aber von einem motivierten Angreifer leicht entfernt werden.

Wir schlagen vor, den Wert rechtmäßiger Kopien Ihres Spiels zu steigern, indem Sie Steamworks-Funktionen verwenden, die bei unrechtmäßigen Kopien nicht funktionieren (z. B. Online-Multiplayer-Modus, Errungenschaften, Bestenlisten, Sammelkarten usw.).

Weitere Informationen zum Kombinieren des Steam-DRM-Wrappers mit anderen DRM- oder Manipulationsschutzlösungen finden Sie im Dokumentationsartikel Verwenden des Steam-Wrappers mit anderen DRM-Lösungen.

Automatischer Steam-DRM-Wrapper

Sie können den Steam-Wrapper von Ihrem SteamPipe-Uploadskript aus anwenden. Dadurch wird über den angemeldeten Client eine Initialisierungsanfrage an die Steam-Server ausgeführt und Ihre ausführbare Datei im Textformat über HTTP an das Steam-Backend gesendet. Die Umschließung erfolgt auf Serverseite, anschließend lädt steamcmd die umschlossene ausführbare Datei herunter.

Um eine DRM-Umschließung mit SteamPipe durchzuführen, führen Sie die Anmeldung über Ihr Skript aus und führen Sie anschließend den Steam-Befehl drm_wrap aus:
drm_wrap [App-ID] [Eingabe-Dateiname] [Ausgabe-Dateiname] [Werkzeugname] [Flags] [<Ziel>]

Parameter:
  • App-ID: Die numerische ID Ihrer Anwendung.
  • Input-Dateiname: Relativer oder absoluter Pfad zur Eingabe der ausführbaren Datei im Textformat. Setzen Sie Pfade, die Leerzeichen enthalten könnten, in Anführungszeichen!
  • Output-Dateiname: Relativer oder absoluter Pfad, in den das Werkzeug die umschlossene ausführbare Datei schreibt.
  • Werkzeugname: „drmtoolp“ ist zurzeit der einzige unterstützte Parameter für Werkzeugnamen.
  • Flags : Bitmaske der folgenden numerischen Flags zur Angabe des Werkzeugverhaltens.
    • 0: Normale Umschließung (höchster Schutz)
    • 6: Kompatibilitätsmodus (deaktiviert Obfuskation)
    • 32: Debuggerprüfung überspringen
    • 38: Kompatibilitätsmodus und Debuggerprüfung überspringen (geringster Schutz)
  • Ziel, optionaler Parameter: „cloud“ oder „local“. Der aktuelle Standardwert ist jetzt „cloud“. Die Option „local“ sollte nicht benötigt werden, es sei denn, es gibt Probleme bei der Verwendung der Option „cloud“.

Beispielhaftes run_build.bat-Skript für die Anmeldung, DRM-Anwendung, Build-Erstellung und den Upload auf Steam (App-ID ist 480):
builder\steamcmd.exe +login meinsteamaccount +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

Manueller Steam-DRM-Wrapper

Um eine ausführbare Datei schnell mit dem Steam-Wrapper zu umschließen, verwenden Sie die Anwendungsdatenverwaltung in Steamworks zum Umschließen der primären EXE-Datei des Spiels.

  1. Wählen Sie auf Ihrer Anwendungsverwaltungsseite das Spiel aus, dem Sie das DRM hinzufügen möchten.
  2. Wählen Sie auf der Anwendungsverwaltungsseite im Bereich „Technische Werkzeuge“ die Option „Steamworks-Einstellungen bearbeiten“.
  3. Wählen Sie im Tab „Sicherheit“ die Option „DRM“.
  4. Laden Sie die primäre EXE-Datei des Spiels hoch. Weitere Informationen zu den Ausführungsoptionen dieses Werkzeugs finden Sie oben im Abschnitt über den automatischen Wrapper.
  5. Laden Sie die EXE-Datei wieder auf Ihren lokalen Computer herunter.
  6. Ändern Sie den Namen der EXE-Datei wieder in den ursprünglichen Namen.
  7. Kopieren Sie sie in den Quellspeicherort für Ihre Entwicklungstool-Depots.
  8. Erstellen Sie eine neue Version Ihres Depots.
  9. Testen Sie dieses Depot auf Ihrem lokalen Inhaltsserver.

Verwenden des Steam-Wrappers mit anderen DRM-Lösungen

Auch in Verbindung mit anderen DRM-Lösungen können und sollten Sie den Steam-Wrapper verwenden. Wenden Sie hierzu zunächst den Steam-Wrapper im Kompatibilitätsmodus an, bevor Sie eine andere DRM-Lösung einsetzen. Sie müssen den Steam-DRM-Wrapper zuerst anwenden, damit es nicht zu Konflikten mit der anderen DRM-Lösung kommt. Der Kompatibilitätsmodus deaktiviert die DRM-Funktionen des Wrappers.

Übermitteln Sie die EXE-Datei im Kompatibilitätsmodus, indem Sie diese entweder auf der Steamworks-Seite im Auswahlmenü auswählen oder Sie die entsprechenden Flags im automatischen DRM-Werkzeug setzen.

Häufig gestellte Fragen

Frage: Mein C#-/.Net-Spiel kann nach Anwenden des Steam-Wrappers nicht mehr gestartet werden.
Antwort: Der Steam-Wrapper unterstützt keine .Net-Anwendungen. Verwenden Sie anstelle des DRM-Wrappers SteamAPI_RestartAppIfNecessary.

Frage: Mein Spiel kann nach Anwenden des Steam-DRM-Wrappers nicht mehr gestartet werden.
Antwort: Der Steam-Wrapper kann andere DRM-Lösungen beeinträchtigen. Lesen Sie bitte den Dokumentationsartikel Verwenden des Steam-Wrappers mit anderen DRM-Lösungen; eventuell liegt ein Konflikt vor.

Frage: Muss ich das DRM bei jedem neuen Build auf meine EXE-Datei anwenden?
Antwort: Ja. Jeder Build, den Sie veröffentlichen möchten, muss mit dem Steam-Wrapper umschlossen werden. Versuchen Sie, diesen Vorgang mithilfe des oben beschriebenen automatischen Steam-Wrapper-Vorgangs zu automatisieren.

Frage: Ein Antivirusanbieter hat entdeckt, dass meine Binärdatei nach Anwendung des Steam-DRM-Wrappers einen Virus enthält. Was kann ich tun?
Antwort: Falsch-positive Ergebnisse wie dieses kommen vor, da der DRM-Einfügungsprozess Ihre Binärdatei auf eine Weise verändert, wie es auch ein Virus tun kann. Auf Wunsch können Sie den Anbieter kontaktieren oder statt dem Steam-DRM-Wrapper die API verwenden.