Страница 4 из 4

Re: ZiraelRO - zireael.kiev.ua

Добавлено: Чт ноя 26, 2009 3:22 pm
Святой Инквизитор
Народ не подскажите как написать плаг для замены логин пакета в коре?
насколько я понял пакет для логина статичен для каждого чара значит можно легко это обойти...
Оч хочу поботить на серве)

Re: ZiraelRO - zireael.kiev.ua

Добавлено: Чт ноя 26, 2009 3:29 pm
kLabMouse
Святой Инквизитор
Используй Глобы, чтобы перегрузить функцию своей.

Re: ZiraelRO - zireael.kiev.ua

Добавлено: Чт ноя 26, 2009 6:05 pm
Святой Инквизитор
перегружать функцию sub sendGameLogin насколько я понял...

Добавлено спустя 32 минуты 32 секунды:
B исчо я в перле полный профан а в устройстве коры тем более...

Код: Выделить всё

my $sock = new IO::Socket::INET(PeerAddr => '91.192.46.21', PeerPort => 6900, Proto => 'udp', Timeout => 1) or die('could not connect.');
print $sock $packet;
так прокатит если в $packet засунуть пакет?

Добавлено спустя 20 минут 52 секунды:
такс по ходу я понял...
В функции sub sendGameLogin тут:

Код: Выделить всё

my $msg = pack("v1", hex($masterServer->{gameLogin_packet}) || 0x65) . $accountID . $sessionID . $sessionID2 . pack("C*", 0, 0, $sex);
Вместо pack("v1", hex($masterServer->{gameLogin_packet}) || 0x65) . $accountID . $sessionID . $sessionID2 . pack("C*", 0, 0, $sex); просто пакет в хексе?

Re: ZiraelRO - zireael.kiev.ua

Добавлено: Чт ноя 26, 2009 6:32 pm
kLabMouse
Святой Инквизитор
Почитай для начала мануалы по перлу. ищи по общим словам:
glob, glob redefine, pack, unpack

Re: ZiraelRO - zireael.kiev.ua

Добавлено: Чт ноя 26, 2009 7:21 pm
[GM]#05
Кстати, в какой переменной хранится ip текущего сервера, чтобы это значение можно было бы вытянуть из плагина? Такая вообще существует?

Re: ZiraelRO - zireael.kiev.ua

Добавлено: Чт ноя 26, 2009 7:25 pm
Святой Инквизитор
уж извините что пишу сюда но мне нужно куда нибудь писать я так лучше понимаю...

Значит функция pack с ключом v1(1 значит что такое всего одно значение...) пакует стринг значения в формате шорт без знака в системе ВАКС... Ах вот где собака зарыта это она как пакет пакует... $masterServer->{gameLogin_packet} (откуда оно к нам приходит не смог найти :( скажите если не затруднит...).
Вот только не соображу зачем || 0x65...?
Потом идут $accountID, $sessionID, $sessionID2 которые мы получаем при вызове функции (Где её вызывают если не сложно сказать?), а потом ещё один pack в обычный чар(сколько угодно значений) если не ошибаюсь то запакует либо 000 либо 001....

unpack в обратном порядке только возвращает масив... ключи канешн те же...

с glob, glob redefine разбараюсь пока...

[GM]#05

$masterServer->{ip}
думаю обратиться можно $::masterServer->{ip}

Re: ZiraelRO - zireael.kiev.ua

Добавлено: Чт ноя 26, 2009 7:28 pm
kLabMouse
[GM]#05
Сущемствует. ищи по связям.
лучше так: $masterServer->{ip}
желательно $::masterServer->{ip} не использовать.

Re: ZiraelRO - zireael.kiev.ua

Добавлено: Чт ноя 26, 2009 9:20 pm
[GM]#05
к нам приходит не смог найти :( скажите если не затруднит...).
Вот только не соображу зачем || 0x65...?
0x65 стандартный заголовок логин пакета. gameLogin_packet - кастомный заголовок, берется из servers.txt
Где её вызывают если не сложно сказать?
Network/DirectConnection.pm - 506 строка
Потом идут $accountID, $sessionID, $sessionID2 которые мы получаем при вызове функции
мы их получаем из пакета 0069 и они глобальные, нэ?

Re: ZiraelRO - zireael.kiev.ua

Добавлено: Вт окт 26, 2010 3:15 pm
ShVePsss
бле, напридумывают защит, что простому ботоводу приходциа покупать всякий мусор ,по цене приличной бутылки коньяка(