HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
cmd_genaralkden kaldırdım bakalım lazım olursa sökecek yer var sökerimbak bu kod char.h 'ta yok normalde olması gerekiyor :
GetExtendInvenMax
ACMD(do_PetChangeName)
bunda SQL Injection var.
/pet_change_name arg1(strtonumber) arg2(directuse)
şeklinde.
Özel mesaj atıp nasıl sql injection yapılıyor diye saçma sorular sormayın başkasına zarar vermeniz için yardımcı olmam.
Ayrıca karakter kontrolü yok boşluk ve özel işaretler ile vs isim koyulabilir. python dan kontrol koyulduysa /pet_change_name 0 selam_ben_tunga diye nick koyarsınız. Tek engel veritabanındaki string limiti.
change_pet'in kodları üzücü
yorum yok.
İnsanları korkutmak için yazmadım. change_name bölümünü başka filesten baksanız iyi olur. diyeceklerim bu kadar.
Paylaşım için teşekkürler.
bunda SQL Injection var.
/pet_change_name arg1(strtonumber) arg2(directuse)
şeklinde.
Özel mesaj atıp nasıl sql injection yapılıyor diye saçma sorular sormayın başkasına zarar vermeniz için yardımcı olmam.
Ayrıca karakter kontrolü yok boşluk ve özel işaretler ile vs isim koyulabilir. python dan kontrol koyulduysa /pet_change_name 0 selam_ben_tunga diye nick koyarsınız. Tek engel veritabanındaki string limiti.
change_pet'in kodları üzücü
yorum yok.İnsanları korkutmak için yazmadım. change_name bölümünü başka filesten baksanız iyi olur. diyeceklerim bu kadar.
Paylaşım için teşekkürler.
Kod:
ACMD(do_PetChangeName)
{
char arg1[256], arg2[256];
two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
if (!*arg1 || !*arg2)
return;
int bCell = 0;
str_to_number(bCell, arg1);
LPITEM item = ch->GetInventoryItem(bCell);
if (!item)
return;
if (ch->CountSpecifyItem(55030) < 1)
return;
if (!strcmp(arg2, "%") || !strcmp(arg2, "/") || !strcmp(arg2, ">") || !strcmp(arg2, "|") || !strcmp(arg2, ";") || !strcmp(arg2, ":") || !strcmp(arg2, "}") || !strcmp(arg2, "{") || !strcmp(arg2, "[") || !strcmp(arg2, "]") || !strcmp(arg2, "%") || !strcmp(arg2, "#") || !strcmp(arg2, "@") || !strcmp(arg2, "^") || !strcmp(arg2, "&") || !strcmp(arg2, "'") )
{
ch->ChatPacket(CHAT_TYPE_INFO,"[Pet-Kulucka] Hatali isim girdiniz");
return;
}
if (ch->GetNewPetSystem()->IsActivePet())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ONCE_PETINI_GONDER"));
return;
}
char szName[CHARACTER_NAME_MAX_LEN + 1];
DBManager::instance().EscapeString(szName, sizeof(szName), arg2, strlen(arg2));
std::unique_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("UPDATE new_petsystem SET name = '%s' WHERE id = '%lu'", szName, item->GetID()));
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("PET_ISMI_DEGISTIRILDI"));
ch->RemoveSpecifyItem(55030, 1);
}
"Karakter kontrolü yok boşluk ve özel işaretler ile vs isim koyulabilir."Kod:ACMD(do_PetChangeName) { char arg1[256], arg2[256]; two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)); if (!*arg1 || !*arg2) return; int bCell = 0; str_to_number(bCell, arg1); LPITEM item = ch->GetInventoryItem(bCell); if (!item) return; if (ch->CountSpecifyItem(55030) < 1) return; if (!strcmp(arg2, "%") || !strcmp(arg2, "/") || !strcmp(arg2, ">") || !strcmp(arg2, "|") || !strcmp(arg2, ";") || !strcmp(arg2, ":") || !strcmp(arg2, "}") || !strcmp(arg2, "{") || !strcmp(arg2, "[") || !strcmp(arg2, "]") || !strcmp(arg2, "%") || !strcmp(arg2, "#") || !strcmp(arg2, "@") || !strcmp(arg2, "^") || !strcmp(arg2, "&") || !strcmp(arg2, "'") ) { ch->ChatPacket(CHAT_TYPE_INFO,"[Pet-Kulucka] Hatali isim girdiniz"); return; } if (ch->GetNewPetSystem()->IsActivePet()) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ONCE_PETINI_GONDER")); return; } char szName[CHARACTER_NAME_MAX_LEN + 1]; DBManager::instance().EscapeString(szName, sizeof(szName), arg2, strlen(arg2)); std::unique_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("UPDATE new_petsystem SET name = '%s' WHERE id = '%lu'", szName, item->GetID())); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("PET_ISMI_DEGISTIRILDI")); ch->RemoveSpecifyItem(55030, 1); }
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
stringler basit şekliyle sıralı karakter kümesidir. strcmp ile bu küme içerisindeki tüm karakterleri belirlenen string ile sıra sıra compare edemezsiniz. kümenin tamamını compare edersiniz. demek istediğim adı sadece "%" veya "/" olan bir karakter açılamaz ancak "%/" olan bir karakter açılabilir.
Son düzenleme:
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 37
- Görüntüleme
- 8K
- Cevaplar
- 77
- Görüntüleme
- 19K
- Cevaplar
- 62
- Görüntüleme
- 13K
- Kilitli
- Cevaplar
- 733
- Görüntüleme
- 120K
- Cevaplar
- 2K
- Görüntüleme
- 249K
