Not Kodlar al yapıştır olarak kullanmayınız düzgün düzenleyip kullanınız
Guardınıza eklemeniz için gerekli exploit fix kodları bu kodları eklerseniz saldırsalar bile işe yaramaz
1. EXPLOİT
2. EXPLOİT
3.EXPLOİT
4.EXPLOİT
5.EXPLOİT
Guardınıza eklemeniz için gerekli exploit fix kodları bu kodları eklerseniz saldırsalar bile işe yaramaz
1. EXPLOİT
Kod:
if(_pck.Opcode == 0x7005)
{
if(_pck.ReadUInt8() > 2) {
// Disconnect
}
}
Kod:
if(_pck.Opcode == 0x7007)
{
byte response = _pck.ReadUInt8();
switch (response)
{
#region Create char
case 1:
{
try
{
_pck.ReadAscii(); // Charname
_pck.ReadUInt32(); // RefObjID
_pck.ReadUInt8(); // Height
_pck.ReadUInt32(); // ItemID
_pck.ReadUInt32(); // ItemID
_pck.ReadUInt32(); // ItemID
_pck.ReadUInt32(); // ItemID
}
catch
{
// Disconnect.
}
}
break;
#endregion
#region Char screen call
case 2:
{
if(_pck.GetBytes().Length > 1)
{
// Disconnect
}
}
break;
#endregion
#region Delete char by name
case 3:
{
int name_length = _pck.ReadAscii().Length;
if((_pck.GetBytes().Length - name_length) != 3)
{
// Disconnect.
}
}
break;
#endregion
#region Restore char by name
case 4:
{
int name_length = _pck.ReadAscii().Length;
if((_pck.GetBytes().Length - name_length) != 3)
{
// Disconnect.
}
}
break;
#endregion
#region Don't remember what this is, but it exists :)
case 5:
{
int name_length = _pck.ReadAscii().Length;
if((_pck.GetBytes().Length - name_length) != 3)
{
// Disconnect.
}
}
break;
#endregion
default:
{
// Disconnect
}
break;
}
}
Kod:
if(_pck.Opcode == 0x750E)
{
if(_pck.GetBytes().Length > 0) {
// Disconnect
}
}
Kod:
if(_pck.Opcode == 0x3012)
{
if(_pck.GetBytes().Length > 0) {
// Disconnect
}
}
Kod:
if(_pck.Opcode == 0x3510)
{
continue;
}