Страница 2 из 15
Добавлено: Ср мар 21, 2007 2:38 pm
Asacura
дайте вариантик доброму челвоеку)
Добавлено: Ср мар 21, 2007 2:48 pm
kLabMouse
Обясню технологию как оно делается.
1) Нужен последний клиент подконектить к посейдону, повесить на него ВПЕ.
2) Нужен последний пакет-екстрактор от ВЦЛ. Здесь есть одно НО: пакет-екстрактор тот норм пашет только в лине, так что кто здеалет буду благодарен.
3) Нужен старый екзешник, и новый.
4) Берём старую екзешку и генерируем список пакетов без сортирования
5) Берём новую екзеху и генерируем список пакетов без сортирования
6) Сравниваем текстовые файлы результатов (4) и (5).
7) Сохраним результат (6) в формате: перфикс_старый длинна_старая -> префикс_новый длинна_новая
8 ) Смотрим в src\Network\Send\ServerType13.pm, выделяем какие префиксы (старые) нам извесны (столбец 1 результата (7)).
9) добавляем данные в результат (7) таким образом: перфикс_старый длинна_старая -> префикс_новый длинна_новая : название_функции
10) Теперь мы знаем как они поменяли пакеты, точнее какие, и с чего они будут начинатся.
11) Идём выпьем пива. Треть дела зделано.
12) Подключаем новую екзеху к посейдону (как, ищите в софте).
13) Пока незалогинились, вешаем ВПЕ
14) логинимся: юзер poseidon пароль poseidon
15) Теперь методом проб и ошибок пытаемся словить определённые пакеты, префиксы которых мы получили в результате (9), и выделяем полезную нагрузку в них.
16) Опционально: можем забацать перловый код для каждого пакетика. Или кто на перле не умеет, просто выставляем здесь в формате: XX XX YY YY XX XX итд.
Добавлено: Ср мар 21, 2007 2:55 pm
zasada
ээээээ
Ну буду пытаться)
Хотя 11 пункт я уже выполнил,так что осталось совсем немного доделать)
Добавлено: Ср мар 21, 2007 2:57 pm
Lims
Ну вот попробую написать что понял из общения с Джерри)
было это дело 7марта.
Первый пакет который начинал не правильно послыть бот был "логин к мап серверу"
Выглядел он тогда так
11 29 Send (11- номер в впе. 29-размер пакета)
0000 8C 00 00 00 00 C6 67 05 00 94 0C 0A 00 00 7B 4A ......g.......{J
0010 00 00 00 00 00 00 B3 4A AC 04 01 00 00
А вот от клиента пакет.
11 37 Send
0000 F3 00 61 62 00 94 0C 0A 00 C6 67 05 00 00 FC 66 ..ab......g....f
0010 00 00 66 64 62 34 30 65 66 66 00 C2 3B E0 00 01 ..fdb40eff..;...
0020 63 31 61 33 00 c1a3.
Править нам нужно пакет который найдем поиском на запрос 8C(это вроде как его заголовок?) в ServerType13
смотрим изменения и видим что изменился "заголовок пакета".
$msg = pack("C*", 0x8C, 0) . pack("x3") . $accountID . $charID . pack("x1") . $sessionID . pack("x4") . pack("V", getTickCount()) . pack("C*", $sex) . pack("x2");
Правим заголовок $msg = pack("C*", 0xF3, 0)
как сказал джерри те байты которые мы не знаем - это пустышки. прописываются они как pack("x3")(вместо 3 нужное количество байт) например 61 62 00 это пустышка
C6 67 05 00 это $accountID
94 0C 0A 00 это $charID
соответственно будет $msg = pack("C*", 0x8C, 0) . pack("x3") . $charID . $accountID . и тд
в итоге после всех исправлений вышел вот такой пакет
$msg = pack("C*", 0xF3, 0) . pack("x3") . $charID . $accountID . pack("x1") . $sessionID . pack("x9") . pack("V", getTickCount()) . pack("C*", $sex) . pack("x5");
с остальными также.
(дальше мои познания в этом нелегком деле заканчиваются)
Добавлено: Ср мар 21, 2007 2:58 pm
darzanebor
Дайте старый ехешник, ссылку на ВПЕ и Пакет экстрактор...
Добавлено: Ср мар 21, 2007 3:01 pm
piroJOKE
Да без экстрактора делайте. Экстрактор это "для ленивых". ))
Я им например вообще никогда не пользовался.
Добавлено: Ср мар 21, 2007 3:19 pm
japplegame
А я и посейдоном никогда не пользовался. Я вообще ничем не пользовался. Врубаю дебаг-режим, XKore 1 и читаю обновленные пакеты.
Добавлено: Ср мар 21, 2007 3:24 pm
zasada
Мышуль.Огромная к тебе просьба!
В своей технологии напиши программы которые требуются.
Например что за прога посейдон?
А также как сгенерировать пакеты из екзешника?Что для этого требуется?
Добавлено: Ср мар 21, 2007 3:28 pm
Lims
вот чет нахимичил. но не знаю....
$msg = pack("C*", 0x93, 01) . pack("x3") . $accountID . $charID . pack("x4") . $sessionID .pack("x6") . pack("C*", $sex) . pack("V", getTickCount()) . pack("x1");
ответ приходет как и клиенту.
приходет ответ в виде $accountID
а вот потом клиенту еще идет ответ с перечислением возможных скиллов. а боту не идет((
Добавлено: Ср мар 21, 2007 4:04 pm
piroJOKE
japplegame писал(а):А я и посейдоном никогда не пользовался. Я вообще ничем не пользовался. Врубаю дебаг-режим, XKore 1 и читаю обновленные пакеты.
Посейдон хорош тем, что ты можешь начинать работы еще до того, как оф-сервер будет включен.
Добавлено: Ср мар 21, 2007 4:08 pm
Lims
АП!
Пирожок! Пожалуйста подскажи стоит ли насиловать дальше этот пакет или я его правильно сделал? просто у клиента идет ответ в 4 байта (аккаунт ид) после чего сразуже идет ответ со всем скиллами. стоит ли ожидать что бы боту шло 2 ответа на 1 этот пакет?
Добавлено: Ср мар 21, 2007 4:17 pm
Eddga
До патча в коре 5506 работал Xkore 1?
Добавлено: Ср мар 21, 2007 4:24 pm
piroJOKE
(2)
japplegame писал(а):А я и посейдоном никогда не пользовался. Я вообще ничем не пользовался. Врубаю дебаг-режим, XKore 1 и читаю обновленные пакеты.
А еще посейдон похош тем, что он очень красиво подписывает текстом что-где в пакете. Ну очень красиво. Попробуй!
Добавлено: Ср мар 21, 2007 4:30 pm
Lims
Eddga
в 5455 точно работал
piroJOKE
Можешь примерно расписать как посейдон запускать?) и надо ли чтонибудь качать еще кроме того посейдона который лежит в боте
Добавлено: Ср мар 21, 2007 4:37 pm
piroJOKE
клиент + wpe + посейдон + моск, больше ничего.
зы: в посейдоне какая-то часть функций криво реализована,
всё-таки 1...2 пакета надо подстраивать на натуре.