Documentazione di Steamworks
DRM di Steam

Panoramica

Il wrapper DRM è una parte importante della piattaforma di Steam, in quanto verifica la proprietà del gioco di un utente e assicura che le funzioni di Steamworks funzionino correttamente avviando Steam prima del gioco.

Il wrapper DRM di Steam di per sé non è una soluzione antipirateria: protegge contro attacchi di pirateria casuale (cioè contro la copia di tutti i file di gioco in un altro computer) e presenta un certo grado di offuscamento, ma è facilmente rimovibile da un hacker motivato.

Suggeriamo di aumentare il valore delle copie legittime del gioco implementando funzioni di Steamworks che non funzionino su copie non legittime, ad esempio la modalità multigiocatore online, gli achievement, le classifiche, le carte collezionabili e così via.

Per ulteriori informazioni sulla combinazione del wrapper DRM di Steam con altre soluzioni DRM o antimanomissione, consulta la sezione Utilizzo del wrapper di Steam con altri DRM.

Wrapper DRM automatico di Steam

Il wrapper di Steam può essere applicato dall'interno dello script di caricamento di SteamPipe. In questo modo viene prima eseguita una richiesta di inizializzazione ai server di Steam tramite il client collegato, quindi l'eseguibile non crittografato viene inviato al back-end di Steam tramite HTTP. Il wrapping viene eseguito lato server, mentre steamcmd scarica l'eseguibile su cui è stato eseguito il wrapping.

Per eseguire il wrapping DRM con SteamPipe, accedi allo script ed esegui il comando di Steam drp_wrap:
drm_wrap [appid] [input filename] [output filename] [toolname] [flags] [<destination>]

Parametri:
  • appid: l'ID numerico dell'applicazione.
  • input filename: percorso relativo o assoluto per immettere un eseguibile non crittografato. Ricorda di mettere tra virgolette i percorsi che possono contenere spazi.
  • output filename: percorso relativo o assoluto in cui lo strumento scriverà l'eseguibile di output su cui è stato eseguito il wrapping.
  • toolname: "drmtoolp" è attualmente l'unico parametro toolname supportato.
  • flags: maschera di bit dei seguenti contrassegni numerici che specificano il comportamento dello strumento.
    • 0: wrapping normale (protezione massima)
    • 6: modalità di compatibilità (disattiva l'offuscamento)
    • 32: salta il controllo del debugger
    • 38: modalità di compatibilità che salta anche il controllo del debugger (protezione minima)
  • destination, parametro facoltativo - "cloud" o "local". Ora l'impostazione predefinita è "cloud". L'opzione "local" non dovrebbe essere necessaria se non quando si riscontrano problemi con l'opzione "cloud".

Esempio di script run_build.bat per accedere, applicare il DRM, compilare e caricare la build su Steam (dove l'appID è 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

Wrapper DRM manuale di Steam

Per eseguire rapidamente il wrapping dell'eseguibile utilizzando il wrapper di Steam, naviga fino alla pagina Amministrazione dei dati dell'applicazione di Steamworks.

  1. Seleziona il gioco a cui desideri aggiungere il DRM dalla tua pagina Amministratore dell'applicazione.
  2. Seleziona Modifica impostazioni di Steamworks nella sezione Strumenti tecnici della pagina Amministratore dell'applicazione.
  3. Dalla scheda Sicurezza, seleziona DRM.
  4. Carica il file eseguibile del gioco principale. Per maggiori informazioni sulle opzioni di esecuzione dello strumento, consulta la sezione sul wrapper automatico riportata in alto.
  5. Scarica nuovamente il file eseguibile sul computer locale.
  6. Rinomina il file eseguibile assegnandogli il nome originale.
  7. Copia il file nella posizione di origine dei depot dello strumento per il contenuto.
  8. Compila una nuova versione del depot.
  9. Esegui il test del depot sul server di contenuti locale.

Utilizzo del wrapper di Steam con altri DRM

Il wrapper di Steam può e deve essere usato in combinazione con altre soluzioni DRM. A tale scopo, posiziona il wrapper di Steam in modalità di compatibilità prima di applicare qualsiasi altro DRM. In questo modo eviterai che interferisca con la soluzione DRM. La modalità di compatibilità disattiva le funzionalità DRM del wrapper.

Invia il file eseguibile in modalità di compatibilità selezionandolo nell'elenco a discesa dalla pagina di Steamworks o utilizzando i contrassegni appropriati nel drmtool automatico.

Domande frequenti

D: Il mio gioco C# o .NET non viene eseguito dopo l'applicazione del wrapper di Steam
R. Il wrapper di Steam non supporta le applicazioni .NET. Anziché il wrapper DRM, utilizza SteamAPI_RestartAppIfNecessary.

D: Il mio gioco non viene eseguito dopo l'applicazione del wrapper DRM di Steam
R. Il wrapper di Steam può interrompere altri strumenti DRM. Consulta la sezione Utilizzo del wrapper di Steam con altri DRM, in quanto potrebbe trattarsi di un conflitto.

D: È necessario applicare il DRM al mio file eseguibile e ogni volta che creo una nuova build?
R. Sì, su ogni build che intendi pubblicare deve essere eseguito il wrapping con il wrapper di Steam. Prova ad automatizzare l'operazione sfruttando il processo di wrapping automatico di Steam descritto in precedenza.

D. Un software antivirus ha rilevato la presenza di un virus nel mio file binario dopo l'applicazione del wrapper DRM di Steam. Cosa posso fare?
R. Falsi positivi come questo possono capitare, in quanto la procedura di inserimento DRM modifica il tuo file binario allo stesso modo di un ipotetico virus. In caso di necessità, non esitare a contattare il produttore del software o a utilizzare l'API al posto del wrapper DRM di Steam.