Steamworks-dokumentasjon
Steams DRA

Oversikt

Steams DRA-wrapper er en viktig del av plattformen ettersom den verifiserer eierskap av spill og sørger for at Steamworks-funksjoner fungerer ordentlig ved å starte Steam før spillet startes.

Steams DRA-wrapper er ikke en i seg selv en løsning for å forebygge piratkopiering. Steams DRA-wrapper beskytter mot veldig enkel piratkopiering (f.eks. kopiering av alle spillfilene til en annen datamaskin) og har noe obfuskering, men en motivert angriper klarer lett å fjerne den.

Vi anbefaler å øke verdien til legitime eksemplarer av spillet ditt ved å bruke Steamworks-funksjoner som ikke fungerer på illegitime eksemplarer (f.eks. flerspiller på nett, prestasjoner, ledertabeller, samlekort osv.).

Se Using the Steam Wrapper with Other DRM for mer informasjon om kombinering av Steams DRA-wrapper med andre løsninger for DRA.

Automatisering av Steams DRA-wrapper

Steam-wrapperen kan tas i bruk fra inni opplastingsskriptet ditt i SteamPipe. Dette utfører en innlednignsforespørsel til Steams tjenere gjennom klienten som er logget inn, og legger ut den kjørbare filen i ren tekst på Steams tjenerdel gjennom HTTP. Innpakkingen foregår på tjenersiden, og så laster SteamCMD ned den innpakkede kjørbare filen.

For å utføre DRA-pakking med SteamPipe, så må skriptet logge inn og så kjøre kommandoen drm_wrap:
drm_wrap [appid] [input filename] [output filename] [toolname] [flags] [<destination>]

Parametre:
  • appid – Den numeriske ID-en til applikasjonen.
  • filnavn til inndata – Relativ eller absolutt sti til inndatafil i ren tekst. Husk å ha sitattegn rundt stier som inneholder mellomrom!
  • filnavn til utdata – Relativ eller absolutt sti der verktøyet skal skrive utdatafilen til.
  • verktøynavn – «drmtoolp» er for øyeblikket den eneste støttede parameter.
  • flagg – Bitmaske for følgende numeriske flagg for å angi verktøyets atferd.
    • 0 – Vanlig innpakking (mest beskyttelse).
    • 6 – Kompatibilitetsmodus (slår av obfuskering).
    • 32 – Hopp over feilsøkingssjekk.
    • 38 – Kompatibiletetsmodus og hopp over feilsøkingssjekk (minst beskyttelse).
  • destination, optional parameter - "cloud" or "local". Nåværende standard er nå «cloud». Alternativet «local» skal ikke være nødvendig å bruke, med mindre det oppstår problemer med skyalternativet.

Eksempel på et skript run_build.bat for å logge inn, ta i bruk DRA, bygge og så laste opp byggversjonen til Steam (der app-ID er 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

Manuell bruk av Steams DRA-wrapper

For å raskt pakke inn en .exe med Steam-wrapperen, bruk databehandlingssiden for en applikasjon i Steamworks for å pakke inn den kjørbare filen til spillet.

  1. Velg spillet du har lyst til å legge til DRA til på siden for applikasjonsadministrasjon.
  2. Velg rediger Steamworks-innstillinger i seksjonen for tekniske verktøy i siden for applikasjonsadministrasjon.
  3. Velg DRA i sikkerhetsfanen.
  4. Last opp den kjørbare filen – se seksjonen ovenfor om automatisering av wrapper-en for mer informasjon om innstillingene til verktøyet.
  5. Download the exe back to your local machine
  6. Rename the exe back to the original name
  7. Copy it to the source location for your Content Tool depots
  8. Build a new version of your depot
  9. Test that depot on your local content server

Using the Steam Wrapper with Other DRM

The Steam wrapper can and should be used in combination with other DRM solutions. To do so, apply the Steam wrapper in compatibility mode first before applying any other DRM. Apply it first so that it does not interfere with the DRM solution. Compatibility mode will disable DRM capabilities of the wrapper.

Submit the exe in compatibility mode by either selecting it in the drop down on the Steamworks page or using the appropriate flags in the automated drmtool.

Frequently Asked Questions

Q. My C# / .Net game doesn't run after applying the Steam wrapper
A. The Steam wrapper doesn't support .Net applications. Instead of using the DRM wrapper, use SteamAPI_RestartAppIfNecessary.

Q. My game doesn't run after applying the Steam DRM wrapper
A. The Steam wrapper can break other DRM tools. See Using the Steam Wrapper with Other DRM, as there may be a conflict.

Q. Do I need to apply DRM to my exe every time I make a new build?
A. Yes, each build you intend to publish needs to be wrapped with the Steam wrapper. Try automating it using the Automated Steam Wrapper process documented above.

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.