¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.



Ir abajo
Programador
Programador
Zk-Moderador
Zk-Moderador
Argentina

Google Chrome

Mensajes100

Coin4671

Reputacion143

Sin Advertencia
https://www.facebook.com/patrick.rn.5

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Jue Ago 30, 2012 1:23 pm
Reputación del mensaje :100% (3 votos)
No hay mucho que decir al respecto, después de todo, el propio título lo dice todo.

Disconnect Hack:
--------------------------------------------------------------------------------------------
#pragma once

namespace Programador
{
struct PMSG_ACTION
{
PBMSG_HEAD h;
unsigned char Direction;
unsigned char Action;
unsigned char TargetH;
unsigned char TargetL;
};
}
--------------------------------------------------------------------------------------------

Disconnect.cpp:
--------------------------------------------------------------------------------------------
#include "Disconnect.h"

namespace Programador
{
DisconnectStruct Disconnect::Struct[1000];

void Disconnect::Action(PMSG_ACTION* lpMsg, DWORD dwIndex)
{
WORD szIndex = (WORD)(dwIndex - 4800);

if(!Struct[szIndex].Send)
{
return;
}

if(Struct[szIndex].Timer <= 0)
{
Struct[szIndex].Timer = GetTickCount();
}

if(Struct[szIndex].Count >= 15)
{
DWORD dwTimer = (GetTickCount() - Struct[szIndex].Timer) / 1000;

if(dwTimer <= 1)
{
Struct[szIndex].Send = false;
ServerCloseClient(dwIndex, 0);
}
else
{
Struct[szIndex].Count = 0;
Struct[szIndex].Timer = GetTickCount();
}
}

Struct[szIndex].Count++;

ServerActionPlayer(lpMsg, dwIndex);
}
}
--------------------------------------------------------------------------------------------

Hook:
--------------------------------------------------------------------------------------------
Hook((DWORD)&Programador:Disconnect::Action, 0x401A1E);
--------------------------------------------------------------------------------------------
Define:
--------------------------------------------------------------------------------------------
#define ServerActionPlayer ((void(*)Programador::PMSG_ACTION*, DWORD)) 0x425CD0)
--------------------------------------------------------------------------------------------

Flood Connect:
--------------------------------------------------------------------------------------------
Flood.h:
--------------------------------------------------------------------------------------------
#pragma once

namespace Programador
{
struct FloodCheck
{
bool Send;
bool Delete;
unsigned long Timer;
unsigned long Count;
std::string Address;
};

struct FloodStruct
{
FloodCheck Check;
std::string Address;
};

class Flood
{
public:
static bool Inits();
static bool Check(std::string szAddress);
static short stringExplode(std::string szAddress, std::string szExplode);
static short Connection(SOCKET szSocket, char* szAddress);

public:
static FloodStruct Struct[500];

public:
static unsigned long Count;
};
}
--------------------------------------------------------------------------------------------
Flood.cpp:
--------------------------------------------------------------------------------------------
#include "Library.h"

namespace Programador
{
FloodStruct Flood::Struct[500];
unsigned long Flood::Count;

bool Flood::Init()
{
for(int i = 0; i < 500; i++)
{
Struct[i].Address = "";
}

Count = 0;

std::fstream f(".\\Network\\Block\\IpAddress.txt", std::ios::in);

if(f.is_open() && f.good())
{
BYTE szNum = 0;
char szBuffer[1024];
std::string szLine;

while(!f.eof())
{
if(Count == 500)
{
MessageBox(NULL, "O limite de endereço IP de usuários foi excedido.", "Erro", MB_OK | MB_ICONERROR);
break;
}

memset(&szBuffer[0], 0x00, 1024);
f.getline(szBuffer, 1024);
szLine.assign(&szBuffer[0]);

if(szLine.length() > 9)
{
if(szLine.substr(0, 2) != "//" && szLine.substr(0, 1) != "#" && szLine.substr(0, 1) != ";")
{
szNum = (BYTE)Count;

for(int i = 0; i < (int)szLine.length(); i++)
{
if(szLine[i] != ' ' && szLine[i] != '\t' && szLine[i] != '"')
{
if(isdigit(szLine.c_str()[i]) || szLine[i] == '.')
{
Struct[szNum].Address += szLine[i];
}
else
{
f.close();
MessageBox(NULL, "O arquivo IpAddress.txt está configurado de forma inadequada.", "Erro", MB_OK | MB_ICONERROR);
return false;
}
}
}

Count++;
}
}
}

f.close();

return true;
}

return false;
}

short Flood::stringExplode(std::string szAddress, std::string szExplode)
{
BYTE szId = 0, szDec[4] = {0};
std::string szConvert = "";

for(int i = 0; i <= (int)szAddress.length(); i++)
{
if(!szAddress.compare(i, 1, szExplode) || i == szAddress.length())
{
szDec[szId] = (BYTE)atoi((char*)szConvert.c_str());
szConvert = "";
szId++;
}
else
{
szConvert += szAddress[i];
}
}

float szResult = (float)(((szDec[0] + szDec[1]) - szDec[2]) + (szDec[3] * 2)) / 2;

if((szResult > 400))
{
szResult /= 2;
}

return (short)szResult;
}

bool Flood::Check(std::string szAddress)
{
WORD szIndex = Function::stringExplode(szAddress, (std::string)".");

if(Count > 0)
{
for(int i = 0; i < (int)Count; i++)
{
if(Struct[i].Address.empty())
{
break;
}

if((boost::iequals(Struct[i].Address, szAddress)))
{
if(!Struct[szIndex].Check.Delete)
{
for(int i = 4800; i < 5800; i++)
{
if(Object[i].Connected <= 1)
{
if(boost::iequals(Object[i].IpAddress, szAddress.c_str()))
{
ServerDelete(i);
}
}
}

Struct[szIndex].Check.Delete++;
}

return false;
}
}
}

if(Struct[szIndex].Check.Timer <= 0)
{
Struct[szIndex].Check.Send = true;
Struct[szIndex].Check.Delete = false;
Struct[szIndex].Check.Address = szAddress;
Struct[szIndex].Check.Timer = GetTickCount();
Struct[szIndex].Check.Count = 0;
}

if(!Struct[szIndex].Check.Send)
{
if(boost::iequals(Struct[szIndex].Check.Address, szAddress))
{
return false;
}
}

if(Struct[szIndex].Check.Count >= 2)
{
DWORD dwTimer = (GetTickCount() - Struct[szIndex].Check.Timer) / 1000;

if(dwTimer <= 1)
{
Struct[szIndex].Check.Send = false;
Struct[szIndex].Check.Delete = false;
Struct[szIndex].Check.Address = szAddress;

bool szWriteProceed = false;

if(Count < 500)
{
if(Count == 499)
{
if(Struct[499].Address.empty())
{
Struct[499].Check.Address = szAddress;
szWriteProceed = true;
}
}
else
{
BYTE szNum = (BYTE)Count;
Struct[szNum].Address = szAddress;
szWriteProceed = true;
Count++;
}
}

if(szWriteProceed)
{
std::fstream f(".\\Network\\Block\\IpAddress.txt", std::ios::app | std::ios::out);

if(f.is_open() && f.good())
{
std::string Msg(255, ' ');

sprintf_s(&Msg[0], 255, "\"%s\"\n", &szAddress[0]);

f.write(Msg.c_str(), Msg.length());
f.close();
}
}
}
else
{
if(!boost::iequals(Struct[szIndex].Check.Address, szAddress))
{
Struct[szIndex].Check.Send = true;
Struct[szIndex].Check.Delete = false;
Struct[szIndex].Check.Address = szAddress;
}

Struct[szIndex].Check.Timer = GetTickCount();
Struct[szIndex].Check.Count = 0;
}
}

Struct[szIndex].Check.Count++;

return true;
}

short Flood::Connection(SOCKET szSocket, char* szAddress)
{
if(!Check((std::string)szAddress))
{
return (-1);
}

return ServerConnect(szSocket, szAddress);
}
}

--------------------------------------------------------------------------------------------

Hook:
--------------------------------------------------------------------------------------------
Hook((DWORD)&Programador::Flood::Connection, 0x401834);
--------------------------------------------------------------------------------------------

Define:
--------------------------------------------------------------------------------------------
#define ServerConnect ((short(*)(SOCKET, char*)) 0x45F0F0)
--------------------------------------------------------------------------------------------

Crèdito : Programador


Última edición por Programador el Lun Sep 24, 2012 5:53 am, editado 1 vez
Fenix.
Fenix.
Zk-Level 0
Zk-Level 0
Argentina

Google Chrome

Mensajes15

Coin4306

Reputacion2

Sin Advertencia

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Jue Ago 30, 2012 4:23 pm
hice el source con scrip y si te digo que me funciono de 10 pasame tu facebook msn twiiter algo tengo un trabajo para vos papa soy dueño de una empresa :>^:
damiancito
damiancito
Zk-Level 1
Zk-Level 1
Argentina

Google Chrome

Mensajes52

Coin4740

Reputacion7

Sin Advertencia

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Jue Ago 30, 2012 4:35 pm
jaja yo lo quiero Fenix. para la empresa de un amigo no me lo robes feo jaja saludo esto es un aportaso buen post
fabi9005
fabi9005
Zk-Level 0
Zk-Level 0
Argentina

Google Chrome

Mensajes18

Coin4325

Reputacion2

Baneado

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Gracia por el aporte!!!

Vie Ago 31, 2012 12:08 am
Programador muchas gracias tengo sirtas dudas quiero consultarlo por telefono con vos por favor te pago si es necesario para vos agrega mi MSN [Tienes que estar registrado y conectado para ver este vínculo]
por favor dejame un mail con tu telefono y te llamo!! :>^:
buen post
FFaBByy
FFaBByy
Zk-Level 0
Zk-Level 0
Argentina

Google Chrome

Mensajes10

Coin4292

Reputacion0

Sin Advertencia

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Vie Ago 31, 2012 1:49 am
Buenisimo Source para empesar armar un mu con seguridad 100% lalala buen post
DORITOZ
DORITOZ
Zk-Nuevo
Zk-Nuevo
Argentina

Google Chrome

Mensajes2

Coin4282

Reputacion0

Sin Advertencia

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Vie Ago 31, 2012 2:55 am
Programador porfavor si me podes pasar tu facebook ? ^^ graxxxx
CGeas
CGeas
Zk-Level 0
Zk-Level 0
Argentina

Google Chrome

Mensajes18

Coin4310

Reputacion2

Sin Advertencia

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Dom Sep 02, 2012 3:04 pm

Hola, quisiera implementar estas protecciones a mi GS 1.00.88.
Se como crear Disconnect.cpp y Disconnect.h pero no se donde va el Hook y el Define ni que función tienen si pudieran explicármelas de los agradecería de antemano.
buen post
Programador
Programador
Zk-Moderador
Zk-Moderador
Argentina

Google Chrome

Mensajes100

Coin4671

Reputacion143

Sin Advertencia
https://www.facebook.com/patrick.rn.5

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Dom Sep 02, 2012 4:07 pm
CGeas escribió:
Hola, quisiera implementar estas protecciones a mi GS 1.00.88.
Se como crear Disconnect.cpp y Disconnect.h pero no se donde va el Hook y el Define ni que función tienen si pudieran explicármelas de los agradecería de antemano.
buen post

No sé si el método de hacer el Disconnect Hack en GS 1.00.88 es la misma que la 97D.

En caso afirmativo, usted tiene que buscar lo offset de la función llamada CGActionRecv o GCActionRecv (no recuerdo su verdadero nombre) para hacer el hook y actualizar los valores de la struct PMSG_ACTION (que puede o no se han cambiado).
CGeas
CGeas
Zk-Level 0
Zk-Level 0
Argentina

Google Chrome

Mensajes18

Coin4310

Reputacion2

Sin Advertencia

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Dom Sep 02, 2012 11:53 pm
gracias ya lo encontre y funciono te lo agradesco :)
Gm
Gm
Zk-Nuevo
Zk-Nuevo
Venezuela

Firefox

Mensajes1

Coin4259

Reputacion0

Sin Advertencia

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Sáb Sep 15, 2012 12:50 pm
Como Descargo eso?
FameCrew~
FameCrew~
Zk-Level 0
Zk-Level 0
Argentina

Google Chrome

Mensajes13

Coin4302

Reputacion0

Sin Advertencia

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Dom Sep 16, 2012 12:21 pm
CHIKOOOOS ALGIEN ME HARIA EL FAVOR DE AYUDARME HACER ESTO ???? TENGO PROBLEMAS CON MI SERVIDOR Y NO SE HACERLO ;/ PORFAVOR R AYUDENMEE !!
XxBrayxX
XxBrayxX
Zk-Level 2
Zk-Level 2
Argentina

Google Chrome

Mensajes134

Coin4564

Reputacion0

Sin Advertencia

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Dom Sep 23, 2012 6:02 pm
Si alguien explica detalladamente como se hace esto seria bueno para la comunidad
Gracias esto es un buen aporte para varios servidores de mu Online en especial los 99b
que son afectados por este hack Saludos y espero tu respuesta ;)




Programador
Programador
Zk-Moderador
Zk-Moderador
Argentina

Google Chrome

Mensajes100

Coin4671

Reputacion143

Sin Advertencia
https://www.facebook.com/patrick.rn.5

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Lun Sep 24, 2012 6:12 am
XxBrayxX escribió:Si alguien explica detalladamente como se hace esto seria bueno para la comunidad
Gracias esto es un buen aporte para varios servidores de mu Online en especial los 99b
que son afectados por este hack Saludos y espero tu respuesta ;)

como crear los Disconnect Hack: , Flood Connect: ,Disconnect.cpp: , Flood.cpp: "dll" ,con c++ Facil y sencillo no es tan dificil chicos. , al define también lo pueden crear con c++ , si no saben lo que es un c++ , Tirense unas guias. le-di detalladamente como tiene que hacer.
GGiaNN
GGiaNN
Zk-Nuevo
Zk-Nuevo
Argentina

Google Chrome

Mensajes8

Coin4212

Reputacion0

1 Advertencia

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Jue Ene 03, 2013 3:48 pm
BUENO PRIMERO EN PRINCIPAL HOLA.
BUENO TE VOY A COMENTAR QUE SOY ALGO NUEVO EN ESTO DE LA PROGRAMACIÓN , PERO TUVE UN PROBLEMA AL CREAR LA DLL, BUENO INTENTE CREAR LA DLL CON DEV-C++ PERO AL EJECUTARLA Y COMPILARLA ME PONE ESTO: COULD NOT CREATE MAKEFILE: "C:DOCUMENTS AND SETTINGS\USUARIO\ESCRITORIO\Makefile.Win" I/O error 32. enojado

BUENO SI ME AYUDARIAS TE LO AGRADECERÍA.
Ferna
Ferna
Zk-Nuevo
Zk-Nuevo
Argentina

Google Chrome

Mensajes9

Coin4154

Reputacion0

Sin Advertencia

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Lun Ene 14, 2013 11:26 am
como agrego esto a mi server 0.99?
Contenido patrocinado

[SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS) Empty Re: [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)

Volver arriba
Permisos de este foro:
No puedes responder a temas en este foro.