Показать сообщение отдельно
Старый 20.06.2010, 02:01   #16
Новичок
 
Аватар для ecl
 
Регистрация: 15.06.2010
Адрес: Москва
Сообщений: 11
Сказал Спасибо: 9
Имеет 1 спасибку в 1 сообщении
ecl пока неопределено
По умолчанию

Провафлил я с шифрацией, на первый взгляд было все заебись да не так уж заебись оказалось=(
Дешифрую вот в такое
2D 43 76 10 48 02 00 00 07
вместо
2D 43 76 10 48 02 00 00 00 (это пакет хак дешифровал)


static public void DecryptPacket(Packet packet)
{
byte PreviousByte = 0, CurrentByte;
for (int k = 0; k < packet.Data.Length; k++)
{
CurrentByte = packet.Data[k];
packet.Data[k] = (byte)(CurrentByte ^ packet.CurrentClient.GKey[k & 15] ^ PreviousByte);
PreviousByte = CurrentByte;
}
if (packet.FromServer)
{
unchecked
{
int old = packet.CurrentClient.GKey[8] & 0xff;
old |= (packet.CurrentClient.GKey[9] << 0x08) & 0xff00;
old |= (packet.CurrentClient.GKey[10] << 0x10) & 0xff0000;
old |= (packet.CurrentClient.GKey[11] << 0x18) & (int)0xff000000;
old += packet.Size;
packet.CurrentClient.GKey[8] = (byte)(old & 0xff);
packet.CurrentClient.GKey[9] = (byte)((old >> 0x08) & 0xff);
packet.CurrentClient.GKey[10] = (byte)((old >> 0x10) & 0xff);
packet.CurrentClient.GKey[11] = (byte)((old >> 0x18) & 0xff);
}

}
}

Размер Пакета определяю из первыйх двух байт пакета.
string SizeHex = data[1].ToString("X2") + data[0].ToString("X2");
Size = int.Parse(SizeHex, NumberStyles.AllowHexSpecifier);

Вынес себе весь мозг уже не могу понять где косячу.
Help me please!

Последний раз редактировалось ecl, 20.06.2010 в 09:43.
ecl вне форума   Ответить с цитированием