я вот как то тоже начинал писать аналог пакетхака только не для линейки а универсальный на C#, но чтот не пошло.., дальше реализации socks5 сервера дело не сдвинулось(
__________________
Я здесь практически не появляюсь!, Skype - ikskor
Провафлил я с шифрацией, на первый взгляд было все заебись да не так уж заебись оказалось=(
Дешифрую вот в такое
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.
порпобуй используй не int а unsigned int
вместо этого string SizeHex = data[1].ToString("X2") + data[0].ToString("X2");
Size = int.Parse(SizeHex, NumberStyles.AllowHexSpecifier);
лучше какнить так: Size=data[1]*0x100+data[0]; (data какнить типа unsigned char мона объявить)
Ну и чтоб посмотреть где ты ошибся - подебаж пх и посмотри как там ключ меняется и как у тебя. alexteam, в интерлюдии также как и в грации
Оказывается увеличивать надо не на Size который записан в первых 2х байтах а на Size-2, т.е. длина пакета не учитывая длины первых двух байт с данными о размере.
+ ко всему прочему ток щас заметил что у меня некоторые пакеты приходят слипшимися, приеду с дачи буду править.