Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Сброс таргета через геодату

-

Баги и читы Lineage 2

- Уязвимости, баги и читы для Lineage 2 в этом разделе

Ответ
 
Опции темы
Старый 05.07.2014, 16:03   #1
-= Чит-Воин =-
 Пехотинец
Аватар для cavern
 
cavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компании
Регистрация: 22.11.2009
Сообщений: 77
Популярность: 1063
Сказал(а) спасибо: 13
Поблагодарили 100 раз(а) в 36 сообщениях
 
По умолчанию Сброс таргета через геодату

Уязвимость заключается в том, что при изменении координаты Z можно чаром "взлететь" в небо или "провалиться" сквозь землю. При этом у самого такого чара пропадают все игроки и нпц, а так же с него сбрасывается таргет. Баг был обнаружен, когда в городе была мирная зона и нажимая в небо чар переходил в General Field с пропажей всех объектов (чаров, нпц) в городе.

Под этот баг я написал скрипт для пакетника, который автоматически сбрасывает таргет. Описание принципа работы: после включения скрипта необходимо вызвать пакет от сервера UserInfo, в котором содержится ObjectID вашего чара. Для вызова UserInfo можно снять/одеть пуху, шмот, использовать баф на себя, сесть на продажу, сделать тп и т.д. После того как будет запомнен ObjectID, скрипту необходимо поймать от клиента пакет ValidatePosition, в котором хранятся координаты и Heading чара. Для этого достаточно сделать шаг или побежать. Клиент отправит MoveBackwardToLocation с последующими ValidatePosition. После этого скрипт автоматически отсылает ValidatePosition с измененной координатой Z, что сбрасывает таргет, если вас выделили, или при нажатии социального действия Victory. Для возврата нормальной координаты Z - социальное действие Greeting.

Вкратце:
1. Запустить скрипт.
2. Одеть/снять оружие или шмот.
3. Сдвинуться с места.
4. Включить социальным действием Victory.

Сам скрипт для хроник Gracia Final:
Код:
const
  // FromClient
  mv = #$0F; // MoveBackwardToLocation
  vp = #$59; // ValidatePosition
  sa = #$56; // RequestActionUse
  // FromServer
  cs = #$4A; // CreatureSay
  ts = #$23; // TargetSelected
  ui = #$32; // UserInfo        
  vl = #$79; // ValidateLocation
   
  high = 5000;
  
  // Name='nick';
  
var 
  ObjectID,act,ToX,ToY,ToZ,OriginX,OriginY,OriginZ,MoveMovement: integer;
  X,Y,Z,Heading,Data: integer;
  IsHidden: boolean; 

procedure SendMsg2(msg:string);
begin
  buf := cs;
  WriteD(0);
  WriteD(15);
  WriteS('');
  WriteS(msg);
  //SendToClientEx(Name);
  SendToClient;
end;

procedure Init; //Вызывается при включении скрипта
begin 
  act := 0;
  ObjectID := 0;    
  IsHidden := false;
  SendMsg2('Снимите или оденьте пуху и сдвиньтесь с места');
end;

procedure Hide;
begin
  buf := vp;
  WriteD(X);
  WriteD(Y); 
  if act=1 then
    WriteD(Z - high)
  else if act=2 then
   WriteD(Z + high)
  else 
    WriteD(Z);
  WriteD(Heading);
  WriteD(Data);
  SendToServer;
  pck := ''; 
  if act=0 then
    IsHidden := false
  else  
    IsHidden := true;
end;

begin

  // If got targeted
  if FromServer and (pck[1]=ts) and (ReadD(6)=ObjectID) then
  begin
    if ReadD(2)<>ObjectID then 
    begin 
      act := 1;
      SendMsg2('Antitarget ON');
      Hide;
    end;  
  end;       
  
  // Get ObjectID from UserInfo packet
  if FromServer and (pck[1]=ui) and (ObjectID=0) then
  begin                      
    ObjectID := ReadD($12);
    SendMsg2('Запомнен ObjectID = '+IntToStr(ObjectID));
  end
  ;
  // New MoveBackwardToLocation
  if FromClient and (pck[1]=mv) and (act>0) then
  begin                      
    // Reading values
    ToX := ReadD(2);
    ToY := ReadD(6);
    ToZ := ReadD(10);
    OriginX := ReadD(14);
    OriginY := ReadD(18);
    OriginZ := ReadD(22);
    MoveMovement := ReadD(26);
    // Making packet
    buf := mv;
    WriteD(ToX);
    WriteD(ToY);
    if act=1 then
      WriteD(ToZ - high)
    else if act=2 then
      WriteD(ToZ + high)
    else
      WriteD(ToZ);
    WriteD(OriginX);
    WriteD(OriginY);
    if act=1 then
      WriteD(OriginZ - high)
    else if act=2 then
      WriteD(OriginZ + high)
    else
      WriteD(OriginZ);
    WriteD(MoveMovement);    
    //SendToServerEx(Name);
    SendToServer;
    pck := '';
  end;                 
  
  // New ValidatePosition
  if FromClient and (pck[1]=vp) then
  begin  
    // Always keep coordinates
    X := ReadD(2);
    Y := ReadD(6);
    Z := ReadD(10);
    Heading := ReadD(14);
    Data := ReadD(18);   
    if act>0 then
    begin
      Hide;
    end;
  end;

  // Block ValidateLocation  
  if FromServer and (pck[1]=vl) then
  begin
    pck := '';
  end; 

  // Social action check
  if FromClient and (pck[1]=sa) then
  begin
    case pck[2] of 
      #$0C:
        begin                
          act := 0;
          SendMsg2('OFF');
          if IsHidden then Hide;   
        end;  
      #$0D:
        begin
          act := 1;
          SendMsg2('Antitarget ON');
          Hide;
        end;                      
      #$0E:
        begin
          act := 2;
          SendMsg2('Air ON');    
          Hide;
        end;
    end;
    pck := '';  
  end;

end.

Последний раз редактировалось cavern; 05.07.2014 в 16:06. Причина: указание хроник
  Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
AnotherTest (05.07.2014), jorik076 (13.07.2014), Razzor (14.07.2014), VLADxx (07.07.2014)
Старый 10.07.2014, 03:36   #2
-= Чит-Воин =-
 Пехотинец
Аватар для cavern
 
cavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компании
Регистрация: 22.11.2009
Сообщений: 77
Популярность: 1063
Сказал(а) спасибо: 13
Поблагодарили 100 раз(а) в 36 сообщениях
 
По умолчанию Re: Сброс таргета через геодату

Переделал пакеты под Interlude.
Проверить работоспособность можно на [Ссылки могут видеть только зарегистрированные пользователи. ]
Код:
const
  // FromClient
  mv = #$01; // MoveBackwardToLocation
  vp = #$48; // ValidatePosition
  sa = #$1B; // RequestActionUse
  // FromServer
  cs = #$4A; // CreatureSay
  ts = #$29; // TargetSelected
  ui = #$04; // UserInfo        
  vl = #$61; // ValidateLocation
   
  high = 5000;
  
  // Name='nick';
  
var 
  ObjectID,act,ToX,ToY,ToZ,OriginX,OriginY,OriginZ,MoveMovement: integer;
  X,Y,Z,Heading,Data: integer;
  IsHidden: boolean; 

procedure SendMsg2(msg:string);
begin
  buf := cs;
  WriteD(0);
  WriteD(15);
  WriteS('');
  WriteS(msg);
  //SendToClientEx(Name);
  SendToClient;
end;

procedure Init; //Вызывается при включении скрипта
begin 
  act := 0;
  ObjectID := 0;    
  IsHidden := false;
  SendMsg2('Снимите или оденьте пуху и сдвиньтесь с места');
end;

procedure Hide;
begin
  buf := vp;
  WriteD(X);
  WriteD(Y); 
  if act=1 then
    WriteD(Z - high)
  else if act=2 then
   WriteD(Z + high)
  else 
    WriteD(Z);
  WriteD(Heading);
  WriteD(Data);
  SendToServer;
  pck := ''; 
  if act=0 then
    IsHidden := false
  else  
    IsHidden := true;
end;

begin

  // If got targeted
  if FromServer and (pck[1]=ts) and (ReadD(6)=ObjectID) then
  begin
    if ReadD(2)<>ObjectID then 
    begin 
      act := 1;
      SendMsg2('Antitarget ON');
      Hide;
    end;  
  end;       
  
  // Get ObjectID from UserInfo packet
  if FromServer and (pck[1]=ui) and (ObjectID=0) then
  begin                      
    ObjectID := ReadD($12);
    SendMsg2('Запомнен ObjectID = '+IntToStr(ObjectID));
  end
  ;
  // New MoveBackwardToLocation
  if FromClient and (pck[1]=mv) and (act>0) then
  begin                      
    // Reading values
    ToX := ReadD(2);
    ToY := ReadD(6);
    ToZ := ReadD(10);
    OriginX := ReadD(14);
    OriginY := ReadD(18);
    OriginZ := ReadD(22);
    MoveMovement := ReadD(26);
    // Making packet
    buf := mv;
    WriteD(ToX);
    WriteD(ToY);
    if act=1 then
      WriteD(ToZ - high)
    else if act=2 then
      WriteD(ToZ + high)
    else
      WriteD(ToZ);
    WriteD(OriginX);
    WriteD(OriginY);
    if act=1 then
      WriteD(OriginZ - high)
    else if act=2 then
      WriteD(OriginZ + high)
    else
      WriteD(OriginZ);
    WriteD(MoveMovement);    
    //SendToServerEx(Name);
    SendToServer;
    pck := '';
  end;                 
  
  // New ValidatePosition
  if FromClient and (pck[1]=vp) then
  begin  
    // Always keep coordinates
    X := ReadD(2);
    Y := ReadD(6);
    Z := ReadD(10);
    Heading := ReadD(14);
    Data := ReadD(18);   
    if act>0 then
    begin
      Hide;
    end;
  end;

  // Block ValidateLocation  
  if FromServer and (pck[1]=vl) then
  begin
    pck := '';
  end; 

  // Social action check
  if FromClient and (pck[1]=sa) then
  begin
    case pck[2] of 
      #$02:
        begin                
          act := 0;
          SendMsg2('OFF');
          if IsHidden then Hide;   
        end;  
      #$03:
        begin
          act := 1;
          SendMsg2('Antitarget ON');
          Hide;
        end;                      
      #$04:
        begin
          act := 2;
          SendMsg2('Air ON');    
          Hide;
        end;
    end;
    pck := '';  
  end;

end.
  Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
jorik076 (13.07.2014), qBattery (13.07.2014), Razzor (14.07.2014)
Старый 13.07.2014, 17:42   #3
-= Чит-Мастер =-
 Рыцарь-защитник
Аватар для Razzor
 
Razzor сломал счётчик популярности :(Razzor сломал счётчик популярности :(Razzor сломал счётчик популярности :(Razzor сломал счётчик популярности :(Razzor сломал счётчик популярности :(Razzor сломал счётчик популярности :(Razzor сломал счётчик популярности :(Razzor сломал счётчик популярности :(Razzor сломал счётчик популярности :(Razzor сломал счётчик популярности :(Razzor сломал счётчик популярности :(
Регистрация: 23.04.2008
Сообщений: 583
Популярность: 26705
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 1,365
Поблагодарили 2,428 раз(а) в 666 сообщениях
Отправить сообщение для Razzor с помощью ICQ Отправить сообщение для Razzor с помощью Skype™
 
По умолчанию Re: Сброс таргета через геодату

Что бы не было лишних вопросов - скрипты активируются, через l2phx. Вопросы по программе лучше задавать на официальном форуме - coderx.ru

По теме, есть вопрос. Раньше был скрипт, который позволял делать ТП в любую точку карты (баловались на с3-с4 так). Возможно ли этот скрип подогнать под GF (или выше)?
  Ответить с цитированием
Старый 13.07.2014, 18:36   #4
-= Чит-Воин =-
 Пехотинец
Аватар для cavern
 
cavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компанииcavern душа компании
Регистрация: 22.11.2009
Сообщений: 77
Популярность: 1063
Сказал(а) спасибо: 13
Поблагодарили 100 раз(а) в 36 сообщениях
 
По умолчанию Re: Сброс таргета через геодату

Подправить скрипт всегда можно, отличия будут в первых байтах пакетов. Структура конкретно пакетов на перемещение и тп не менялась с течением хроник. Другое дело, что работать такой скрипт уже вряд ли будет - почти везде фиксы стоят.
  Ответить с цитированием
Пользователь сказал cпасибо:
Razzor (14.07.2014)
Старый 14.03.2015, 05:04   #5
 Разведчик
Аватар для HappyBoy
 
HappyBoy никому не известный тип
Регистрация: 29.05.2010
Сообщений: 6
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Сброс таргета через геодату

а не проще опустить камеру в ноги, что б было видно ник и потыкать на него, та же ситуация будет....
из этого следует целый ряд багов
1) при падении - 0 ХП (там где снимает хп при падении) как следствие возможность использовать скилы на кхаватари и титане к примеру на олимпе
2)так же можно прятаться на олимпе к примеру отресторить МП
3)таким образом можно бегать через стены даже со сравнительно рабочей геодатой

ну и еще целый ряд вытекающих из этого событий, баг древний как какашки мамонта, пользую уже года 3 - 4
  Ответить с цитированием
Ответ

Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Продам] Сервер и Геодату DDNNKK Aion 0 28.10.2013 19:57
Скачать геодату от l2brick для сервера High Five p5 Wa6ka Сборки серверов 0 30.11.2011 05:46
[Помогите!] id таргета k2_target Общение и обсуждение Aion 3 04.07.2011 13:43

Заявление об ответственности / Список мошенников

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

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net