SA-MP Forums Archive
[Tool/Web/Other] Server AC [Launcher] - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Tool/Web/Other] Server AC [Launcher] (/showthread.php?tid=622316)



Server AC [Launcher] - F1N4L - 20.11.2016

Server Anti-Cheater v1.3.1
Sobre:
Apуs estudar mйtodos de seguranзa a fim de encriptar informaзхes da linha de conexгo da base de dados, estou refazendo este tуpico com um mйtodo seguro para isso.
Alйm desse mйtodo, seria interessante o embaralhamento do source para manter uma seguranзa ainda maior.

Esta versгo й melhor que a outra, sem dъvida.
*Mais otimizado;
*Problemas anteriores corrigidos;
*Nгo necessita IP.
*Black/White list nгo existe mais

Seguranзa:
No launcher anterior eu pequei incluнdo informaзхes da linha de conexгo e tornando a conexгo insegura entre cliente e database.
Nesta nova versгo, feita totalmente do zero e mais otimizada, com um toque nativo de seguranзa.
Com o prompt do Visual Studio podemos encriptar informaзхes de linha de conexгo. Este й um mйtodo nativo e feito especialmente para estes casos, onde o cliente й utilizado por terceiros e os mesmos nгo podem ter acesso аs informaзхes sensнveis.
Esta e outras informaзхes vocк deve alterar no arquivo App.config.

Launcher:
Segue abaixo source do arquivo:
(Nгo precisa copiб-lo, pois este й o mesmo que vai incluso na pasta do source do Launcher)
Код:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
  <appSettings>
    <add key="ServerIP" value="127.0.0.1:7777"/>
    <add key="IntervalCheck" value="5"/>
  </appSettings>
  <connectionStrings>
    <add
      name="MyConnection"
      connectionString="Server=127.0.0.1;Database=samp_db;Uid=root;Pwd=;SslMode=Preferred;"
      providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>
</configuration>
Ao abrirem o source alterem as informaзхes necessбrias:
*ServerIP = IP do servidor
*IntervalCheck = Intervalo de verificaзгo (minutos)
*connectionString = Linha de conexгo

Apуs alterar as informaзхes deve-se encriptar os dados de conexгo. Para isso, segue abaixo um breve tutorial de como fazк-lo:

1 - Antes de mais nada, abra o local onde se localiza o arquivo App.config e o renomeie para Web.config.
Por se tratar de uma ferramenta desenvolvida para ASP.Net, devemos trabalhar com o arquivo Web.config.

2 - Abra o "Developer Command Prompt for VS20**". (versгo que vocк utiliza)

3 - Digite a seguinte linha:
Quote:

aspnet_regiis.exe -pef "connectionStrings" "App.config path"

aspnet_regiis.exe = Aplicativo de registro da ASP.Net.
-pef = Argumento utilizado para encriptar. (A encriptaзгo й reversнvel com o argumento -pdf)
"connectionStrings" = Nome identificador da linha que serб encriptada.
"App.config path" = Caminho do App.config.

4 - Pressione enter e novamente renomeie o arquivo para App.config.
Se vocк o abrir vai ver que a linha de conexгo foi criptografada...

Incluнdo arquivos suspeitos:
De momento habilitei somente PARTES DE ARQUIVOS. Acredito ser mais que suficiente...
Para adicionar mais й sу editar o arquivo Suspect.cs.

Filterscript:
Код:
#define MYSQL_Server					"127.0.0.1"
#define MYSQL_Database					"samp_db"
#define MYSQL_Uid						"root"
#define MYSQL_Pwd 						""

#define INTERVAL_CHECK					(5) // minutes
#define INTERVAL_CHECK_TXT				"5" // minutes (INTERVAL_CHECK in string)
#define INTERVAL_REMOVE_INV_PL			(5) // minutes
INTERVAL_CHECK = Intervalo para verificar se o jogador estб permitido para jogar no servidor.
INTERVAL_REMOVE_INV_PL = Intervalo para remover tabelas inativas.

Screenshot:


Change Log:
Код:
*07/02/2018
     - Corrigido pequenos problemas;
     - Adicionado procedures para maior seguranзa e praticidade; (sugestгo de @JonathanFeitosa)
     - Procedures sгo criados no FS;
     - Design modificado;
     - Mais alguns (possнveis) problemas foram tratados, evitando crash.

*18/04/2018
     - Versгo v1.2 foi lanзada;
     - Adicionado exceзгo para NPC's;
     - Pequenas alteraзхes no design;
     - Pequenas melhorias no cуdigo;
     - Adicionado label para informar o nome do servidor (no topo);
     - Adicionado label da versгo atual do Launcher;
     - Adicionado botгo "INFO" para detalhar os crйditos. 

*19/04/2018
     - Versгo v1.3 foi lanзada;
     - Falha na seguranзa corrigida. (avisado por @RazorGuigo)

     - Versгo v1.3.1 foi lanзada;
     - Pequenas alteraзхes e otimizaзхes no Launcher;
     - Pequenas correзхes e tratamentos de erros no Launcher;
     - Adicionado tag "[SAMP-AC]" em todas mensagens do anti-cheat (FilterScript).
Download:
Source
Filterscript


Re: Server AC [Launcher] - ipsLuan - 20.11.2016

Se o individuo abrir o AC em modo administrador, o bug sumirб?


Re: Server AC [Launcher] - sampkinq - 20.11.2016

Woow, perfect !


Re: Server AC [Launcher] - F1N4L - 20.11.2016

Quote:
Originally Posted by ipsLuan
Посмотреть сообщение
Se o individuo abrir o AC em modo administrador, o bug sumirб?
Em tentativas com aplicaзхes anteriores, nгo funcionou!
Aparentemente, apenas se vc estiver logado como administrador.


Re: Server AC [Launcher] - s4kuL - 21.11.2016

Muito boa a ideia, espero que tenha novas versхes e novas ideias. por que realmente isso foi muito bom e tenho certeza que vai ajudar muita gente. rep++;


Re: Server AC [Launcher] - F1N4L - 21.11.2016

Quote:
Originally Posted by s4kuL
Посмотреть сообщение
Muito boa a ideia, espero que tenha novas versхes e novas ideias. por que realmente isso foi muito bom e tenho certeza que vai ajudar muita gente. rep++;
Vlw, s4kuL.
Logo logo vou trazer mais um update, tenho mais algumas ideias em mente.


Re: Server AC [Launcher] - YtZ - 21.11.2016

cara
nгo faзa a loucura de colocar os dados de autentificaзгo do banco de dados no .exe que vai distribuir pros jogadores. Qualquer um pode facilmente recuperar o login e a senha do banco de dados atravйs do .exe
Nesses casos vocк precisa criar um servidor pra fazer o intermйdio cliente-banco de dados.


Re: Server AC [Launcher] - F1N4L - 21.11.2016

Quote:
Originally Posted by YtZ
Посмотреть сообщение
cara
nгo faзa a loucura de colocar os dados de autentificaзгo do banco de dados no .exe que vai distribuir pros jogadores. Qualquer um pode facilmente recuperar o login e a senha do banco de dados atravйs do .exe
Nesses casos vocк precisa criar um servidor pra fazer o intermйdio cliente-banco de dados.
Й possнvel embaralhar o source do executбvel com o Confuse, acredito que isso basta.


Re: Server AC [Launcher] - Whoo - 21.11.2016

Bem bacana o launcher, sу nгo curti muito o design, bom trabalho

You must spread some Reputation around before giving it to F1N4L again.


Re: Server AC [Launcher] - YtZ - 21.11.2016

Quote:
Originally Posted by F1N4L
Посмотреть сообщение
Й possнvel embaralhar o source do executбvel com o Confuse, acredito que isso basta.
Infelizmente nгo basta.
Vai ter que achar um jeito tambйm de enviar a senha encriptada pro servidor (o que o MySQL Server nгo permite entгo vai ter que fazer um milagre sem um servidor pra intermediar) pra ninguйm pegar a senha do banco de dados por um network sniffer jб que ela й enviada raw.
Sem contar que alguйm pode recuperar a senha acessando a memуria do aplicativo tambйm, como por exemplo pelo CheatEngine.