Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Bloquear client falso no Eclipse Origins
3 participantes
Página 1 de 1
Bloquear client falso no Eclipse Origins
Olá membros da aldeiarpg, para quem não me conhece eu sou o "Deme" da antiga MMORPGBR e estou com um projeto em EO novo em folha mas estou tendo dificuldade com Client Falso.
Gostaria da ajuda de vocês, como faço para colocar versão no meu client para que caso alguém acesse de outro client falso apareça a mensagem de "Versão desatualizada" e peça para entrar no site do meu game e baixar a versão oficial.
Sendo assim, por mais que algum engraçadinho consiga meu IP e Porta ele seja barrado pela versão do game.
Gostaria da ajuda de vocês, como faço para colocar versão no meu client para que caso alguém acesse de outro client falso apareça a mensagem de "Versão desatualizada" e peça para entrar no site do meu game e baixar a versão oficial.
Sendo assim, por mais que algum engraçadinho consiga meu IP e Porta ele seja barrado pela versão do game.
demexd97- Novato
- Mensagens : 6
Créditos : 0
Re: Bloquear client falso no Eclipse Origins
De todo modo, ainda há como ser burlado, tudo vai depender do seu conhecimento.
Menos eficiente:
1. Reordenar os cabeçalhos das mensagens.
2. Mudar a posição de escrita nos métodos de envio.
3. Reprogramar o login e o cadastro.
Eficiente?
1. Usar uma criptografia nos textos de login e senha.
Mais eficiente:
1. Usar uma criptografia com números aleatórios para o envio dos dados.
Menos eficiente:
1. Reordenar os cabeçalhos das mensagens.
2. Mudar a posição de escrita nos métodos de envio.
3. Reprogramar o login e o cadastro.
Eficiente?
1. Usar uma criptografia nos textos de login e senha.
Mais eficiente:
1. Usar uma criptografia com números aleatórios para o envio dos dados.
DragonicK- Experiente
- Mensagens : 543
Créditos : 81
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: Bloquear client falso no Eclipse Origins
Tem outra coisa que se encaixa nesse "Menos eficiente", adicionar um key que o cliente envia ao servidor assim que se conectar, e caso não seja válido, então será desconectado. Lembrando, é "menos eficiente" como o Dragonick falou.DragonicK escreveu:De todo modo, ainda há como ser burlado, tudo vai depender do seu conhecimento.
Menos eficiente:
1. Reordenar os cabeçalhos das mensagens.
2. Mudar a posição de escrita nos métodos de envio.
3. Reprogramar o login e o cadastro.
Eficiente?
1. Usar uma criptografia nos textos de login e senha.
Mais eficiente:
1. Usar uma criptografia com números aleatórios para o envio dos dados.
Re: Bloquear client falso no Eclipse Origins
Dooolly escreveu:Tem outra coisa que se encaixa nesse "Menos eficiente", adicionar um key que o cliente envia ao servidor assim que se conectar, e caso não seja válido, então será desconectado. Lembrando, é "menos eficiente" como o Dragonick falou.DragonicK escreveu:De todo modo, ainda há como ser burlado, tudo vai depender do seu conhecimento.
Menos eficiente:
1. Reordenar os cabeçalhos das mensagens.
2. Mudar a posição de escrita nos métodos de envio.
3. Reprogramar o login e o cadastro.
Eficiente?
1. Usar uma criptografia nos textos de login e senha.
Mais eficiente:
1. Usar uma criptografia com números aleatórios para o envio dos dados.
Isso não chega nem perto de ser menos eficiente, já que você pode usar um sniffer para ver o que está sendo transmitido.
DragonicK- Experiente
- Mensagens : 543
Créditos : 81
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: Bloquear client falso no Eclipse Origins
Como um bom programador, acredito que toda tentativa de proteger seu software será sempre bem vinda independente se é "Menos eficiente" ou "Mais eficiente", quanto mais proteção melhor.
Ao criar a conta no game os dados são criptados em MD5 na base de dados e toda e qualquer verificação entre client e servidor são monitoradas pelo método "Connection" garantindo que apenas o client alterado por mim seja o único a se conectar no servidor.
Mas existe um problema nisso...
Se você abrir o prompt de comando (CMD) e digitar o comando netstat com a especificação correta enquanto estiver logado no game, você consegue adquirir a informação de IP e PORTA sem esforço.
Com essa informação de IP e PORTA se você abrir qualquer engine de EO e colocar na config a informação que obteve no (CMD), você consegue se conectar ao meu projeto e com uma simples modificação no client~side você obtem TODOS os privilegios de admin.
Por esse motivo, precisava trabalhar com algo parecido com versões, sendo assim, por mais que consigam meu ip e porta e coloquem em um client EO alterado, ao realizar algum acesso ele é notificado de "Versão Desatualizada, baixe a completa em nosso site".
OBS: Caso alguém tenha se perguntado que pra resolver isso era só encriptar em MD5 tanto o login como a senha do usuário, em parte você está certo mas.... na base de usuários fica varias letras e números e não existe meio de "Descriptografar" para saber o nome do usuário em caso de obtenção de vip e itens vip, isso dificultaria um pouco para a entrega da loja virtual.
Ao criar a conta no game os dados são criptados em MD5 na base de dados e toda e qualquer verificação entre client e servidor são monitoradas pelo método "Connection" garantindo que apenas o client alterado por mim seja o único a se conectar no servidor.
Mas existe um problema nisso...
Se você abrir o prompt de comando (CMD) e digitar o comando netstat com a especificação correta enquanto estiver logado no game, você consegue adquirir a informação de IP e PORTA sem esforço.
Com essa informação de IP e PORTA se você abrir qualquer engine de EO e colocar na config a informação que obteve no (CMD), você consegue se conectar ao meu projeto e com uma simples modificação no client~side você obtem TODOS os privilegios de admin.
Por esse motivo, precisava trabalhar com algo parecido com versões, sendo assim, por mais que consigam meu ip e porta e coloquem em um client EO alterado, ao realizar algum acesso ele é notificado de "Versão Desatualizada, baixe a completa em nosso site".
OBS: Caso alguém tenha se perguntado que pra resolver isso era só encriptar em MD5 tanto o login como a senha do usuário, em parte você está certo mas.... na base de usuários fica varias letras e números e não existe meio de "Descriptografar" para saber o nome do usuário em caso de obtenção de vip e itens vip, isso dificultaria um pouco para a entrega da loja virtual.
demexd97- Novato
- Mensagens : 6
Créditos : 0
Re: Bloquear client falso no Eclipse Origins
Você está carente de informação e está confundindo uma função de hash (MD5) com criptografia.
MD5 é usado para gerar um hash para verificar a integridade dos dados. Depois que o hash foi gerado, não há como fazer o caminho contrário para se encontrar os dados (a não ser com alguns ataques).
A criptografia é feita pra manter os dados confienciais. E para que seja feito a descriptografia, uma chave (senha) será necessário.
Se a única maneira de alguém entrar no seu servidor for a parte de login do usuário, você pode simplesmente criptografar (e não usar um HASH MD5) esses dados no cliente e enviar para o servidor.
Nessa parte, o servidor precisará fazer a descriptografia, se os dados forem inconsistentes, gerará valores totalmente diferentes do original.
A jogada aqui é, fazer com que o SEU CLIENTE, gere dados que SOMENTE o servidor irá ler. Quando alguma outra pessoa tentar usar um outro cliente, ela não conseguirá entrar pois o servidor precisa da informação especifica para poder autenticar o usuário. Isso também poderia ser quebrado se a sua criptografia somente gerasse dados estáticos, usando sniffer, poderiam obter os dados que são enviados na sua engine, e criar um pacote específico em um cliente falso.
Portanto, a solução mais eficiente no momento, é criptografar todos pacotes gerando números aleatórios para dificultar a obtenção dos dados recebidos e enviados.
Esconder ip e porta é a mesma coisa que usar uma calça, ninguém tá vendo mas todo mundo sabe onde tá o seu cu.
MD5 é usado para gerar um hash para verificar a integridade dos dados. Depois que o hash foi gerado, não há como fazer o caminho contrário para se encontrar os dados (a não ser com alguns ataques).
A criptografia é feita pra manter os dados confienciais. E para que seja feito a descriptografia, uma chave (senha) será necessário.
Se a única maneira de alguém entrar no seu servidor for a parte de login do usuário, você pode simplesmente criptografar (e não usar um HASH MD5) esses dados no cliente e enviar para o servidor.
Nessa parte, o servidor precisará fazer a descriptografia, se os dados forem inconsistentes, gerará valores totalmente diferentes do original.
A jogada aqui é, fazer com que o SEU CLIENTE, gere dados que SOMENTE o servidor irá ler. Quando alguma outra pessoa tentar usar um outro cliente, ela não conseguirá entrar pois o servidor precisa da informação especifica para poder autenticar o usuário. Isso também poderia ser quebrado se a sua criptografia somente gerasse dados estáticos, usando sniffer, poderiam obter os dados que são enviados na sua engine, e criar um pacote específico em um cliente falso.
Portanto, a solução mais eficiente no momento, é criptografar todos pacotes gerando números aleatórios para dificultar a obtenção dos dados recebidos e enviados.
Esconder ip e porta é a mesma coisa que usar uma calça, ninguém tá vendo mas todo mundo sabe onde tá o seu cu.
DragonicK- Experiente
- Mensagens : 543
Créditos : 81
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: Bloquear client falso no Eclipse Origins
@DragonicK
Oque você mencionou acima, seria mais um método para carregar dizendo tal chave é necessária pra se conectar no servidor certo? e isso funcionaria super bem, mas acontece que não é isso oque eu quero.
Oque eu queria era colocar sistema de versão no cliente e só a versão baixada no meu site seja utilizada para acessar o game.
Vamos supor que meu jogo ta na versão: 1.0, quando eu atualizar meu site e colocar uma versão 1.1 a versão 1.0 iria notificar o jogador para atualizar o jogo entende? Diferente de um método com uma chave garantindo a conexão entre Client~Servidor.
Na antiga mmorpgbr existia um tuto sobre isso só que de EEB, mas infelizmente não podemos mais acessar esse forum para tentar converter a EO.
Oque você mencionou acima, seria mais um método para carregar dizendo tal chave é necessária pra se conectar no servidor certo? e isso funcionaria super bem, mas acontece que não é isso oque eu quero.
Oque eu queria era colocar sistema de versão no cliente e só a versão baixada no meu site seja utilizada para acessar o game.
Vamos supor que meu jogo ta na versão: 1.0, quando eu atualizar meu site e colocar uma versão 1.1 a versão 1.0 iria notificar o jogador para atualizar o jogo entende? Diferente de um método com uma chave garantindo a conexão entre Client~Servidor.
Na antiga mmorpgbr existia um tuto sobre isso só que de EEB, mas infelizmente não podemos mais acessar esse forum para tentar converter a EO.
demexd97- Novato
- Mensagens : 6
Créditos : 0
Re: Bloquear client falso no Eclipse Origins
Isso que você quer já tem por padrão na engine. É só verificar no HandleLogin.
Alterar as constantes no servidor com a versão do seu jogo:
E alterar as propriedades do cliente.
Alterar as constantes no servidor com a versão do seu jogo:
E alterar as propriedades do cliente.
DragonicK- Experiente
- Mensagens : 543
Créditos : 81
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Tópicos semelhantes
» Eclipse Origins,Net
» Eclipse origins.net
» O que é Eclipse Origins
» Bug(?) no eclipse origins
» [AJUDA] Runtime error '5' - Invalid procedure call or argument
» Eclipse origins.net
» O que é Eclipse Origins
» Bug(?) no eclipse origins
» [AJUDA] Runtime error '5' - Invalid procedure call or argument
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos