07.05.2018, 18:00
(
Последний раз редактировалось F1N4L; 14.05.2018 в 20:58.
)
SAMP AC v2
Sobre:Foi criado um novo tуpico, pois isso nгo se trata de uma atualizaзгo, mas sim de um novo Anti-Cheat.
Desenvolvi um novo anti-cheat, porйm de forma diferente e muito mais seguro.
Realizei muitos testes atй chegar a uma proteзгo realmente boa.
Diferente do meu primeiro lanзado, este trabalha com sockets e nгo mais com MySQL. Dessa forma a comunicaзгo entre cliente e servidor ocorre (praticamente) em tempo real.
Estudei brevemente a seguranзa do anti-cheat desenvolvido pelo bruxo00. Usei seus mйtodos de hash e versionamento para trabalhar a seguranзa do AC.
Antes de dizer que isso й uma cуpia/adaptaзгo/modificaзгo faзa uma comparaзгo entre o FS e APP desenvolvido por ele e a Include e APP desenvolvido por mim. Ambos feitos do 0.
Nгo hб CTRL+C e nem CTRL+V em nada do trabalho dele.
Documentaзгo:
Tanto a include quanto o Launcher estгo totalmente documentados, entгo serб apresentado neste tуpico somente o necessбrio.
Seguranзa:
Код:
#define AC_VERSION "1.0.0.0" #define AC_MD5_HASH "abc123abc123abc123abc123abc123ab" #define AC_CHECK_DELAY (5) // segundos
AC_MD5_HASH..........Hash MD5 do programa para verificar se o mesmo foi modificado pelo jogador
AC_CHECK_DELAY......Delay (em segundos) que o servidor irб requisitar resposta do cliente
O versionamento й muito importante, pois o jogador deve usar a versгo mais atualizada do Launcher.
O hash MD5 do programa й computado no Launcher ao ser executado e envia o hash para o servidor para o mesmo comparar se hб modificaзгo no cliente por parte do jogador. Ao compilar o Launcher vocк pode utilizar um programa de terceiros para computar o hash do mesmo e o adicionar na define AC_MD5_HASH. (Lembrando que DEVE SER MD5, caso seja outro deve-se alterar no Launcher)
Para sabermos se o cliente estб ativo precisamos enviar dados para que possamos saber que o jogador estб sendo monitorado. Esse delay informado nгo tem relaзгo com o tempo em que o cliente irб se comunicar com o servidor, pois o cliente pode se comunicar a qualquer momento.
Modificaзхes:
Algumas coisas mudaram com relaзгo а versгo com MySQL.
#1 - Foi removido a listagem de arquivos suspeitos;
#2 - Comunicaзгo (quase) em tempo real;
#3 - Seguranзa melhorada;
#4 - Nгo forзa a entrada do jogador no servidor.
Funcionalidades:
Andei trabalhando bem a parte de comunicaзгo e troca de dados entre cliente e servidor para tornar as funзхes abaixo possнveis.
OnPlayerConnectAC(playerid, ip[], hash[])
Essa callback й chamada quando o jogador se conecta atravйs do cliente e inicia a comunicaзгo.
Ela pode substituir a callback OnPlayerConnect, mas isso nгo й regra.
playerid.....ID do jogador
ip...........IP do jogador
hash.........Hash do computador do jogador. (3 informaзхes estбticas do computador)
OnPlayerDisconnectAC(playerid, ip[], reason)
Esta callback й chamada quando o jogador encerra a comunicaзгo com servidor, seja por expulsгo ou simples desconexгo.
Ela pode substituir a callback OnPlayerDisconnect, mas isso nгo й regra.
playerid.....ID do jogador
ip...........IP do jogador
reason.......Motivo da desconexгo (padrгo OnPlayerDisconnect: 0/1/2)
OnPlayerCheatAC(playerid, ip[], cheat_code)
playerid.....ID do jogador
ip...........IP do jogador
cheat_code...Cуdigo do cheat detectado no computador do jogador.
Cheat codes:
Код:
CHEATCODE_MULTIPLE_EXEC (2) ~~> Mъltiplas janelas do GTA SA CHEATCODE_SUSPECT_OBJECTS (3) ~~> Arquivos suspeitos detectados CHEATCODE_DIFF_NAME (4) ~~> Nick diferente do informado no cliente (Nada grave, pode ser modificado futuramente) CHEATCODE_CHANGED_AC (5) ~~> Hash MD5 do Launcher diverge do informado na Include CHEATCODE_DIFF_VERSION (6) ~~> Versгo do Launcher desatualizada ou diferente da informada na Include CHEATCODE_CLOSE_AC (7) ~~> Fechou o Launcher
Eu tenho costume de tornar os projetos mais dinвmicos e, pensando nisso, tento fazer com que o Launcher nгo interfira nas decisхes tomadas pelos donos de servidores: PUNIЗХES!
Por conta disso, o desenvolvedor do GameMode deverб decidir quais puniзхes o jogador deve receber quando a callback OnPlayerCheatAC й acionada.
Screenshot:
Splash
Form
Download:
SAMP AC v2 + Include
Crйditos:
SAMP Team
BlueG
F1N4L
bruxo00