L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
Вступление
Хочу устроить флеш-моб на сервере, так сказать синематик-шоу на тысяч 5 персонажей
Создавать персонажей, покупать у нпс нужные расходники, бафаться и идти на ивент по заданному маршруту в ручном режиме это очень напряжно для такого количества персонажей. Хочется потрудиться над сценарием для одного персонажа и прогнать его для всех.
План мероприятий
1) При помощи L2PH отловить нужные моей программе клиент/серверные пакеты.
2) Консольная программа (на Delphi) воспроизводит набор пакетов в заданной последовательности
Необходимые действия в игре
1) ЛогИн/ЛогОфф на сервер *) Выбор сервера и коннект на сервер
2) Создание персонажа (ник, раса, класс, пол и т.д.)
3) Релог персонажа по имени
4) Движение (хотьба/бег) в точку с указанными координатами (X,Y,Z)
5) Использование телепорта (выбор нужного пункта в меню ГК)
6) Покупка определенного предмета у НПС
7) Получение бафа у определенного НПС
8) Получение сведений о количестве определенного предмета в инвентаре
9) Отправка личного сообщения другому персонажу, с указанием ссылки на предмет в инвентаре (шифтинг)
Исходные данные
- сервер High Five, платформа PTS
- версия L2PH имеющаяся в наличии - 3.5.34.176
Вопросы
1) Возможно ли в принципе реализовать такую задумку?
2) Позволит ли L2PH на пакетном уровне отловить все пакеты взаимодействий, что я описал в разделе "Необходимые действия в игре"?
2) Какие трудности могут встретиться на пути реализации?
Последний раз редактировалось Linux, 18.05.2016 в 17:57.
Я из поиска нашел ваше упоминание о la2_client_emu, где говорилось что этот пример позволяет авторизоваться на Логин-Сервер L2. Собрал приложение на D7, и, за не имением документации на этот пример, вопрос: представленный лог о выполнении является ли корректным? Как понять работает ли он в целом?
Код:
WinSocket Library has been initialised
Connected to Remote Server
Server MSG, Length: 186 (0xBA)
-------------------------------------------------------
RSA Key changed
BlowFish key changed
Client MSG, Length: 42 (0x2A)
-------------------------------------------------------
Server MSG, Length: 42 (0x2A)
-------------------------------------------------------
Client MSG, Length: 178 (0xB2)
-------------------------------------------------------
Server MSG, Length: 66 (0x42)
-------------------------------------------------------
Login Ok
Client MSG, Length: 34 (0x22)
-------------------------------------------------------
RS was Disconnected
RS disconnected
смущает меня что сразу же происходит и дисконнект
может кто предоставить полный листинг рабочего коннекта данного примера? и если можно с указанием сервера Ла2, чтобы можно было проверить самолично
UPD1:
Кажется сам понял почему происходит дисконнект, этот пример только для взаимодействия с Логин-Сервером, а чтобы попасть в игровой мир нужно допилить программу для взаимодействия с Гейм-Сервером (добавить IP/PORT ГС, порядок обмена пакетами К-ГС). Вопрос: верно ли мое предположение насчет работы данного примера только с ЛС? т.к. в коде я видел процедуры по выбору игровых серверов и получении информации о них, а значит по идее программа должна заходить так далеко, или это только объявления таких процедур? пока еще так глубоко не успел копнуть исходники
UPD2:
По логике вещей я понимаю, что Логин-Сервер на мой клиентский запрос (логин+пасс) должен мне сформировать уникальный ID, который мне понадобиться для общения с Гейм-Сервером. Вопрос: что является таким ID (полученным пакетом) и как правильно его нужно будет интегрировать в последующие пакеты для общения с Гейм-Сервером?
Последний раз редактировалось Linux, 18.05.2016 в 17:58.
мне уже кажется, что с этими непонятками я просто хожу по замкнутому кругу, буксую на месте
UPD1
кто является автором примера la2_client_emu.rar?
UPD2 Добавлено через 17 часов 26 минут
Расширил логирование в la2_client_emu и судя по логу программа не может дойти до следующих методов: LS_ServerList() и LS_PlayOk().
После последнего успешного выполнения метода RequestServerList() в методе WMSOCK_RS_EVENT(Msg) происходит WSAECONNABORTED (#10053).
Подскажите в чем может быть проблема? Что может разрывать совет?
Скорее всего эти ключи "битые", значения которых получены не подходящим к моему серверу алгоритмом. Подскажите как и чем можно отловить "корректные" ключи или какой алгоритм формирования этих ключей для HighFive хроник?
Linux, для корректного переноса проекта на поддерживающие юникод делфи нужно также заменить PChar на PAnsiChar, Char на AnsiChar и в целом проанализировать использование строк и символов в проекте
Я в принципе так и делал, но что-то все равно проект не стартует на D2010. Я решил пока забить и довести до ума код примера на D7
Последний раз редактировалось Linux, 26.05.2016 в 16:50.
Причина: Добавлено сообщение
Прогнал через WireShark подключение L2.exe и la2_client_emu,
Используемый фильтр: tcp && tcp.port==2106 || tcp.port==7777
Собранная статистика:
1) L2.exe (L2_LS_GS_orig.png)
Для наглядности я подсветил строки с пакетами у которых Len>0, а содержимое пакетов с данными (L2Orig_data.txt) представил в спойлере с указанием номера пакета: Оффтоп
"21", Len=186
0000 ba 00 15 40 5b eb 3f 57 06 fa 97 ff fe e1 5b b8
0010 ee 04 e5 db 05 cc aa 80 bb 07 a7 0b f4 43 d1 ff
0020 b4 b0 b3 14 e9 33 33 47 0a c5 59 d5 fc be a2 9d
0030 0d 5a 6a 04 18 03 6c b0 dd 7f 71 55 73 a4 d3 ad
0040 c3 0c 96 7e 10 4e 1a dd 28 d1 d0 a4 0c cb 67 10
0050 be 4a 3b 4a f1 7f f2 a5 f9 03 e8 a0 93 8b be f9
0060 e5 44 e4 80 ee 10 64 48 b2 82 c6 db 5d be 03 c8
0070 59 67 ce 8f bc 20 51 59 51 28 31 8c 0f fe ce 87
0080 c3 5a 01 b0 5a f3 80 40 5a 23 7b 17 c0 f7 da dd
0090 2f 6d 58 d0 a5 6b 3b 36 2e 03 73 f0 60 be 92 07
00a0 be 09 9d ba 57 99 44 51 b3 10 8d c4 10 2a 56 a7
00b0 fa 6d 3e fc 7e fa 1f dc 32 63
2) L2Connect.exe (L2_LS_GS_L2Connect.png)
Для наглядности я подсветил строки с пакетами у которых Len>0, а содержимое пакетов с данными (L2Connect_data.txt) представил в спойлере с указанием номера пакета:
"23", Len=178
0000 b2 00 4f a6 c1 1d 2b 05 4b 15 73 b7 0e 49 4c 81
0010 03 03 45 4e 52 31 76 2a 2a b1 14 66 6c d7 06 c5
0020 2d ee 33 e7 f5 06 d8 6c 05 fe 33 66 e8 6c 86 2f
0030 12 b9 2f 49 05 f5 3e c8 94 69 74 8c ff 5e 5b f1
0040 5e bc 16 a4 06 21 52 cd 21 26 4b 10 3b 14 88 6c
0050 6c c9 61 4a fe 65 c0 89 7a 87 78 bd b1 0c ad d2
0060 a2 89 56 64 ca 38 52 5d 31 0f 88 1b c8 56 14 38
0070 e2 6c 51 69 7e 46 e5 c4 cc 7f 25 95 93 43 ea 42
0080 43 13 61 3d 12 5f a7 a9 78 7f 9b af 52 91 45 9d
0090 1f dd 0e 43 8b 93 5b 58 90 98 9b af 52 91 45 9d
00a0 1f dd 8f a6 51 0f ed 6b 10 35 9b af 52 91 45 9d
00b0 1f dd
"25", Len=66
0000 42 00 bf d3 e9 0d c8 b8 4e fd 15 e5 81 8a e9 dc
0010 29 2e cb 18 de 9d 19 3b 45 3e 9b af 52 91 45 9d
0020 1f dd 9b af 52 91 45 9d 1f dd 9b af 52 91 45 9d
0030 1f dd 56 8c d5 71 e7 f3 9b 68 10 73 a9 4f e4 bf
0040 81 6a
"27", Len=34
0000 22 00 f6 f3 30 42 83 5d 6c 3c ba ef 64 dc b9 48
0010 51 69 33 90 ca ad ae c4 fb 08 9b af 52 91 45 9d
0020 1f dd
По собранной статистике можно понять поведение двух разных подключений? Где в моем случае была допущена ошибка, из-за чего до Game-Server так и не доходила программа?
Последний раз редактировалось Linux, 03.06.2016 в 14:03.