[SOURCE]Protección contra los nombres inapropriados
+2
Fenix.
Programador
6 participantes
[SOURCE]Protección contra los nombres inapropriados
Jue Ago 30, 2012 1:11 pm
Esta función no permite que los personajes que se creen con personajes inadecuados, haciendo imposible la prohibición de un sitio y los comandos, pero no permite la creación de los gremios con los personajes inapropiados, lo que lleva a la caída del servidor.
Hook:
--------------------------------------------------------------------------------------------
Hook((DWORD)&Programador::Create::Character, 0x401B8B);
Hook((DWORD)&Programador::Create::Guild, 0x4017DF);
--------------------------------------------------------------------------------------------
Defines:
--------------------------------------------------------------------------------------------
#define ServerCreateCharacter ((void(*)(Programador:PMSG_CHARCREATE*, DWORD)) 0x417420)
#define ServerCharacterFailSend ((void(*)(DWORD, char*)) 0x410A50)
#define ServerCreateGuild
--------------------------------------------------------------------------------------------
Credito : Programador
Create.h:
--------------------------------------------------------------------------------------------
#pragma once
namespace Programador
{
struct PMSG_CHARCREATE
{
PBMSG_HEAD h;
BYTE subcode;
char Name[10];
BYTE ClassSkin;
};
struct PMSG_GUILDINFOSAVE
{
PBMSG_HEAD h;
BYTE btGuildType;
char GuildName[8];
BYTE Mark[32];
};
class Create
{
public:
static bool checkString(std::string szString, std::string szPattern, bool szIgnoreSpace);
static void Character(PMSG_CHARCREATE* lpMsg, DWORD dwIndex);
static void Guild(DWORD dwIndex, PMSG_GUILDINFOSAVE* lpMsg);
};
}
--------------------------------------------------------------------------------------------
Create.cpp:
--------------------------------------------------------------------------------------------
#include "Create.h"
namespace Programador
{
bool Create::checkString(std::string szString, std::string szPattern, bool szIgnoreSpace)
{
DWORD dwCount = 0;
std::string szReg = "", szCharacter = "";
if(szPattern[0] != '[' || szPattern[(szPattern.length() - 1)] != ']')
{
return false;
}
for(int i = 1; i < (int)szPattern.length(); i++)
{
if(szPattern[i] == ']')
{
if(!szReg.empty())
{
szCharacter += szReg;
}
break;
}
if(!szPattern.compare(i, 3, "A-Z"))
{
szCharacter += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
i += 2;
}
else if(!szPattern.compare(i, 3, "a-z"))
{
szCharacter += "abcdefghijklmnopqrstuvwxyz";
i += 2;
}
else if(!szPattern.compare(i, 3, "0-9"))
{
szCharacter += "0123456789";
i += 2;
}
else
{
szReg += szPattern[i];
}
}
for(int n = 0; n < (int)szString.length(); n++)
{
if(szString[n] == ' ' && szIgnoreSpace)
{
dwCount++;
continue;
}
for(int y = 0; y < (int)szCharacter.length(); y++)
{
if(szString[n] == szCharacter[y])
{
dwCount++;
break;
}
}
}
if(dwCount == (DWORD)szString.length())
{
return true;
}
return false;
}
void Create::Character(PMSG_CHARCREATE* lpMsg, DWORD dwIndex)
{
if(checkString(lpMsg->Name, "[A-Za-z0-9_-]", false))
{
ServerCharacterFailSend(dwIndex, lpMsg->Name);
return;
}
ServerCreateCharacter(lpMsg, dwIndex);
}
void Create::Guild(DWORD dwIndex, PMSG_GUILDINFOSAVE* lpMsg)
{
if(checkString(lpMsg->GuildName, "[A-Za-z0-9_-]", false))
{
return;
}
ServerCreateGuild(dwIndex, lpMsg);
}
}--------------------------------------------------------------------------------------------
Hook:
--------------------------------------------------------------------------------------------
Hook((DWORD)&Programador::Create::Character, 0x401B8B);
Hook((DWORD)&Programador::Create::Guild, 0x4017DF);
--------------------------------------------------------------------------------------------
Defines:
--------------------------------------------------------------------------------------------
#define ServerCreateCharacter ((void(*)(Programador:PMSG_CHARCREATE*, DWORD)) 0x417420)
#define ServerCharacterFailSend ((void(*)(DWORD, char*)) 0x410A50)
#define ServerCreateGuild
--------------------------------------------------------------------------------------------
Credito : Programador
- Fenix.Zk-Level 0
15
4499
2
Re: [SOURCE]Protección contra los nombres inapropriados
Jue Ago 30, 2012 4:25 pm
jaja esto va para los pete que se crean name "!"!^$!" pedaso de petes gracias man sos un pro aporta cada cosas que no es necesario testearlo buen post
- damiancitoZk-Level 1
52
4933
7
Re: [SOURCE]Protección contra los nombres inapropriados
Jue Ago 30, 2012 4:37 pm
U.u no me voy a poner mas el name !"!"!$!"~ T.T buen post
- FFaBByyZk-Level 0
10
4485
0
Re: [SOURCE]Protección contra los nombres inapropriados
Vie Ago 31, 2012 1:47 am
El funcionamiento de los source que hace es de 99% al 100% buen post
- CGeasZk-Level 0
18
4503
2
Re: [SOURCE]Protección contra los nombres inapropriados
Dom Sep 02, 2012 4:02 pm
buen post
- panico_23Zk-Nuevo
6
4637
0
Re: [SOURCE]Protección contra los nombres inapropriados
Mar Sep 25, 2012 4:12 pm
hola men donde lo tengo q poner a eso me podes decir xfavor? gracias
- [SOURCE]Protección contra el Trade Hack
- [SOURCE] Protección contra el Disconnect Hack & Flood Connect (Attack GS)
- Los nombres de los dominios en internet llegaron a 225 millones el año pasado
- Amazon apuesta al Kindle Fire HD contra el iPad.
- BrGuard Protect 1.0 - Proteção contra Ataques DoS/DDOS e Syn Flood
Permisos de este foro:
No puedes responder a temas en este foro.