[Tutorial] Como proteger o gamemode para roubos 100% eficaz
#1

Muita gente descuidada deixa roubar "seu precioso" gamemode.


Pois bem, vou mostrar uma tйcnica infalнvel de como proteger o gamemode. A ideia pode ser dificil para captar no comeзo, mas se prestar atenзгo, poderб entender e aplicar nos seus cуdigos



A IDEIA consiste no seguinte truque:


Crie um FILTERSCRIPT que contenha funзхes com nomes estranhos, mas que direcionem para funзхes nativas da samp.

Exemplo:

pawn Код:
@@@SECRETAFUNC(Float:h, id);

public @@@SECRETAFUNC(Float:h, id) return SetPlayerHealth(id, h);

Basicamente, temos uma funзгo SECRETA, que na verdade chamada Player Health.



Entгo no seu GAMEMODE coloque ao inйs de:

pawn Код:
SetPlayerHealth(playerid, 100.0);

coloque:

pawn Код:
CallRemoteFunction("@@@SECRETAFUNC", "fi", 100.0, playerid);

o que isto farб? Simples, vai chamar o @@@SECRETAFUNC DO FILTERSCRIPT e alterar a vida do jogador. Porйm tem um detalhe.


O LADRГO QUE ESTБ MEXENDO NO GM


Nгo saberб o que @@@SECRETAFUNC farб, logo ele nгo poderб EDITAR SEU GAMEMODE.


Alйm do mais, o FILTERSCRIPT com a @@@SECRETAFUNC vai se tornar necessбrio para o servidor, pois caso contrбrio o CallRemoteFunction nгo funcionarб! E nenhuma funзгo do GM funcionarб. Portando o ladrгo serб OBRIGADO a carregar o FILTERSCRIPT para poder FUNCIONAR com Gamemode


PORTANTO vocк poderб colocar no OnFilterScriptInit:


pawn Код:
public OnFilterScriptInit() {
           print("ESTE GAMEMODE FOI CRIADO POR BRUNO E VOCE JAMAIS MUDARБ ESSA MENSAGEM");
}



Tб Bruno, mas o cara nгo poderб mudar o filterscript?



Sim, poderб! Mas a questгo й o seguinte. Ao lanзar seus cуdigos. Lance A-P-E-N-A-S o .amx do Filterscript. Logo o cara poderб ter acesso ao cуdigo fonte do GM, mas jamais poderб mudar os crйditos, ou atй mesmo abrir em algum IP autorizado.


E Para garantir, logo que terminar o filterscript. APAGUE-O o .pwn do filterscript, ou guarda em algum pen drive para futuras atualizaзхes. Simples nй?



Vocк estб colocando um cуdigo que Й NECESSARIO para o funcionamento do servidor, e se calhar, ninguйm poderб mudar isto.


Vocк pode atй alterar os parametros das funcoes para os hackers nгo entenderem para que serve a funзгo Como, ao inves de AESAJIMUDACOLET(playerid, armour) colocar AESAJIMUDACOLET(armour, player) ou acoplar varias funзхes em uma para enviar mensagem ao mesmo tempo e mudar a vida do jogador. Entre muitas outras coisas ou colocar mais parametros sу para engar:


AESAJIMUDACOLET(armour, 0,0,0,0,0,0, playerid);





A vantagem й:

Sу vocк entenderб seu cуdigo.
Sу vocк modificarб seu cуdigo
Se roubarem o .pwn do gamemode, nгo poderгo mudar os crйditos, ou se vocк quiser, nгo poderгo nem abrir em algum ip, ou nгo poderгo abrir se nгo tiver uma senha colocada


A desvantagem й:

Precisa de acostumar com a nova tipagem do seu cуdigo
O cуdigo nгo ficarб genйrico
CallRemoteFunction deixarб as funзхes um pouco mais lentas

Tudo isto, porque vocк estб interligando funзхes do gamemode, com filterscript. Logo o filterscript й necessбrio para o servidor rodar!
Reply
#2

Aqui um exemplo de como ficaria:


Filterscript com apenas .amx liberado:

pawn Код:
public OnPlayerConnect(playerid) {

    SendClientMessage(playerid,-1, "MENSAGEM ORIGINAL: Este gamemode foi criado por Bruno S. E estб mensagem jamais serб mudada");

}

// funзгo para mudar vida

public @_____H(a,b,c,d,e);
public @_____H(a,b,c,d,e)
{
    SetPlayerHealth(a, Float:c);
}

// funcao para enviar mensagem

public @_____S(a,b,c,d[],e);
public @_____S(a,b,c,d[],e)
{
    SendClientMessage(a, b, d);
}


Game mode, com .pwn liberado e tudo:

pawn Код:
public OnPlayerSpawn(playerid) {


        // mudar vida
        CallRemoteFunction("@_____H", "iiiii", playerid,100,_:100.0,100.0,80);

        // enviar mensagem
    CallRemoteFunction("@_____S", "iiisi", playerid, -1, -2, "Bem Vindo ao nosso servidor", -1);
}

Posso criar um gerador desse tipo de cуdigo, se quiserem. Seria fбcil fazer em Javascript e ajudaria bastante quem quer ter um servidor e mante-lo protegido xD

Obviamente, neste caso deu pra ver que o "Bem vindo" vai enviar uma mensagem e que o H iria mudar a vida. Mas em um gamemode GIGANTE, vocкs nгo tem ideia de como dificultaria o roubo, para nгo tornar impossнvel, porque em casos assim, vocк obrigaria o cara a rescrever todas funзхes se quisesse roubar seu GM. Isto se ele conseguir reconhecer todas funзхes.


Em casos de strngs. Vocк podem usar algum tipo de ENCODER interno, dessa maneira trocaria:

"Bem Vindo ao nosso servidor"

para

"11sa84asgas5t4aw584ytey"


e o cara jamais descobriria qual mйtodo de encodaзгo vocк estб usando, porque sу no filterscript do .amx que iria decodar a string enviada. Logo ele nгo poderia mudar strings no seu GM! Saca?


Esse й o melhor mйtodo, talvez possa haver alguma outra coisa com plugins, mas nгo seria totalmente confiбvel.


TUTORIAL INЙDITO, IDEIA INЙDITA


Espero que gostem!
Reply
#3

Gostei seu lindo -q
+Rep..
Reply
#4

muito interessante este seu mйtodo..

Juntando com o meu, a possibilidade do "hacker" pegar o gm, pode ser impossнvel.
https://sampforum.blast.hk/showthread.php?tid=384262
Reply
#5

Boa Suy, se colocar este seu cуdigo no filterscript, tб feito. Porque seu projeto, vai dar fail caso desplugar o filterscritp ou remover o cуdigo do gm, seria muito fбcil burlar.



Entra no ******** ou Skype para trocarmos uma ideia.
Reply
#6

Gostei Cara.
Reply
#7

Tu йs tao pro como o teu irmao, fogo, e eu que ainda estou a aprender a criar gangzones e nem sei qual devo mexer 1є se e no pwn ou amx e tu ja criar essas cenas todas XPTO, AVANCADAS Acerio, ta bue fixe esse teu FS


Gostei ta BUE FIXEEEE (y)
Reply
#8

Muito bom Bruno!

Eu faзo algo semelhante, tenho os cуdigos separado por includes "config, vars, funcs, langs, etc", e umas 2 ou 3 funзхes essenciais para o servidor funcionar, mas que nгo sгo chamadas com tanto frequencia em um FilterScript.

As includes e o FS ficam em um pendrive que sу й conectado a um computador sem conexгo com a internet (sу tem o windows original) quando vou programar algo no servidor, junto com aquele mйtodo do Garfield. Eu jб tinha tentando uma vez renomear algumas funзхes como vocк disse, mas acabei desistindo por nгo me acostumar com os novos nomes, conforme o cуdigo foi aumentando de tamanho tornou-se bem complicado decifrar o que aquele bloco de cуdigo representava.

Estб ai mais uma dica para quem quiser proteger seus cуdigos, parabйns Bruno!
Reply
#9

quem й o irmao do Bruno?


Vou experimentar para ver se os meus colegas descobrem a manha
Reply
#10

Meu irmгo й o Felipe. Ele tem 11 anos.


Abraзos
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)