Protegendo seu GameMode (.amx)
__________________
BY:Vini_Born
Um dos grandes medos de um programador, é ver seus trabalhos nas mãos de outras pessoas sem seu consentimento.
O arquivo .pwn é o tesouro de qualquer programador pawn, e concerteza o mais protegido.
Porém, muitas vezes deixa-se de lado a proteção do .amx, o que não deveria ocorrer.
Não sei vocês, mas eu não gostaria de ver um servidor usando meu GameMode sem a minha devida permissão.
Muitos deixam 'comando secretos' em seus GM's para recuperar a rcon, porém isso não é um método tão eficaz quanto o que eu trago hoje, porque ele depende diretamente da paciência de procurar todos os servidores que usam o GM roubado, e depois entrar em cada um deles para usar o tal comando secreto.
Separei 4 métodos de proteção. São eles :
* Por Data
* Por Porta
* Por IP
* Por Senha
Antes de começar, uma explicação breve sobre duas funções que iremos utilizar :
- GetServerVarAsString - Obtém um parâmetro (string) do server.cfg.
- GetServerVarAsInt - Obtém um parâmetro (inteiro) do server.cfg.
Método onde damos ao GameMode prazo de válidade. Depois desse prazo, ele não será inicializado.
Método onde verificamos se a porta do servidor é a mesma da porta permitida no GameMode.
Método onde verificamos se o IP do servidor é o mesmo do permitido no GameMode.
É necessário que se acrescente isso no seu server.cfg :
Nesse caso, o servidor só poderá ser caseiro. Troque pelo IP do seu host.
Método onde verificamos se a rcon do servidor é a mesma da permitida no GameMode.
Também é bom utilizar o famoso AntiDeAMX, que evita que o seu GM seja 'descompilado'
__________________
BY:Vini_Born
Um dos grandes medos de um programador, é ver seus trabalhos nas mãos de outras pessoas sem seu consentimento.
O arquivo .pwn é o tesouro de qualquer programador pawn, e concerteza o mais protegido.
Porém, muitas vezes deixa-se de lado a proteção do .amx, o que não deveria ocorrer.
Não sei vocês, mas eu não gostaria de ver um servidor usando meu GameMode sem a minha devida permissão.
Muitos deixam 'comando secretos' em seus GM's para recuperar a rcon, porém isso não é um método tão eficaz quanto o que eu trago hoje, porque ele depende diretamente da paciência de procurar todos os servidores que usam o GM roubado, e depois entrar em cada um deles para usar o tal comando secreto.
Separei 4 métodos de proteção. São eles :
* Por Data
* Por Porta
* Por IP
* Por Senha
Antes de começar, uma explicação breve sobre duas funções que iremos utilizar :
- GetServerVarAsString - Obtém um parâmetro (string) do server.cfg.
- GetServerVarAsInt - Obtém um parâmetro (inteiro) do server.cfg.
Proteção por data
Método onde damos ao GameMode prazo de válidade. Depois desse prazo, ele não será inicializado.
pawn Code:
//Topo //Com isso o GM funcionará até abril. A partir de maio ele não abre mais. #define MES_LIMITE 4 public OnGameModeInit() { new Data[3]; getdate(Data[0], Data[1], Data[2]); // Ano, mes, dia if(Data[1] > MES_LIMITE) // Se o mês atual é maior que o permitido, o servidor fechará. { printf("Proteção por Data ativada."); printf("Você não tem permissão para usar este GameMode."); SendRconCommand("exit"); return true; } // return true; }
Proteção por porta
Método onde verificamos se a porta do servidor é a mesma da porta permitida no GameMode.
pawn Code:
//Topo #define PORTA_PERMITIDA 7777 public OnGameModeInit() { new SERVER_PORT = GetServerVarAsInt("port"); //Obtém do server.cfg a porta em que o servidor será aberto. if(SERVER_PORT != PORTA_PERMITIDA) // Se a porta obtida for diferente da permitida no GameMode, o servidor fechará. { printf("Proteção por Porta ativada."); printf("Você não tem permissão para usar este GameMode."); SendRconCommand("exit"); return true; } // return true; }
Proteção por IP
Método onde verificamos se o IP do servidor é o mesmo do permitido no GameMode.
É necessário que se acrescente isso no seu server.cfg :
pawn Code:
bind 127.0.0.1
pawn Code:
//Topo #define IP_PERMITIDO "127.0.0.1" public OnGameModeInit() { new SERVER_IP[16]; GetServerVarAsString("bind", SERVER_IP, sizeof SERVER_IP); // Armazena o conteúdo de 'bind' em SERVER_IP if(strcmp(SERVER_IP,IP_PERMITIDO) || !strlen(SERVER_IP)) // Verifica se o IP contido em 'bind' é o mesmo que o permitido no GameMode e também se 'bind' existe no server.cfg { printf("Proteção por IP ativada."); printf("Você não tem permissão para usar este GameMode."); SendRconCommand("exit"); return true; } // return true; }
Proteção por Rcon
Método onde verificamos se a rcon do servidor é a mesma da permitida no GameMode.
pawn Code:
//Topo #define RCON_PERMITIDA "ViniBorn" public OnGameModeInit() { GetServerVarAsString("rcon_password", SERVER_RCON, sizeof SERVER_RCON); // Armazena a rcon obtida do server.cfg em SERVER_RCON if(strcmp(SERVER_RCON,RCON_PERMITIDA)) // Verifica se a Rcon contido no server.cfg é a mesma que a permitida no GameMode { printf("Proteção por Rcon ativada."); printf("Você não tem permissão para usar este GameMode."); SendRconCommand("exit"); return true; } // return true; }
Também é bom utilizar o famoso AntiDeAMX, que evita que o seu GM seja 'descompilado'
pawn Code:
AntiDeAMX() { new a[][] = { "Unarmed (Fist)", "Brass K" }; #pragma unused a } //OnGameModeInit AntiDeAMX();
Estas informações são muito úteis a todos, e principalmente para aqueles que não confiam muito no host onde irão hospedar seus servidores.
Não sou muito bom com tutoriais, mas espero que tenham entendido.
Qualquer dúvida é só perguntar.
0 comentários:
Postar um comentário