gattsu
26.01.2016, 06:08
L2J_Server/NewCrypt.java at develop · L2J/L2J_Server · GitHub (https://github.com/L2J/L2J_Server/blob/develop/src/main/java/com/l2jserver/util/crypt/NewCrypt.java)
и все остальные производные сборки. Код никто не смотрит.
Код:
public static void encXORPass(byte[] raw, final int offset, final int size, int key)
{
int stop = size - 8;
int pos = 4 + offset;
int edx;
int ecx = key; // Initial xor key
while (pos > 8 & 0xFF);
raw[pos++] = (byte) (edx >> 16 & 0xFF);
raw[pos++] = (byte) (edx >> 24 & 0xFF);
}
raw[pos++] = (byte) (ecx & 0xFF);
raw[pos++] = (byte) (ecx >> 8 & 0xFF);
raw[pos++] = (byte) (ecx >> 16 & 0xFF);
raw[pos] = (byte) (ecx >> 24 & 0xFF);
}
Ковырял. Увидел. Посмеялся. Загрустил.
Веселый участок кода, с++ такое бы не простил. Мне кажется, что чрезмерная автоматизация множества процессов, в данной ситуации работа с памятью, делает из людей дураков.
int stop = size - 8; offset потеряли
ПС Понятно, что с нуля всегда, и не перекрывает никакие данные, но все же. Забавная фигня обычно из-за таких глупых ошибок мучаешься 2 недели, в поисках при краше системы на один из миллиона случаев. Но когда находишь хочешь себе руки отрезать хД
и все остальные производные сборки. Код никто не смотрит.
Код:
public static void encXORPass(byte[] raw, final int offset, final int size, int key)
{
int stop = size - 8;
int pos = 4 + offset;
int edx;
int ecx = key; // Initial xor key
while (pos > 8 & 0xFF);
raw[pos++] = (byte) (edx >> 16 & 0xFF);
raw[pos++] = (byte) (edx >> 24 & 0xFF);
}
raw[pos++] = (byte) (ecx & 0xFF);
raw[pos++] = (byte) (ecx >> 8 & 0xFF);
raw[pos++] = (byte) (ecx >> 16 & 0xFF);
raw[pos] = (byte) (ecx >> 24 & 0xFF);
}
Ковырял. Увидел. Посмеялся. Загрустил.
Веселый участок кода, с++ такое бы не простил. Мне кажется, что чрезмерная автоматизация множества процессов, в данной ситуации работа с памятью, делает из людей дураков.
int stop = size - 8; offset потеряли
ПС Понятно, что с нуля всегда, и не перекрывает никакие данные, но все же. Забавная фигня обычно из-за таких глупых ошибок мучаешься 2 недели, в поисках при краше системы на один из миллиона случаев. Но когда находишь хочешь себе руки отрезать хД