Pessoal,
possuo um jogo desenvolvido da seguinte forma:
Um lado cliente, ao qual eu não possuo os fontes, composto basicamente de um EXE e algumas DLL’s.
Um lado servidor, composto de 3 servidores montados em C, que monitoram portas, esperando a conexão do client.
Para o servidor eu possuo todos os códigos-fonte.
Este sistema possui uma segurança básica.
No entanto, como todos aqui bem sabem, segurança é sempre quebrada.
Existem, hoje, infinitos tutoriais passo-a-passo de como quebrar a segurança deste jogo, principalmente utilizando a ferramenta WPE, que monitora, altera, envia e faz uma série de outras coisas com os pacotes transferidos entre o cliente e o servidor.
No entanto, existem alguns programas proprietários (a linguagem utilizada não é informada, mas acredito que também seja feito em C) que fazem basicamente o seguinte processo:
- Monitoramento do movimento do mouse (se for detectado um padrão de movimento automatizado, fecha o jogo e emite erro)
- Desabilita execução de MACROS (evita injetar código / instruções no programa cliente)
- Verifica a execução de programas considerados “danosos” ao cliente (exemplo: WPE e outros que possam interagir com o cliente)
- Bloqueia acesso e tentativas de manipulação no lado do cliente
Procurando um pouco mais, descobri que uma pessoa foi capaz de interceptar os pacotes enviados pelo cliente, criptografá-los de uma outra maneira, descriptografá-los no lado do servidor e entregá-los de forma original ao servidor.
No entanto tudo isso precisa ocorrer de forma bem rápida, já que é um jogo ON-Line.
Existe a possibilidade de fazer esse monitoramento via Java?
E a interceptação dos pacotes, como eu poderia fazer?
Existe alguma dica, de livro ou conteúdo, sobre isto?