Que opções existem para salvar dados de jogos de maneira segura? Estou interessado em soluções especificamente adaptadas para C ++.
Estou procurando por algo que seja rápido e fácil de usar. Estou preocupado apenas em armazenar informações simples, como
Quais níveis são e não são desbloqueados
A pontuação do usuário para cada nível
Estou curioso novamente para saber o que há para usar, quaisquer boas bibliotecas para usar que me proporcionem arquivos de dados de jogos agradáveis e seguros que os jogadores comuns não podem mexer.
Acabei de encontrar isso aqui, que parece muito bom, mas seria ótimo obter algumas opiniões sobre outras possíveis bibliotecas / opções por aí.
Respostas:
primeiro, digamos que, como você tem um arquivo salvo muito simples, você pode usar um arquivo de texto.
uma das idéias mais simples é usar uma chave de cadeia para bloquear / desbloquear dados:
mas depois de uma pequena pesquisa no google, encontrei esses links, que podem ser úteis:
Editar:
Com base no char assinado como "Comportamento indefinido", como o @ v.oddou mencionou, acho que usar XOR ou converter para char não assinado resultará em um código mais seguro / de plataforma cruzada. algo assim:
fonte
XOR
em vez de aumentar / diminuir, como você pode acabar com dados corrompidos se você exceder os limites dos dados do tipo que você está lidando com (char
eu assumo)Nada pode ser considerado do lado do cliente seguro; quem lhe disser que está mentindo.
Você pode usar qualquer método de criptografia e codificação que desejar, mas como o cliente também deve ser capaz de decodificá-lo e o usuário tiver acesso ao próprio cliente, se tiver recursos suficientes, terá acesso à chave / algoritmo de descriptografia.
Você só pode adicionar camadas de aborrecimentos a alguém disposto a quebrá-lo, mas, com tempo suficiente, ele será quebrado e você não poderá fazer nada a respeito.
fonte
Você pode definitivamente deixar seu arquivo salvo sem criptografia, mas adicionar uma soma de verificação que é calculada através de todos os valores que você deseja "proteger".
O cracker, portanto, seria capaz de reproduzir novamente o hash (que você obviamente usará com sal adequado) e, portanto, terá um tempo feliz tentando reproduzir novamente.
Isso ainda não seria 100% seguro, mas provavelmente a melhor solução eficaz em termos de tempo.
fonte
Isso forneceu uma criptografia XOR simples:
E como usá-lo:
A saída deste código é esta:
fonte
Aqui estão alguns programas (gratuitos de qualquer maneira) que podem ajudá-lo, ambos basicamente combinam todos os seus recursos em um único exe.
NBinder , agora um produto comercial, esta é uma versão antiga, mas funcional.
Enigma Virtual Box , outra ferramenta com recursos semelhantes.
fonte