Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Zabezpieczenie autoryzacji do listy znajomych przed flood exploitem

Nieaktywny

Featured Replies

Opublikowano

image.png.a144663d4007d16872d3413c4a1a8bf3.png

 

Cześć,

 

Dziś zajmiemy się zabezpieczeniem serwera przed atakiem typu flood, który może powodować rozłączenia graczy. Atak ten wykorzystuje błąd w uwierzytelnianiu gracza podczas dodawania do listy przyjaciół przez funkcję messenger_auth. Naszym celem jest zapewnienie stabilności serwera i ochrona przed nadmiernym zalewaniem pakietami, które może negatywnie wpłynąć na doświadczenie graczy.

 

Implementacja:

📂 Lokalizacja pliku: 'game -> cmd_general.cpp'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

Jeśli nie masz tu żadnych zmian możesz zaktualizować cały kod.

🔐 Ukryta Treść 🔐

 

 

 📂 Lokalizacja pliku: 'game -> messenger_manager.cpp'

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

♻️ Zamień

🔐 Ukryta Treść 🔐

 

🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 ♻️ Zamień

🔐 Ukryta Treść 🔐

 

 🔍 Szukaj

🔐 Ukryta Treść 🔐

 

 Dodaj 

🔐 Ukryta Treść 🔐

 

 

  📂 Lokalizacja pliku: 'game -> messenger_manager.h'

 

 🔍 Szukaj

🔐 Ukryta Treść 🔐

 

  ♻️ Zamień

🔐 Ukryta Treść 🔐

 

  • 2 tygodnie później...
  • 1 miesiąc temu...
Opublikowano

przydatne 🙂

wrzucam rozwiązanie też

Dla starszych wersji:

 

ACMD(do_messenger_auth)
{
	if (ch->GetArena())
	{
		ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ĂŔ忡Ľ­ »çżëÇĎ˝Ç Ľö ľř˝Ŕ´Ď´Ů."));
		return;
	}

	char firstArgument[256], secondArgument[256];
	two_arguments(argument, firstArgument, sizeof(firstArgument), secondArgument, sizeof(secondArgument));

	if (!*firstArgument || !*secondArgument)
	{
		return;
	}

	bool isFriendRequestDenied = std::tolower(firstArgument[0]) != 'y';
	bool isFriendRequestProcessed = MessengerManager::instance().AuthToAdd(ch->GetName(), secondArgument, isFriendRequestDenied) != 0;

	if (isFriendRequestProcessed && isFriendRequestDenied)
	{
		CHARACTER* targetCharacter = CHARACTER_MANAGER::instance().FindPC(secondArgument);
		if (targetCharacter)
		{
			targetCharacter->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s ´ÔŔ¸·Î şÎĹÍ ÄŁ±¸ µî·ĎŔ» °ĹşÎ ´çÇß˝Ŕ´Ď´Ů."), ch->GetName());
		}
	}
}

 

Edytowane przez Denis

  • 1 miesiąc temu...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.