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

Пакеты Форум о форматах отдельных пакетов или групп пакетов

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 20.04.2010, 04:25   #1
Новичок
 
Аватар для Marfey
 
Регистрация: 14.04.2008
Сообщений: 19
Сказал Спасибо: 7
Имеет 3 спасибок в 3 сообщенях
Marfey
По умолчанию Пакет KeyPacket

Доброе время суток...

Хочу сделать чтобы скрипт разрешал логинеться только определенным логинам.
Для этого отлавливаю пакет AuthLogin из этого пакете проверяю логин и если ему доступ разрешен, то пропускаю этот пакет дальше на логин сервер.

Код:
var
ProtocolVersion: string;

begin
 if pck='' then exit; 

   if FromServer then
   case pck[1] of   
   
   // Ловим пакет KeyPacket от сервера  чтобы он не дублировался
   #$2E: begin
      
   pck:='';
   
   end;
   end;


 
   if FromClient then 
  case pck[1] of



 //Перехватываем пакет от клиента с протоколом
   #$0E: begin
  // Записывам ProtocolVersion в переменную
  ProtocolVersion:=pck;
  
   //На пакет  ProtocolVersion от клиента отвечаем ему пакетом KeyPacket
    // Вот тут проблема у меня не могу разобраться с этим пакетом какой ключ писать 
    // вот сюда  WriteQ(0) в остальных вроде все правильно
    // вот такой пакет приходит от сервера если на него отправлять   
    //пакет ProtocolVersion
   //2E 01 26 6E 69 A3 47 FB 9C BA 01 00 00 00 01 00 00 00 00 00 00 00 00
   // Если ему отправлять такой же пакет то клиент его не принимает

   buf:=#$2E;
   WriteC(1);
   WriteQ(0);
   WriteD(1);
   WriteD(1);
   WriteC(0);
   WriteD(0);
   SendtoClient;
      
   pck:=''; 
           
   end;
    
   //Пакет AuthLogin
     #$2B: begin
      if ReadS(2) = 'Логин которому разрешено заходить' then
    begin
     //Отсылаем на сервер ProtocolVersion
     buf:=ProtocolVersion;
     SendToServer;
     
     //Отсылаем на сервер пакет AuthLogin
     buf:=pck;
     SendToServer;
    end 

    
    else begin    
    //шлем логаут на клиента если ему не разрешено заходить                               
     buf:=#$84; 
     SendToClient;  
    end;

     //Удаляем пакет чтобы он не дублировался
      pck:='';                          
   end;
   end;
end.
Помогите пожалуйста разобраться с пакетом KeyPacket

Последний раз редактировалось Marfey, 21.04.2010 в 01:54.
Marfey вне форума   Ответить с цитированием
Старый 20.04.2010, 21:26   #2
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Цитата:
Сообщение от Marfey Посмотреть сообщение
Для этого отлавливаю пакет AuthLogin из этого пакете проверяю логин и если ему доступ разрешен, то пропускаю этот пакет дальше на логин сервер.
Насколько я знаю пакетхак не работает с логин сервером, или не?

И вообще вы сильно усложняете себе жизнь.
Смысл вам блокировать пакеты KeyPacket ProtocolVersion, а потом отправлять их. Пусть клиент и сервер сами с ними работают как им захочется, вам же только проверить логин надо, а логин передается в пакете (который идет к ГЕЙМ серверу, а не к логин серверу) RequestAuthLogin. Значит просто в теле скрипта пишем код
Код:
if FromClient and pck[1]=#$00 then //тут идентификатор RequestAuthLogin, не помню какой именно, а пакетхака под рукой нету чтобы глянуть.
if ReadS(2) <> 'Логин которому разрешено заходить' then 
pck:=''; //тупо блокируем пакет и дальше не войти, ну или шлем логаут.
А еще можно средствами самого пакетхака
Код:
if ConnectName<>'ник чара которому разрешено заходить' then pck:='';
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
Старый 21.04.2010, 01:52   #3
Новичок
 
Аватар для Marfey
 
Регистрация: 14.04.2008
Сообщений: 19
Сказал Спасибо: 7
Имеет 3 спасибок в 3 сообщенях
Marfey
По умолчанию

[quote=J-Fobos;84647]Насколько я знаю пакетхак не работает с логин сервером, или не?
QUOTE]

Работает).

Если не перехватывать пакеты ProtocolVersion и KeyPacket, а только работать с пакетом AuthLogin, то все замечательно работает, но если логину через скрипт запрещено заходить на сервер (а у него например стоит делай захода 1 минута), то каждую минуту он будет слать на сервер пакет ProtocolVersion, а дальше будет молчание, мне кажеться это палевно и админы могут по IP потом блокирнуть.
Marfey вне форума   Ответить с цитированием
Старый 21.04.2010, 02:47   #4
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Это я так тонко намекал что НЕ работает с логин сервером

Думаете просто так порт 2106 (это порт логин сервера) по умолчанию стоит в строке "не игровые порты" ? В этом можно легко убедится: убрать порт из исключений и установить опцию "не закрывать вкладки при закрытии соединений", тогда увидите связь с логин сервером.
А пакеты ProtocolVersion и KeyPacket для связи геймсервера и клиента. И исходя из того что вы сейчас написали получается, что скрипт в шапке темы бесполезный - попытка входа все равно будет зафиксирована на логин сервере.

Ну а по поводу "это палевно", частично вы правы, в логах будет отображаться что соединение разорвалось из за того что клиент не ответил, но я ж не знал что делай захода будет 1 минута, потому и написал pck:='', хотя и написал в коментах "или шлем логаут"
С логаутом лог сервера будет чист.
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
Старый 21.04.2010, 03:27   #5
Новичок
 
Аватар для Marfey
 
Регистрация: 14.04.2008
Сообщений: 19
Сказал Спасибо: 7
Имеет 3 спасибок в 3 сообщенях
Marfey
По умолчанию

Цитата:
Сообщение от J-Fobos Посмотреть сообщение
Это я так тонко намекал что НЕ работает с логин сервером

Думаете просто так порт 2106 (это порт логин сервера) по умолчанию стоит в строке "не игровые порты" ? В этом можно легко убедится: убрать порт из исключений и установить опцию "не закрывать вкладки при закрытии соединений", тогда увидите связь с логин сервером.
А пакеты ProtocolVersion и KeyPacket для связи геймсервера и клиента. И исходя из того что вы сейчас написали получается, что скрипт в шапке темы бесполезный - попытка входа все равно будет зафиксирована на логин сервере.

Ну а по поводу "это палевно", частично вы правы, в логах будет отображаться что соединение разорвалось из за того что клиент не ответил, но я ж не знал что делай захода будет 1 минута, потому и написал pck:='', хотя и написал в коментах "или шлем логаут"
С логаутом лог сервера будет чист.
Сори я заранее (до того как начал писать скрипт) убрал порт 2106 из не игровых и и установил галку "не закрывать вкладку при закрытии соединения".
И все это время не мог понять почему открываться две вкладки при соединение и в одной вкладке идут какие-то левые пакеты, а в другой нормальные.
Теперь я понял что одна была на логин сервер (где левые пакеты, т.е их не распознает l2phx), а вторая это с гейм сервером.
Marfey вне форума   Ответить с цитированием
Старый 21.04.2010, 19:50   #6
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Специально проверил на локальном сервере. Когда блокировать пакет соединение висит, но в логах чисто. Когда происходит повторный заход в игру в логах выводится информация что соединение разорвано и создается новое. А если посылать пакет на логаут то соединение разрывается и в логах ничего не отображается. Так что можно без опаски посылать пакет на логаут при неверном логине. И если не секрет, а какой смысл в блоке логинов? (если для защиты скрипта от других пользователей, то удалением этих строк скрипт будет работоспособен)
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
За это сообщение J-Fobos нажился спасибкой от:
Старый 22.04.2010, 03:06   #7
Новичок
 
Аватар для Marfey
 
Регистрация: 14.04.2008
Сообщений: 19
Сказал Спасибо: 7
Имеет 3 спасибок в 3 сообщенях
Marfey
По умолчанию

Цитата:
Сообщение от J-Fobos Посмотреть сообщение
И если не секрет, а какой смысл в блоке логинов?
Отписал в личку.
Marfey вне форума   Ответить с цитированием
За это сообщение Marfey нажился спасибкой от:
Старый 06.05.2010, 08:27   #8
Местный
 
Аватар для Xen
 
Регистрация: 02.05.2010
Сообщений: 168
Сказал Спасибо: 9
Имеет 33 спасибок в 18 сообщенях
Xen пока неопределено
По умолчанию

А я с дешифрацией ид пакета, когда он меняется каждую сессию, не могу разобраться, плак плак

При беглом осмотре видно, что ты сам же запрещаешь отправлять пакеты этого типа, возможно дело в этом иф
Код:
if FromServer then
   case pck[1] of   
   
   // Ловим пакет KeyPacket от сервера  чтобы он не дублировался
   #$2E: begin
      
   pck:='';
   
   end;
   end;
Если это для бота, то палевно, т.к. бот очень часто стучится и может получить по башке большим баном. Нужно в самом боте сделать делей к коннекту, т.е. прикрутив к нему таймер в скрипте, и запретить отправлять любые пакеты, вкл лс
J-Fobos предложил хорошее решение.

Последний раз редактировалось Xen, 06.05.2010 в 08:58.
Xen вне форума   Ответить с цитированием
Старый 06.05.2010, 20:38   #9
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Xen, пакетхак не работает с лс, так что "запретить отправлять любые пакеты, вкл лс" не получится. И тема уже решилась, автор прекрасно реализовал нужные ему вещи (мы в личке пообщались).
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Пакеты



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

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


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

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

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