Вернуться   CoderX :: Forums > Lineage II > L2PacketHack
Войти через OpenID

L2PacketHack Форум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела! Обсуждение багов Lineage ЗАПРЕЩЕНО!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 25.05.2016, 20:23   #1
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от Linux Посмотреть сообщение
не могу понять, один и тот же код, а результат разный
Вроде работа со строками по разному организована.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 26.05.2016, 13:53   #2
Новичок
 
Аватар для Linux
 
Регистрация: 17.05.2016
Сообщений: 14
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Linux пока неопределено
По умолчанию

Цитата:
Сообщение от NLObP Посмотреть сообщение
Вроде работа со строками по разному организована.
единственное преобразование для D2010:
Код:
  SockAddr.sin_addr.S_addr := inet_addr( PAnsiChar( AnsiString( LS_HOST ) ) );
и совсем неадекватный результат:

Оффтоп

мне уже кажется, что с этими непонятками я просто хожу по замкнутому кругу, буксую на месте

UPD1
кто является автором примера la2_client_emu.rar?

UPD2
Добавлено через 17 часов 26 минут
Расширил логирование в la2_client_emu и судя по логу программа не может дойти до следующих методов: LS_ServerList() и LS_PlayOk().
После последнего успешного выполнения метода RequestServerList() в методе WMSOCK_RS_EVENT(Msg) происходит WSAECONNABORTED (#10053).
Подскажите в чем может быть проблема? Что может разрывать совет?

Текст лога:
Оффтоп

Последний раз редактировалось Linux, 26.05.2016 в 13:55. Причина: Добавлено сообщение
Linux вне форума   Ответить с цитированием
Старый 26.05.2016, 16:05   #3
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Linux, для корректного переноса проекта на поддерживающие юникод делфи нужно также заменить PChar на PAnsiChar, Char на AnsiChar и в целом проанализировать использование строк и символов в проекте
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Старый 31.05.2016, 21:34   #4
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от Linux Посмотреть сообщение
В методе LS_LoginOk есть запись двух ключей SessionKey1_1 и SessionKey1_2 в секцию пакета для RequestServerList().
SessionKey приходит от сервера и его же нужно отправлять серверу в следующем пакете без каких-либо изменений.
Главное чтобы BF-шифрование верно отрабатывало.

к верно посоветанному
Цитата:
Сообщение от supernewbie Посмотреть сообщение
нужно также заменить PChar на PAnsiChar, Char на AnsiChar
могу добавить: заменить "string" на "AnsiString" и "Chr" на "AnsiChar" (об этом многие забывают, что может приводить к ошибкам). Можно тупо прогнать полную замену без анализа (но с опцией "только целые слова"), должно заработать.

PS. По статьям: зайди к нам на сайт, там на главной странице ссылки есть.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
За это сообщение ScythLab нажился спасибкой от:
Старый 01.06.2016, 13:04   #5
Новичок
 
Аватар для Linux
 
Регистрация: 17.05.2016
Сообщений: 14
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Linux пока неопределено
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
PS. По статьям: зайди к нам на сайт, там на главной странице ссылки есть.
Хочется поблагодарить следующих людей: TechnoWiz@rd, за базовую информацию для понимания протокола Lineage, а также KyberPrizrak за доработку исходной статьи.

Т.е. лучше изучать по статье KyberPrizrak? Его статья более расширенная? На глаз пока сложно определить отличия

UPD1
Еще один момент смущает: статья KyberPrizrak исправляющая баги (со слов KyberPrizrak) статьи TechnoWiz@rd имеет последнее редактирование 06.07.2007, в то время как статья TechnoWiz@rd была отредактирована 23.11.2007

Какой же версии описания протокола стоит доверять больше?

Последний раз редактировалось Linux, 01.06.2016 в 15:54.
Linux вне форума   Ответить с цитированием
Старый 03.06.2016, 16:33   #6
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от Linux Посмотреть сообщение
Т.е. лучше изучать по статье KyberPrizrak? Его статья более расширенная? На глаз пока сложно определить отличия
это очень давно было, но на сколько помню у KyberPrizrak более верный протокол описан (как и по последовательности пакетов, так и по их содержимому)

Цитата:
Какой же версии описания протокола стоит доверять больше?
доверять можно только самостоятельно проснифанному трафику, т.к. часть очень важных пакетов (RequestAuthLogin, NetPing, s:8D) могут меняться от сервера к серверу

Цитата:
Сообщение от Linux Посмотреть сообщение
По собранной статистике можно понять поведение двух разных подключений? Где в моем случае была допущена ошибка, из-за чего до Game-Server так и не доходила программа?
у тебя пакет RequestAuthLogin значительно меньше, чем в оригинальном клиенте, расшифровывай пакет, смотри что внутри, возможно поймешь, что нужно передавать
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Старый 03.06.2016, 18:23   #7
Новичок
 
Аватар для Linux
 
Регистрация: 17.05.2016
Сообщений: 14
Сказал Спасибо: 5
Имеет 0 спасибок в 0 сообщенях
Linux пока неопределено
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
у тебя пакет RequestAuthLogin значительно меньше, чем в оригинальном клиенте, расшифровывай пакет, смотри что внутри, возможно поймешь, что нужно передавать
1.1) А не подскажете чем расшифровывать или по какому алгоритму?
В проекте идет метод BlowFish.pas (by xkor) с комплектом методов:
Код:
  procedure Init(const Key1:String);
  procedure DecodeBlock(var data:Block);
  procedure EncodeBlock(var data:Block);
  procedure bfDecode(var data:array of Char; len: Integer);
  procedure bfEncode(var data:array of Char; len: Integer);
и пачка методов из вспомогательного юнита:
Код:
  procedure AddCheckSumm(var data: array of byte; Len: Integer);
  function RepairKey(key: String): String;
  function RSAEncrypt(a,p,rsakey: String): String;
  function AntiXOR(s: String): String;
Что из этого подойдет?

1.2) А зачем пакет расшифровывать если пакет идет на сервер?

2) Добавил сравнительную таблицу пакетов (compare_LS.png), учитывая что первые 2 байта это размер, с 3-го кодируются данные, как по размеру пакета понять какой это пакет: Init, RequestAuthLogin и т.д.??
Миниатюры
Нажмите на изображение для увеличения
Название: compare_LS.png
Просмотров: 39
Размер:	171.7 Кб
ID:	2968  
Linux вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 23:43.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!