[Projeto Pronto] Viper Anti-Cheat - Versão de Impressão +- Portal SAMP (https://portalsamp.com) +-- Fórum: Comunidade (https://portalsamp.com/forumdisplay.php?fid=15) +--- Fórum: Portfólio (https://portalsamp.com/forumdisplay.php?fid=48) +---- Fórum: Projetos Completos (https://portalsamp.com/forumdisplay.php?fid=49) +---- Tópico: [Projeto Pronto] Viper Anti-Cheat (/showthread.php?tid=4804) |
Viper Anti-Cheat - Dr Editor - 14/06/2024 Viper Anti-Cheat Introdução: Apresento a vocês o mais novo cliente anti-cheat composto pelo Viper Launcher AC e Viper Server AC. Este é diferente de todos até então desenvolvidos e possui uma performance muito superior. Agora o servidor do jogo não precisa utilizar a biblioteca sockets, pois a comunicação é intermediada por um servidor executado a parte. O servidor é multi-threaded, logo os pacotes são recebidos de forma assíncrona, proporcionando uma comunicação mais saudável. A proposta é um launcher que divulga os servidores que o utilizam para que os jogadores possam ter acesso fácil a eles simplesmente através de um clique e com uma garantia maior de que sua jogabilidade não será afetada por consequência de hackers. Como funciona: - Servidor: Basicamente, quando executar o servidor na VPS automaticamente vai liberar o acesso a determinada porta e autorizar as conexões dos clientes. A comunicação entre o servidor e o cliente acontece de forma criptografada, de forma que mesmo que os dados sejam interceptados, não seja possível manipulá-los. - Cliente: Ao executar o cliente, o mesmo irá baixar a lista de servidores que possuem o anti-cheat. Após selecionar o servidor, basta escolher um nome e clicar em "PLAY" para que o launcher inicie sua comunicação com o servidor e execute o jogo automaticamente. O cliente efetua análises periódicamente e envia ao servidor de forma criptografada. - Servidor SA:MP: O servidor utiliza uma biblioteca que apenas facilita a interpretação dos resultados do anti-cheat. Na pasta scriptfiles deve haver uma pasta chamada "VAC" e dentro dela deve haver a pasta "Connected" (são criadas automaticamente pelo Viper Server). "Connected" - Contém os jogadores conectados com o launcher, contendo a análise do jogador. Ao desconectar o arquivo é removido automaticamente. Na biblioteca que gerencia as análises, haverão as seguintes funções: VAC_IsPlayerActive(playerid) VAC_GetPlayerFile(playerid) VAC_GetData(const filename[], >a_instances, suspect_processes[], suspect_files[], suspect_folders[], suspect_inj_dll[], suspect_inj_dll_hash[]) VAC_SaveData(const ip[], const filename[]) Manutenção: - Cliente: Apesar de ser leve, seu código-fonte não possui nativamente nenhum padrão de dados para análise. Não é necessário atualizar o banco de dados, visto que o mesmo baixa estes dados diretamente do servidor e a partir daí usa como base estas informações para análise. - Servidor: O servidor também não necessita muita manutenção, visto que ele possui um arquivo de configuração que serve para enviar aos clientes usar como banco de dados para análise e o mesmo pode ser alterado em tempo real, sem necessidade de reiniciá-lo. Este arquivo é enviado toda vez que uma nova conexão é solicitada. Tanto o servidor quanto o launcher possuem atualizações obrigatórias. É necessário baixar e atualizar os arquivos para poder seguir com a execução. (novo) Segurança e privacidade: O cliente deve ser inserido dentro da pasta do jogo, pois ele é um launcher e o jogo será executado através dele. Pra maior segurança, o cliente nunca efetua quaisquer análises fora da pasta em que foi designado para operar. Única busca fora do ambiente é na lista de processos, exceto isso não existem outros mecanismos de busca. O cliente armazena apenas informações referente a suspeitas. Nunca fará envio de arquivos, apenas NOMES de arquivos, pastas ou processos. Configurações e análise: O arquivo de configuração do servidor está em constante desenvolvimento, mas até então o que se encontra possível:
Exemplo de configurações de propriedade do cliente: O arquivo é atualizado automaticamente durante a execução. (novo) Código: ClientVersion=1.0.0.0 Exemplo de configuração de análise: Código: { Compatibilidade: Atualmente não é possível agregar usuários de dispositivos móveis ou sistema operacional diferente de Windows para executar o Launcher. Uma alternativa para manter todas as plataformas, é incentivar o uso deste launcher para quem utiliza Windows, de forma que possa ser beneficiado pelo servidor. Desta forma não há necessidade de expulsar jogadores que não o utilizam, mas sim compensar quem utiliza. Agora o Viper Server possui suporte para Linux. (Novo) Atualizações futuras:
Instalação: - Cliente:
Como funciona a comunicação: Screenshots: O layout está passando por ajustes e pode ser diferente das fotos abaixo, porém as instruções e objetos seguem iguais. Servidor: Cliente: Em conexão: Conclusão: O projeto ainda está em desenvolvimento, porém os softwares já estão rodando normalmente, bem como a biblioteca para o SA:MP. Precisa ainda lapidar a conexão e a segurança para garantir a integridade dos programas e da comunicação entre cliente e servidor. Testes: Estou firmando uma parceria com um servidor para por o primeiro lançamento em teste e, em breve, divulgarei IP e compilação do launcher. Para demais interessados, posso conceder um acesso antecipado e suporte total para implementação. Open Beta: https://portalsamp.com/showthread.php?tid=4811 RE: Viper Anti-Cheat - BitSain - 14/06/2024 Parabéns pelo Viper AC! A proposta é muito interessante e parece trazer melhorias significativas para a segurança e a experiência dos jogadores. Boa sorte com o desenvolvimento! RE: Viper Anti-Cheat - blueN - 14/06/2024 Muito bom! Um grande projeto, sucesso na caminhada. RE: Viper Anti-Cheat - m4luko - 20/06/2024 Sua proposta é muito interessante. O único problema é que os jogadores precisam instalar o Viper. De qualquer forma, meus parabéns. RE: Viper Anti-Cheat - Dr Editor - 20/06/2024 (20/06/2024 14:27)m4luko Escreveu: Sua proposta é muito interessante. O único problema é que os jogadores precisam instalar o Viper. De qualquer forma, meus parabéns. Não há instalação ou exigência da máquina, pois é standalone. Único requerimento é o pacote .Net Framework 4.8+ que basicamente a maioria dos usuários Windows, para não dizer todos, possuem. Basta jogar o executável na pasta e usá-lo a partir dali. Não chamaria de "instalação". RE: Viper Anti-Cheat - xbruno1000x - 01/07/2024 Como fica a questão dos jogadores mobiles? RE: Viper Anti-Cheat - Dr Editor - 02/07/2024 (01/07/2024 22:47)xbruno1000x Escreveu: Como fica a questão dos jogadores mobiles? Infelizmente o programa foi lançado apenas para Windows, no entanto, nem o programa ou include (vac.inc) realiza punições para quem não usa ou mesmo para detecções. Apenas envia um relatório para o servidor e o mesmo gerencia os dados através da biblioteca vac.inc. Como dito no tópico: para evitar bloqueios da plataforma mobile, utilize um anti-cheat server-side e para windows utilize o Viper e caso não queira expulsar quem não o usa, basta conceder algum incentivo para uso como por exemplo benefícios Vip ou algo do gênero. É de se colocar na balança se a receita gerada pelo servidor é maior que o número de cheaters e reportes que ele recebe. |