Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками
Вход или Регистрация
и все остальные производные сборки. Код никто не смотрит.
Код:
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 < stop)
{
edx = raw[pos] & 0xFF;
edx |= (raw[pos + 1] & 0xFF) << 8;
edx |= (raw[pos + 2] & 0xFF) << 16;
edx |= (raw[pos + 3] & 0xFF) << 24;
ecx += edx;
edx ^= ecx;
raw[pos++] = (byte) (edx & 0xFF);
raw[pos++] = (byte) (edx >> 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 недели, в поисках при краше системы на один из миллиона случаев. Но когда находишь хочешь себе руки отрезать хД