Ir para conteúdo
Entre para seguir isso  
Deragon

Proteção contra ataques DoS

Recommended Posts

Deragon    25
Deragon

Achei esse código em outro fórum e queria postar aqui pra voces

 

Créditos: Proglin

 

Então começemos:

 

@ game.cpp

Depois de:

#include "talkaction.h"

#include "spells.h"

#include "configmanager.h"

 

Adicione:

#include "tools.h"

 

Depois de:

Game::Game()

{

 

Adicione:

#ifdef __UCB_DDOS_PROTECTION__

connectionTestFalseValidUntil = std::time(NULL) + 2*60; //Ignore verification in first 2 minutes

connectionTestTrueValidUntil = connectionTestFalseValidUntil;

connectionTestOk = true;

#endif

 

e na ultima linha adicione:

#ifdef __UCB_DDOS_PROTECTION__

bool Game::isOutSideWorldResponding(){

uint32_t now = std::time(NULL);

if( !connectionTestOk ){

if( now > connectionTestFalseValidUntil ){

//Redo test

connectionTestOk = isWorldReachable();

connectionTestFalseValidUntil = now + 60; //False result is valid for 60 seconds

}

} else {

if( now > connectionTestTrueValidUntil ){

//Redo test

connectionTestOk = isWorldReachable();

connectionTestTrueValidUntil = now + 10; //Ok result is valid for 10 secongs

}

}

return connectionTestOk;

}

#endif

 

@ game.h

 

Depois de:

void internalCreatureChangeVisible(Creature* creature, bool visible);

void changeLight(const Creature* creature);

 

#ifdef __SKULLSYSTEM__

void changeSkull(Player* player, Skulls_t newSkull);

#endif

 

Adicione:

#ifdef __UCB_DDOS_PROTECTION__

bool isOutSideWorldResponding();

#endif

 

Depois de:

uint32_t inFightTicks;

uint32_t exhaustionTicks;

uint32_t fightExhaustionTicks;

 

Adicione:

#ifdef __UCB_DDOS_PROTECTION__

bool connectionTestOk;

uint32_t connectionTestTrueValidUntil;

uint32_t connectionTestFalseValidUntil;

#endif

 

@ tools.cpp

Adicione após a ultima linha:

#ifdef __UCB_DDOS_PROTECTION__

bool isWorldReachable(){

int32_t ret;

#if defined __WINDOWS__

ret = system("ping -n 1 -w 500 google.com > NUL");

#else

ret = system("ping -q -c 1 -w 1 google.com > /dev/null");

#endif

return (ret == 0);

}

#endif

 

@ tools.h

 

Adicione após a ultima linha:

#ifdef __UCB_DDOS_PROTECTION__

bool isWorldReachable();

#endif

 

@ player.cpp

 

TROQUE:

if(skillLoss){

 

Por:

#ifdef __UCB_DDOS_PROTECTION__

if(skillLoss && g_game.isOutSideWorldResponding()){

#else

if(skillLoss){

#endif

 

TROQUE também (em player.cpp ainda):

experience -= getLostExperience();

 

Por:

#ifdef __UCB_DDOS_PROTECTION__

if( g_game.isOutSideWorldResponding() ){

experience -= getLostExperience();

}

#else

experience -= getLostExperience();

#endif

 

Agora vai em parametros e adicione no final

-D__UCB_DDOS_PROTECTION__

 

P: Como funciona esse sistema ?

R: Esse sistema funciona assim: se o ot travar por nukes, o player não perderá nada, skills, loot

 

P: Mas como ver isso ?

R: Ele ve se o site do http://www.google.com esta respondendo, se estiver, não entra em ação o código, se não estiver respondendo, o código entra em ação e nenhum player perde nada

 

OBS: Créditos a Proglin e onde vi esta livre de modificações

OBS²: O Código não funcionará se for ataque DDoS, portanto não venha reclamar

Editado por Deragon

Compartilhar este post


Link para o post
caiohg    0
caiohg

muito bom. vlw mesmo!

 

só que é meio complicado, mais deu pra entender!

Editado por Majesty
duplo post unidos.

Compartilhar este post


Link para o post
aldoano    0
aldoano

O que vc realmente quer dizer com o "player perde nada" ?

Como o Script age? o que ele faz no servidor para que o player não perda nada?

Não intendo muito :fun:

Compartilhar este post


Link para o post
Holy Guardian    0
Holy Guardian

Acho q funciona assim, tem lá o SAVE do ot né?

então o seguinte vc foi la upou pegou itens etc. daí o cara nuka o ot, daí se n tiver dado SAVE ainda vc vai perder oq vc tinha feito dps do último save dado.

com esse programa ele ñ vai "voltar no tempo" entendeu?

Compartilhar este post


Link para o post
Deragon    25
Deragon
O que vc realmente quer dizer com o "player perde nada" ?

Como o Script age? o que ele faz no servidor para que o player não perda nada?

Não intendo muito :fun:

 

P: Mas como ver isso ?

R: Ele ve se o site do http://www.google.com esta respondendo, se estiver, não entra em ação o código, se não estiver respondendo, o código entra em ação e nenhum player perde nada

Compartilhar este post


Link para o post
Atthon    0
Atthon

Humm legal, vai ajudar muita gente, porque hoje em dia está tento muito ataque DDoS em OTServs Oo

Compartilhar este post


Link para o post
Mago Branco    0
Mago Branco

Deragon só me explique o caso:

 

Título do tópico:

 

Proteção contra ataques DoS

A segunda observação:

 

OBS²: O Código não funcionará se for ataque DDoS, portanto não venha reclamar

Compartilhar este post


Link para o post
aldoano    0
aldoano
P: Mas como ver isso ?

R: Ele ve se o site do www.google.com esta respondendo, se estiver, não entra em ação o código, se não estiver respondendo, o código entra em ação e nenhum player perde nada

 

No fim vc falou a mesma coisa que vc escreveu no TOPCO :slap:

Eu perguntei quais são as funções (atitudes) que o script vai tomar para que essas informações não sejam perdidas.

Por exemplo ele fecha o servidor como se fosse um /closeserver?

Ele da um save?

Ele kika os players?

Ou ele salva os dados em um banco de dados separado?

gostaria de uma resposta desse tipo, obrigado ^^

Compartilhar este post


Link para o post
Deragon    25
Deragon
Deragon só me explique o caso:

 

Título do tópico:

 

 

A segunda observação:

 

Titulo do tópico,

DoS, são ataques sobrecarregando o host, no caso, você

 

DDoS,

é como se um monte de gente executasse o DoS

 

No fim vc falou a mesma coisa que vc escreveu no TOPCO :slap:

Eu perguntei quais são as funções (atitudes) que o script vai tomar para que essas informações não sejam perdidas.

Por exemplo ele fecha o servidor como se fosse um /closeserver?

Ele da um save?

Ele kika os players?

Ou ele salva os dados em um banco de dados separado?

gostaria de uma resposta desse tipo, obrigado ^^

 

que bom que viu que copiei do tópico porque parece que não o leu inteiramente, não é mesmo? está escrito lá o que o code faz -.-

P: Como funciona esse sistema ?

R: Esse sistema funciona assim: se o ot travar por nukes, o player não perderá nada, skills, loot

e caso ainda não tenha entendido, se o player morrer, nao vai perder nada

Editado por Deragon

Compartilhar este post


Link para o post
LG    1
LG

legal

=D

mas se o google ficar off??

xD

Compartilhar este post


Link para o post
Deragon    25
Deragon
legal

=D

mas se o google ficar off??

xD

 

o codigo nao funcionaria

mas acho que nunca vi o google off

Compartilhar este post


Link para o post
gust50    0
gust50
pacotea os os servers com mais de 3000 pcs ao mesmo tempo!

 

Isso se chama DDoS, manjador.. :(

 

pacotear com um PC só, chama flood, nego chama de DDoS porquê é lammer.

Editado por Evesys

Compartilhar este post


Link para o post
darctor    0
darctor

pow onde eu boto isso vei nao sei mexer em ot direito tao zuando meu toda hora trava

Compartilhar este post


Link para o post
Eventide    7
Eventide

fui postar e de alguma forma editou o post do cara, desculpa ai... O.o

Compartilhar este post


Link para o post
newotserv    0
newotserv

Cara, você conhece algum script que proteja de DDoS? Obrigado. E se sim, ele serve para 9.6?

Compartilhar este post


Link para o post
newotserv    0
newotserv

Cara, você conhece algum script que proteja de DDoS? Obrigado. E se sim, ele serve para 9.6?

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×