Recentemente comecei a ter problema no meu servidor com um aplicativo que alterava o MAC utilizado pelo cliente e também redirecionava a conexão através de proxy.
Isso estava permitindo que alguns jogadores abusassem de determinadas mecânicas e acabassem prejudicando o servidor.
Estudando um pouco, percebi que dava para criar uma proteção relativamente simples.
Sem entrar em engenharia reversa, estudando algumas funções nativas do Windows, consegui identificar a alteração e bloquear o login antes da conexão com o servidor.
Esse tipo de conhecimento pode ajudar outros projetos e também incentivar melhorias nas proteções do WYD, resolvi disponibilizar o código e o passo a passo do funcionamento.
No repositório deixei a implementação, explicação da proteção, exemplos de integração, testes e o comportamento do bloqueio.
GitHub:
[Hidden Content]
A proteção atual é focada nessas alterações de IAT, mas também deixei algumas ideias para evolução, como detecção mais genérica de módulos injetados, revalidação depois do login e integração com o TMSrv.
Quem quiser testar em outras sources, sugerir melhorias ou contribuir com código, as contribuições são bem-vindas.