Documentação do Steamworks
GDD/DRM do Steam

Visão geral

O encapsulador de GDD (Gestão de Direitos Digitais)/DRM (Digital Rights Management) do Steam é uma peça importante da plataforma Steam, por verificar a titularidade do jogo e garantir que os recursos do Steamworks funcionem corretamente iniciando o Steam antes de iniciar o jogo.

O encapsulador de GDD do Steam não é, por si só, uma solução antipirataria. O encapsulador de GDD do Steam protege contra formas extremamente simples de pirataria (i.é., copiar todos os arquivos do jogo para outro computador) e faz uso de um pouco de ofuscação, mas pode ser removido facilmente por um atacante motivado.

Aconselhamos aumentar o valor de cópias genuínas por meio de recursos do Steamworks que não funcionam em cópias não genuínas (ex.: multijogador on-line, conquistas, tabelas de classificações, cartas colecionáveis etc.).

Consulte Usando o encapsulador do Steam com outras soluções de GDD para mais informações sobre como combinar o encapsulador de GDD do Steam com outras soluções de GDD ou que evitem a manipulação de arquivos do jogo (anti-tamper).

Encapsulador automatizado de GDD do Steam

O encapsulador do Steam pode ser aplicado a partir do script de envio do SteamPipe, realizando uma requisição de inicialização aos servidores Steam por meio do cliente conectado e, então, enviando o executável por uma requisição HTTP POST sem encapsulamento ao backend do Steam. O encapsulamento é feito no servidor e o steamcmd baixa o executável encapsulado.

Para encapsular o executável com o SteamPipe, inicie a sessão pelo script e execute o comando do Steam drm_wrap:
drm_wrap [AppID] [nome do arquivo de entrada] [nome do arquivo de saída] [nome da ferramenta] [sinalizadores] [<destino>]

Parâmetros:
  • AppID — O ID numérico do aplicativo;
  • nome do arquivo de entrada — Caminho relativo ou absoluto ao executável puro. Se o caminho contiver espaços, não se esqueça de usar aspas!
  • nome do arquivo de saída — Caminho relativo ou absoluto do local onde a ferramenta salvará o executável encapsulado de saída;
  • nome da ferramenta — Atualmente, o único parâmetro permitido é "drmtoolp".
  • sinalizadores — Máscara de bits dos sinalizadores numéricos a seguir para especificar o comportamento da ferramenta:
    • 0 — Encapsulamento normal (maior nível de proteção).
    • 6 — Modo de compatibilidade (desativa ofuscação).
    • 32 — Pular verificação de depuração.
    • 38 — Modo de compatibilidade + pular verificação de depuração (menor nível de proteção).
  • destino (opcional) — "cloud" (nuvem) ou "local". Agora, o padrão é "cloud". A "local" não é necessária, a menos que haja problemas ao usar a opção "cloud".

Script run_build.bat de exemplo para iniciar a sessão, construir e enviar a versão ao Steam (com AppID 480):
builder\steamcmd.exe +login nomedeusuariosteam +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

Encapsulador manual

Para encapsular um executável com o Steam rapidamente, use a página de administração de dados do aplicativo no Steamworks para encapsular o executável principal do jogo.

  1. Selecione o jogo que conterá GDD na página de administração de aplicativo;
  2. Selecione "Editar configurações do Steamworks" na seção "Ferramentas técnicas" da página de administração de aplicativo;
  3. Na aba "Segurança", selecione "GDD / DRM";
  4. Envie o executável principal do jogo — Consulte a seção sobre encapsulamento automatizado acima para mais informações sobre as opções de execução da ferramenta;
  5. Baixe o executável para a máquina local;
  6. Renomeie o executável com o nome original;
  7. Copie-o para o local-fonte dos depots de ferramenta de conteúdo;
  8. Construa uma nova versão de depot;
  9. Teste o depot no servidor de conteúdo local.

Usando o encapsulador do Steam com outras soluções de GDD

O encapsulador do Steam pode e deve ser usado em combinação com outras soluções de GDD. Para tal, aplique o encapsulador do Steam em modo de compatibilidade antes de aplicar qualquer outra solução de GDD para que não haja interferência. O modo de compatibilidade desativa os recursos de GDD do encapsulador.

Envie o executável em modo de compatibilidade selecionando-o no menu na página do Steamworks ou usando os indicadores apropriados na ferramenta automatizada drmtool.

Perguntas frequentes

O meu jogo em C# / .NET não roda depois de aplicar o encapsulador do Steam
O encapsulador do Steam não é compatível com aplicativos .NET. Em vez de usar o encapsulador de GDD, use a função SteamAPI_RestartAppIfNecessary.

O meu jogo não roda depois de aplicar o encapsulador do Steam
O encapsulador do Steam pode causar interferência com outras soluções de GDD. Consulte a subseção Usando o encapsulador do Steam com outras soluções de GDD, já que pode ser um conflito.

Preciso aplicar o GDD ao executável sempre que gerar uma nova versão?
Sim, cada versão que deseja publicar precisa ser encapsulada pelo Steam. Tente automatizar o processo com o encapsulador automatizado do Steam documentado acima.

Uma empresa de antivírus diz que há um vírus no meu binário depois de aplicar o encapsulador de GDD do Steam. O que eu faço?
Falsos positivos como esse podem ocorrer, já que o processo de injeção de GDD modifica o seu binário da mesma forma que um vírus o faria. Entre em contato com a empresa ou use a API no lugar do encapsulador de GDD do Steam.