PDA

Просмотр полной версии : Отключить шифрование или как управлять Walker`ом


Maxno
19.07.2010, 00:09
Написал прогу, полностью перенаправляет авторизацию валкера на мой сервер, но трабла с передачей данных. До тех пор пока я на своём гейм сервере отправляю пакеты валкеру - всё норм шифруется и дешифруется, как только начинаю отправлять чистые пакеты из стороннего соединения шифруя ключём гейм сервера - сразу сбивается шифрация - что может быть? можно у валкера в конфиге как то вообще отключить шифрацию?



Ах да... еще вопрос, как генерируется пакет (Логин сервер) со списком серверов? там походу в конце нужно как то сгенерировать чек сумму а я хз как... мож подскажите? я генерирую пакет так -

function LSP_ServerList: string;
var
packet: TPacket;
i : Integer;
begin
with packet do begin
InitWrite;
WriteB(4); // packet id
WriteB(1); // Server count
WriteB(1); //3+2=5
//for I := 1 to 5 do begin
WriteB(01); // server id
WriteB(127); // ip - 1
WriteB(0); // ip - 2
WriteB(0); // ip - 3
WriteB(1); // ip - 4
WriteD(2110); // Game server Port
WriteB(0); // GS_AGE_LIMIT
WriteB(0); // Is PVP
WriteH(0); // Current online
WriteH(5000); // Max Online
WriteB(1); // Is Online (16 byte)
WriteD(0);
WriteB(1);
//end; // 21 + 5 = 26
Result:=data;
end;
end;

Добавлено через 4 часа 10 минут
Ну что ж, спасибо всем откликнувшимся... пошёл ковырять исходники явы.. :(.. но всё таки если кто то сможет чем помочь - пишите, с меня - спасибок натыкаю...

xkor
19.07.2010, 01:30
procedure AddChecksum(var data; position: Word);
var
i,k:Word;
dt: array[0..0] of Byte absolute data;
begin
k := (position div 4)-1;
for i := 0 to k do
PCardinal(@dt[position])^:=PCardinal(@dt[position])^ xor PCardinal(@dt[i*4])^;
end;

r1se
20.07.2010, 15:40
Ты хочешь чтобы валкер у тебя на сайте верификацию проходил?

правлять чистые пакеты из стороннего соединения шифруя ключём гейм сервера
Зачем ты шифруешь левые пакеты ключем от гейма?

Ах да... еще вопрос, как генерируется пакет (Логин сервер) со списком серверов?
Отснифай любой ПТС сервак,при помощи WP PPC и получить пример ответа,ну и дальше додумаешь;)

Maxno
20.07.2010, 18:14
Со списком серверов - разобрался. Зачем ты шифруешь левые пакеты ключем от гейма? - я беру эти пакеты из левого соединения, но так как мне нужно отправить их валкеру - то нужно шифровать, как будто это от меня(от гейм сервера).

RaRus
21.07.2010, 22:00
А что там с ServerList ? 12 байт мусора в конце, зачем он нужен? :D

xkor
21.07.2010, 22:51
RaRus, что бы было)

Maxno
16.08.2010, 01:45
В общем проблему мне решить не удалось. т.к. плохо знаю java. при составлении идентичных пакетов валкер всёравно писал что у него ошибка выбора сервера, в то время когда клиент линейки (Эпилог) отлично авторизовывался и шёл на нужный мне адрес. в результате чего было предложено убится ап стену или сделать логин сервер из ява аналога. 2й вариант был более по душе, что позволило создать сервер не использующий мускул, и авторизующий абсолютно любой логин с любым паролем. и переадресовывание клиента на адрес 127.0.0.1:2000
Если кому то нужно -выкладываю этот сервер, мне он помог авторизовать валкера, и работать с ним как мне нужно (подключать через клиент что в итоге давало возможность использовать ООГ как ИГ без внедрения в клиент самого валкера).

ЗЫ:Всем спасибо за помощь и советы.

http://www.xmlex.ru/LoginServer(NoUseSQL).rar