и да, дарк, по сути ОГ, но без возможности чего либо кроме как писать в чат. Пишу в софтину то я для себя, чтоб пока еду с работы на работу сидеть болтать с ги, учитывая что самое интересное пропускаю именно когда еду с работы))) Прога на что-то серьёзное не расчитана, тупо ловить 1 - 2 пакета, и отправлять 1-2 пакета (не считая тика пинг понга авторизации и тд). Вот и всё))) поэтому хочется получить небольшую помощь :)
Сервак 2.1.1, старый рус оф, защита только на серве, от дюпов, клиент-серверной защиты нету... поэтому по идее под такой серв должно быть не самый геморрой писать... а ведь всё равно загеморроился)))
Добавлено через 5 минут
Там в ла2 это извращение, там блоуфиш + рса. и в итоге встал тоже на шифровании логина и пароля, но оно там дальше чем в рфке, в рфке это почти самое начало
А по поводу того как я делаю строку с логином и пассом в рф (тестирую сначала на си шарпе, потом буду переписывать под андрюшу):
Код:
public static byte[] CryptLoginPassword(string login, string passowrd, byte aPlusKey, byte aXORKey) {
int maxPasswordLength = 13;
byte MyByte = 0;
byte[] resylt1 = new byte[13];
byte[] resylt2 = new byte[13];
for (int i = 0; i < maxPasswordLength; i++) {
if (i < login.Length) {
MyByte = OrdToHex(ORD(login[i]));
Console.Write("\n"+MyByte+"\n");
} else {
MyByte = 0;
}
MyByte = MyByte + aPlusKey;
MyByte = MyByte ^ aXORKey;
resylt1[i] = Convert.ToByte(MyByte);
}
for (int i = 0; i < maxPasswordLength; i++) {
if (i < passowrd.Length) {
MyByte = OrdToHex(ORD(passowrd[i]));
} else {
MyByte = 0;
}
MyByte = MyByte + aPlusKey;
MyByte = (MyByte) ^ (aXORKey);
resylt2[i] = Convert.ToByte(MyByte);
}
byte[] resultfinal = new byte[26];
resylt1.CopyTo(resultfinal, 0);
resylt2.CopyTo(resultfinal, resylt1.Length);
return resultfinal;
}
В 2.1.1 (это самый древний ап, напомниаю) ключ приходит приблизительно такой: 0x07 0x00 0x15 0x0D 0x04 0xFF 0x03
Из него я беру только 5 и 6 байты, 04- это плюс ключ, фф - это ключ для ксора... если я правильно всё понял. однако не понятно нужно ли использовать 7 байт. Во всех статьях 7 байт не используется, а в впф он совмещён с 6 в дворд.
Судя по тому что ты сказал, дарк, я не правильно вообще всё сделал... :(
Добавлено через 12 минут
по идее в результате я должен получить пакет вот такой:
1F 00 размер (не меняется)
15 03 тип пакета
68 75 6E 76 7D 07 07 07 07 07 07 07 07 - логин (5 символов)
74 7E 68 75 7B 7B 7C 3E 3E 07 07 07 07 - пароль (9 символов)
00 - завершающий нулевой байт (корейцы любят траву)
однако даже близко не могу приблизиться... у меня логин и пароль не хотят получаться такими же (я жёстко забил логин и пароль, и ключи в константы для тестов).
Добавлено через 24 минуты
А какашки в ответ на неправильный логин пароль мне серв шлёт такие:
0E 00 15 04 1C CC CC CC CC 00 00 00 00 CC