Overzicht
De DRM-wrapper van Steam is een belangrijk onderdeel van het Steam-platform, omdat hiermee wordt geverifieerd of een gebruiker een spel bezit. Door Steam op te starten voordat het spel wordt gestart, zorgt de wrapper er ook voor dat Steamworks-functies goed werken.
De DRM-wrapper van Steam is in principe geen waarborg tegen piraterij. De DRM-wrapper van Steam beschermt tegen extreem eenvoudige piraterij (bijv. als alle spelbestanden naar een andere computer worden gekopieerd) en biedt enige obfuscatie, maar de wrapper kan door een gemotiveerde hacker zonder al te veel moeite worden verwijderd.
We raden je aan om de waarde van legitieme exemplaren van je spel te verhogen door Steamworks-functies te gebruiken die niet werken op niet-legitieme versies (bijv. online multiplayer, prestaties, scoreborden, ruilkaarten etc.).
Zie
De Steam-wrapper gebruiken met andere DRM voor meer informatie over hoe je de DRM-wrapper van Steam kunt combineren met andere DRM- of antimanipulatie-oplossingen.
Geautomatiseerde DRM-wrapper van Steam
De Steam-wrapper kan vanuit je SteamPipe-uploadscript worden toegepast. Er wordt dan via de ingelogde client een initialisatieverzoek verzonden naar de Steam-server, waarna je uitvoerbare tekstbestand via HTTP op de Steam-backend wordt geplaatst. De wrap wordt op de server uitgevoerd, waarna steamcmd het met de wrapper ingepakte uitvoerbare bestand weer kan downloaden.
Om met behulp van SteamPipe een DRM-wrap uit te voeren, moet je je script laten inloggen en vervolgens de Steam-opdracht drm_wrap uitvoeren:
drm_wrap [app-id] [naam invoerbestand] [naam uitvoerbestand] [naam tool] [vlaggen] [<doellocatie>]
Parameters:
- app-id –Je numerieke applicatie-ID
- naam invoerbestand – Relatief of absoluut pad naar het uitvoerbare tekstbestand dat wordt ingevoerd. Vergeet niet om aanhalingstekens te gebruiken voor paden waarin spaties staan!
- naam uitvoerbestand – Relatief of absoluut pad naar de locatie waar de tool het met de wrapper ingepakte uitvoerbare bestand opslaat.
- naam tool – 'drmtoolp' is op dit moment de enige ondersteunde optie voor de toolnaam.
- vlaggen – Bitmasker van de volgende numerieke vlaggen waarmee wordt bepaald wat de tool doet.
- 0 – Normale wrap (hoogste beveiligingsniveau)
- 6 – Compatibiliteitsmodus (obfuscatie wordt uitgeschakeld)
- 32 – Debuggercontrole overslaan
- 38 – Compatibiliteitsmodus + debuggercontrole overslaan (laagste beveiligingniveau)
- doellocatie, optionele parameter – 'cloud' of 'local'. De huidige standaard is nu 'cloud'. De optie 'local' zou niet nodig moeten zijn, tenzij er problemen zijn opgetreden bij het gebruik van de optie 'cloud'.
Voorbeeld: Voer het script run_build.bat uit om in te loggen, pas de DRM toe, bouw de build en upload naar Steam (waar de app-ID 480 is):
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
Handmatige DRM-wrapper van Steam
Als je snel een EXE-bestand wilt inpakken met de Steam-wrapper, ga dan naar de Steamworks-pagina voor appbeheer en voeg van daaruit een wrapper toe aan je primaire uitvoerbare spelbestand (.exe).
- Selecteer op je pagina voor appbeheer het spel waaraan je een DRM-wrapper wilt toevoegen.
- Selecteer onder 'Technische tools' de optie 'Steamworks-instellingen bewerken'.
- Selecteer op het tabblad 'Beveiliging' de optie 'DRM'.
- Upload het primaire uitvoerbare spelbestand (.exe). Zie de sectie over geautomatiseerde DRM-wrappers hierboven voor meer informatie over de uitvoeringsopties van de tool.
- Download het uitvoerbare bestand weer naar je lokale computer.
- Wijzig de naam van het uitvoerbare bestand terug naar de oorspronkelijke naam.
- Kopieer het bestand naar de bronlocatie van je inhoudstooldepots.
- Maak een nieuwe build van je depot.
- Test dat depot op je lokale inhoudsserver.
De Steam-wrapper gebruiken met andere DRM
De Steam-wrapper kan worden gebruikt in combinatie met andere DRM-oplossingen en dit is ook iets wat we aanraden. Als je dit wilt doen, moet je eerst de Steam-wrapper toepassen in de compatibiliteitsmodus, waarna je de andere DRM kunt toepassen. Als je deze volgorde volgt, zit de Steam-wrapper de werking van de andere DRM-oplossing niet in de weg. Door de compatibiliteitsmodus te gebruiken, worden de DRM-functies van de wrapper niet toegepast.
Zet het uitvoerbare bestand in de compatibiliteitsmodus door deze modus te selecteren in de keuzelijst op de Steamworks-pagina of door de betreffende vlaggen op te geven in de geautomatiseerde drmtool.
Veelgestelde vragen
V. Mijn C# / .Net-spel werkt niet meer nadat ik de Steam-wrapper heb toegepast.A. De Steam-wrapper biedt geen ondersteuning voor .Net-applicaties. Gebruik
SteamAPI_RestartAppIfNecessary in plaats van de DRM-wrapper.
V. Mijn spel werkt niet meer nadat ik de DRM-wrapper van Steam heb toegepast.A. De Steam-wrapper kan ervoor zorgen dat andere DRM-tools niet meer werken. Het is mogelijk dat er een conflict is opgetreden. Zie
De Steam-wrapper gebruiken met andere DRM voor meer informatie.
V. Moet ik bij iedere nieuwe build de DRM opnieuw toepassen op mijn uitvoerbare bestand (.exe)?A. Ja, elke nieuwe build die je wilt publiceren moet opnieuw worden ingepakt met de Steam-wrapper. Je kunt dit automatiseren door het proces voor de geautomatiseerde Steam-wrapper hierboven te volgen.
V. Na het toepassen van de DRM-wrapper van Steam wordt er door een antivirusprogramma aangegeven dat mijn binaire bestand een virus bevat. Wat kan ik hieraan doen?A. Dit soort foutpositieve resultaten komen weleens voor, omdat bij het DRM-proces je binaire gegevens op dezelfde manier worden gewijzigd als bij een virus. Je kunt hierover contact opnemen met de maker van het antivirusprogramma of de API gebruiken in plaats van de DRM-wrapper van Steam.