O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Detector de cheats ou desecriptador

Iniciado por Felpisio, 18/08/2020 às 19:28

Bem...
Eu fiz uma demo de um jogo e mostrei a um amigo, esse amigo conseguiu abrir o game pelo computador dele via download, mas ele tbm conseguia abrir o game pela engine (mesmo com os arquivos incriptados)usando um cheat ou algo do tipo! Tendo acesso ao jogo pela engine ele pode botar poções infinitas, habilidades OPs e até usar o botão shift pra burlar algumas fases...  :ded:
Queria saber se tem como fazer com q quando o jogo é aberto pela engine ele bloqueie o game e passe um video bem engraçado zoando o trapaceiro q tentou burlar o game com esse método de abrir a engine e modificar o banco de dados para ter os itens de forma facil!
O video q quero q passe é esse aqui! :tacerto:
Spoiler
Eu só sou um cara que quer criar jogos épicos!

Olha, comece por informar sua Engine, à qual foi usada pra criar o seu jogo.

18/08/2020 às 20:25 #2 Última edição: 19/08/2020 às 01:06 por Syureri
RPG Maker Vx Ace

Acho q n consegui explicar oq queria fazer (como sempre) eu quero q quando o jogador tente desencriptar o arquivo do meu game ele seja advertido com o video q mostrei acima!
Sei q isso n faz meu jogo aprova de cheaters, só quero q os cheaters saibam q oq eles estão fazendo é errado e tbm pra zoar com eles pq "LOL vc n consegue hanhar um jogo de RPG Maker sem usar hack? Vc é muito ruim em! Kkkkkk"

Espero q agr tenha entendido :)
Eu só sou um cara que quer criar jogos épicos!

Desculpe, por que isso virou um CHAT? Você tem que aguardar a boa vontade pra responderem já que o suporte é algo que fazemos por que queremos ajudar e não por que recebemos algo em troca, alias, não recebemos nada...

Não responda, apenas aguarde.

19/08/2020 às 01:04 #4 Última edição: 19/08/2020 às 01:13 por Syureri
Como um programador e desenvolvedor de software, ainda mais baixo nível, eu consigo de longe encontrar inúmeras formas de abrir seu jogo independente de quais meios você tente usar para encriptar, criptografar, comprimir e/ou obfuscar suas informações. É algo que nós fazemos por hobby, brincando. Imagine quando não estamos brincando. Há uma comunidade inteira voltada a engenharia reversa de jogos, para você ter uma ideia. Você não possui poder sobre o que o indivíduo pode ou não fazer com a cópia que ele possui do jogo. A cópia é dele, a máquina é dele e portanto ele pode desmontar como bem entender. Você não pode impedir isso de forma alguma. Se ele quiser colocar poções infinitas, é escolha dele. É entretenimento dele, é como ele deseja jogar o jogo. E o seu jogo possui esse propósito, entreter.

Sugiro que pesquise sobre o Denuvo, e como isso arruinou muitos jogos no mercado. Faça o jogo operar como um jogo deve operar. Qualquer alteração externa e danos resultando disso é culpa do consumidor, e para evitar que você receba um processo injusto e de má fé por conta das ações dele que existem as licenças e termos de acordo. Estas sim que ditam o que o consumidor pode ou não fazer com o produto. E se ele violar tais acordos, você possui o direito de processar o indivíduo.

Em jogos online onde toda a informação é guardada e processada pelo servidor, aí sim você possui total controle sobre o que o jogador faz dentro do jogo e pode o punir caso tente burlar as regras, visto que o jogo não se trata só dele mais.

E a propósito, evite double post. É contra as regras. Faça apenas quando for realmente necessário, e mesmo assim reconsidere.

Eu sei que jogos podem ser desencriptados de um jeito ou de outro, eu só quero dar uma zoada na pessoa q fizer isso e não barrar os cheates por completo, sei q isso é quase impossível em jogos offline, por isso eu só quero q quando o jogo for desencriptado ele toque o video q botei em Spoiler...
(Meus Deus, eu n quero processar alguém gente... D: )
Eu só sou um cara que quer criar jogos épicos!

Teve uma discussão relacionada um tempo atrás: https://centrorpg.com/index.php?topic=24535.0
No caso ali o que eu fiz foi resetar a contagem de moedas, mas você pode disparar o vídeo também se quiser.

Quanto a disparar quando o jogo estiver desencriptado, já complica um pouco. Você teria que ter uma forma de identificar que o jogo está criptografado em primeiro lugar, o que não vai ser muito fácil se você estiver rodando dentro do ambiente que já está criptografado.

No RMVXAce, talvez um File.exists?('Data/Scripts.rvdata2') resolva, mas é meio zoado porque não verifica o que a gente quer de fato (i.e. o jogo estar criptografado) e sim um efeito colateral (o arquivo de scripts existir na pasta). Isso significa que podemos ter falsos positivos indesejados. É o mesmo princípio desse script do corvo.
~ Masked

19/08/2020 às 11:02 #7 Última edição: 19/08/2020 às 11:06 por Syureri
Oh, não me entenda errado. Não há nada errado em querer trollar seu amigo. De fato é algo que muitos jogos faziam (alguns ainda fazem), porém de uma maneira bem mais engraçada que um vídeo de pegadinha. Como colocar um inimigo invencível, por exemplo.

O problema é que, se há inúmeras formas de se "descomprimir" o projeto, logo não tem como saber o processo que ele irá usar. Porém se ele for abrir o jogo no editor de qualquer forma, aí temos como trabalhar em cima. Unity permite você saber se o jogo foi alterado depois de ser publicado via Application.genuine contanto que Application.genuineCheckAvailable esteja disponível.

No RPG Maker já seria mais complicadinho de se fazer isso, sugiro que tenha um bom conhecimento de programação e ruby para que possa verificar a integridade do projeto de forma correta, seja usando Checksum ou coisa do tipo. No entanto quando o jogo é reproduzido no editor, ele irá deletar o arquivo rgss3a uma vez que ele não se torna necessário. O que você pode fazer é checar a existência desse arquivo. Se ele existir, o jogo está encriptado. Do contrário, ele está aberto. Claro, isso pode gerar altos falsos positivos, como dito pelo Brandt, mas para casos bestas deve resolver.

Para checar se o arquivo existe via runtime, basta usar:
File.file?('Game.rgssad2')

no campo script do comando de condições. Isso retorna true se o arquivo for um arquivo (e não um diretório), e ele existir. Também funciona se o arquivo for um atalho, ele vai seguir o atalho e verificar o arquivo onde ele aponta. Você pode então sei lá, deixar um boss invencível, trocar os loots dos baús, fazer com que buffs apliquem debuffs, há maneiras mais criativas de se trollar o jogador do que simplesmente um vídeo sem graça.

Tem que ver também se vale a pena ter todo esse trabalho.

Como o pessoal comentou, o que dá pra fazer é se manter em uma posição da qual você não possa prejudicar a máquina do usuário. Verificar se o arquivo editável do Ace existe é o meio mais tosco, porém mais seguro do ponto de vista do jogador. Sim, você precisa se preocupar com a segurança de quem está tentando trapacear também. Uma vez que seu arquivo foi baixado, tudo o que ele fizer é responsabilidade sua.