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] [indicadores]
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 — "drmtoolp" para a nova ferramenta portátil. "drmtool" para a ferramenta Win32 antiga;
- indicadores — Máscara de bits dos indicadores 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).
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 senhasteam +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.
- Selecione o jogo que conterá GDD na página de administração de aplicativo;
- Selecione "Editar configurações do Steamworks" na seção "Ferramentas técnicas" da página de administração de aplicativo;
- Na aba "Segurança", selecione "GDD / DRM";
- 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;
- Baixe o executável para a máquina local;
- Renomeie o executável com o nome original;
- Copie-o para o local-fonte dos depots de ferramenta de conteúdo;
- Construa uma nova versão de depot;
- 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.
An Anti-virus vendor has detected my binary as having a virus after applying the Steam DRM wrapper. O que eu faço? 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