Estou prestes a comprar alguns pacotes de modelos de um site para criar um protótipo do meu jogo. No contrato, afirma que devo protegê-los para impedir que o público obtenha acesso a eles.
Lembro-me de trabalhar com os jogos da Valve, eles usavam .gcf (arquivo de conteúdo do jogo) que basicamente era um arquivo de todo o conteúdo de cada jogo. Eles embalados em som / materiais / modelos / mapas / etc. Achei que não seria uma má idéia desenvolver algo parecido com isso e apenas escrevi uma pequena ferramenta para me permitir adicionar / remover arquivos dela.
O problema é que eu realmente não tenho ideia de como começar algo assim. Eu tentei o Google, mas nem sabia o que procurar. Se alguém tiver alguma idéia, links que possam ser úteis ou qualquer outra coisa, eu agradeceria muito.
fonte
Se você está apenas criando um protótipo, não me preocupo em compactar seus ativos em um arquivo GCF / ZIP / PAK; o público não vai ver o seu protótipo!
Além disso, o GCF da Valve fornece tanta proteção para o seu conteúdo quanto um arquivo ZIP - isto é, zero. O arquivo não está criptografado; você pode baixar o GCFScape para navegar e extrair seu conteúdo.
Não vale a pena se esforçar para criar seu próprio sistema de arquivos de pacote, a menos que você tenha necessidades específicas no momento que não estejam sendo atendidas por arquivos ZIP ou pelo próprio mecanismo de acesso a arquivos do sistema operacional; de fato, as únicas razões pelas quais consigo pensar são:
fonte
Esse requisito é, bem, besteira.
Como o jogo pode acessar os dados e o usuário tem acesso ao jogo, se ele for habilidoso e determinado o suficiente, ele poderá fazer engenharia reversa no formato usado para armazenar os dados e pegar a chave eventual, se você for suficientemente tolo. para criptografá-lo.
Você não pode adicionar segurança. Repito: você simplesmente NÃO PODE adicionar segurança . Você só pode adicionar obscuridade, e a obscuridade é totalmente inútil, pois - como eu disse - um usuário com habilidade e determinação suficientes apenas a quebrará.
Não assine nada que lhe pergunte algo que não pode ser feito.
fonte
Muitas vezes, percebo que os pacotes de conteúdo personalizado tendem a ser um arquivo .zip ou .rar com uma extensão diferente. Obviamente, isso não é bom se o site desejar algum tipo de criptografia personalizada.
fonte
Algumas idéias:
1] Você usou um formato de modelo padrão (por exemplo, obj ou .x) ou usa um formato de modelo personalizado ao carregar diretamente no seu jogo? Se você possui um formato personalizado, e seria necessário fazer a engenharia reversa do formato do modelo para obtê-lo de forma útil, então você já tem algum nível de proteção contra o estripador de recursos oportunista.
2] O ponto de vista de Kylotan sobre a criptografia XOR é excelente, exceto para observar que você pode criptografar usando uma sequência gerada por número pseudo-aleatório (possivelmente propagada por um hash no nome do arquivo) para evitar longas sequências de zeros nos dados de origem, mostrando sua cadeia de criptografia. É claro que você teria que descriptografar seus arquivos imediatamente após o carregamento, mas dividir seu arquivo criptografado em blocos reinicializáveis permitirá iniciar a descriptografia no local em vários threads, se isso realmente se tornar um fardo para o tempo de carregamento . Mas duvido seriamente que esse nível de "proteção" seja necessário - particularmente, como outros já disseram, o estripador determinado irá contorná-lo. por exemplo. interceptando as chamadas de empate usando uma biblioteca de desvio DLL e lendo os buffers de vértice / buffers de índice diretamente.
3] Você precisaria perguntar ao provedor de ativos original sobre os requisitos de proteção, mas poderia ser apenas uma questão de adicionar detalhes sobre os direitos autorais de ativos à tela inicial do programa e / ou ao EULA.
fonte