Прив всем. Пишу снифер для l2 от нечено делать (скрин тут
)
но застрял на шифровании пакетов .
Если я правильно понял пакеты XOR`ятся ключем, который приходит в KeyInit (16 байт).
Пытаюсь декодировать пакет ф-цией с л2 сервера (передаю массив байт - 2 байта размера пакета)
но правильно декодируются только первые 8 байт. )
но застрял на шифровании пакетов .
Если я правильно понял пакеты XOR`ятся ключем, который приходит в KeyInit (16 байт).
Пытаюсь декодировать пакет ф-цией с л2 сервера (передаю массив байт - 2 байта размера пакета)
PHP код:
<?php
public byte[] decrypt(byte[] raw, final int offset, final int size)
{
if(!_isEnabled) {
return null;
}
int temp = 0;
for(int i = 0; i < size; i++)
{
int temp2 = raw[offset + i] & 0xFF;
raw[offset + i] = (byte) (temp2 ^ _inKey[i & 15] ^ temp);
temp = temp2;
}
int old = _inKey[8] & 0xff;
old |= _inKey[9] << 8 & 0xff00;
old |= _inKey[10] << 0x10 & 0xff0000;
old |= _inKey[11] << 0x18 & 0xff000000;
old += size;
_inKey[8] = (byte) (old & 0xff);
_inKey[9] = (byte) (old >> 0x08 & 0xff);
_inKey[10] = (byte) (old >> 0x10 & 0xff);
_inKey[11] = (byte) (old >> 0x18 & 0xff);
return raw;
}
Может кто подскажет что не так делаю ?
Вызов метода
PHP код:
<?php
ByteBuffer buffer = ByteBuffer.allocate(65 * 1024).order(ByteOrder.LITTLE_ENDIAN);
buffer.put(tcp.getPayload());
byte[] decrypt = crypt.decrypt(buffer.array(),buffer.position(),size);