- Mesaj
- 4.039
- Çözümler
- 390
- Beğeni
- 4.160
- Puan
- 1.849
- Ticaret Puanı
- 0
Ülkemizde ne kadar bilinip kullanıldığı belli olmamakla birlikte, bazı yabancı ülkelerde pek bilinen ve hala kullanılan bir açık.
Açığa gelecek olursak; herhangi bir karakterden /messenger_auth t Emre yazdığımızda Emre isimli karaktere flood gönderiyor.
Bazı kötü niyetli kişiler bot vb. araçlarla bu floodu çok daha fazla sayıda gönderebilirler.
Bkz:
Çözüm için aşağıdaki adımları uygulayınız:
game/src/messenger_manager.cpp açın ve arayın:
Fonksiyonu komple değiştirin:
messenger_manager.h açın ve arayın:
Değiştirin:
cmd_general.cpp açın ve arayın:
Komple değiştirin:
Açığa gelecek olursak; herhangi bir karakterden /messenger_auth t Emre yazdığımızda Emre isimli karaktere flood gönderiyor.
Bazı kötü niyetli kişiler bot vb. araçlarla bu floodu çok daha fazla sayıda gönderebilirler.
Bkz:
Çözüm için aşağıdaki adımları uygulayınız:
game/src/messenger_manager.cpp açın ve arayın:
C++:
void MessengerManager::AuthToAdd(MessengerManager::keyA account, MessengerManager::keyA companion, bool bDeny)
Fonksiyonu komple değiştirin:
C++:
bool MessengerManager::AuthToAdd(MessengerManager::keyA account, MessengerManager::keyA companion, bool bDeny)
{
DWORD dw1 = GetCRC32(companion.c_str(), companion.length());
DWORD dw2 = GetCRC32(account.c_str(), account.length());
char buf[64];
snprintf(buf, sizeof(buf), "%u:%u", dw1, dw2);
DWORD dwComplex = GetCRC32(buf, strlen(buf));
if (m_set_requestToAdd.find(dwComplex) == m_set_requestToAdd.end())
{
sys_log(0, "MessengerManager::AuthToAdd : request not exist %s -> %s", companion.c_str(), account.c_str());
return false;
}
m_set_requestToAdd.erase(dwComplex);
if (!bDeny)
{
AddToList(companion, account);
AddToList(account, companion);
}
return true;
}
messenger_manager.h açın ve arayın:
C++:
void AuthToAdd(keyA account, keyA companion, bool bDeny);
Değiştirin:
C++:
bool AuthToAdd(keyA account, keyA companion, bool bDeny);
cmd_general.cpp açın ve arayın:
C++:
ACMD(do_messenger_auth)
Komple değiştirin:
C++:
ACMD(do_messenger_auth)
{
if (ch->GetArena())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ÃÀå¿¡¼ »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù."));
return;
}
char arg1[256], arg2[256];
two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
if (!*arg1 || !*arg2)
return;
char answer = LOWER(*arg1);
bool bIsDenied = answer != 'y';
bool bIsAdded = MessengerManager::instance().AuthToAdd(ch->GetName(), arg2, bIsDenied); // DENY
if (bIsAdded && bIsDenied)
{
LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(arg2);
if (tch)
tch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s ´ÔÀ¸·Î ºÎÅÍ Ä£±¸ µî·ÏÀ» °ÅºÎ ´çÇß½À´Ï´Ù."), ch->GetName());
}
}