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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 19.03.2009, 13:09   #1
Местный
 
Регистрация: 06.02.2008
Сообщений: 103
Сказал Спасибо: 13
Имеет 8 спасибок в 6 сообщенях
Stasrus
По умолчанию

Подскажите как можно изменить пакет,
например клиент посылает изменяемый пакет 2E 00 00 00 79 34 15 00 22 05 11 48
нужно допустим заменить неизменные части 79 на 99 и 22 05 11 48 на 11 11 11 11 не трогая при этом остальной изменяемой части и отправить его серверу.

Если пакет неизменный трудностей с переделкой и отправкой нет, но немогу додуматься как переделать изменяемый пакет.
Stasrus вне форума   Ответить с цитированием
Старый 19.03.2009, 14:50   #2
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от Stasrus Посмотреть сообщение
Подскажите как можно изменить пакет,
например клиент посылает изменяемый пакет 2E 00 00 00 79 34 15 00 22 05 11 48
нужно допустим заменить неизменные части 79 на 99 и 22 05 11 48 на 11 11 11 11 не трогая при этом остальной изменяемой части и отправить его серверу.

Если пакет неизменный трудностей с переделкой и отправкой нет, но немогу додуматься как переделать изменяемый пакет.
delphi Код:
Tип: 0x2E (RequestMagicSkillList) Pазмер: 12+2 0002 c c: 0 (0x00) 0003 c c: 0 (0x00) 0004 c c: 0 (0x00) 0005 d CharID: 1389689 (0x00153479) 0009 d ObjectID: 1209074978 (0x48110522)

delphi Код:
if (pck[1]=#$2E) and FromClient then begin   buf:=pck;  //копируем пришедший пакет 2E 00 00 00 79 34 15 00 22 05 11 48   pck:='';   //удаляем   //формат команды вставки данных WriteD(data, index: integer), по умолчанию index=0, index увеличивается на длину данных   WriteC($99, 5);        //заменяем 79 на 99   WriteD($11111111, 9); //заменяем 22051148 на 11111111   SendToServer; end;

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


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 19.03.2009, 14:00   #3
Новичок
 
Регистрация: 15.03.2009
Сообщений: 26
Сказал Спасибо: 0
Имеет 11 спасибок в 7 сообщенях
Sieg пока неопределено
По умолчанию

if (pck[1]=#$2E) and FromClient then
begin
pck[5]:=#$99
pck[9]=#$11
pck[10]:=#$11
pck[11]:=#$11
pck[12]:=#$11
exit;
end;

Либо так, либо я не понял вопроса...
Sieg вне форума   Ответить с цитированием
За это сообщение Sieg нажился спасибкой от:
Старый 19.03.2009, 14:36   #4
Местный
 
Регистрация: 06.02.2008
Сообщений: 103
Сказал Спасибо: 13
Имеет 8 спасибок в 6 сообщенях
Stasrus
По умолчанию

Спасибо Sieg, очень помог.
Stasrus вне форума   Ответить с цитированием
Старый 19.03.2009, 15:17   #5
Новичок
 
Регистрация: 15.03.2009
Сообщений: 26
Сказал Спасибо: 0
Имеет 11 спасибок в 7 сообщенях
Sieg пока неопределено
По умолчанию

Не совсем понял, зачем удалять старый пакет и посылать новый, если можно в проходящем заменить нужные байты.

З.Ы.: жаль, на мой вопрос так и нету ответа...
Sieg вне форума   Ответить с цитированием
Старый 19.03.2009, 17:39   #6
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от Sieg Посмотреть сообщение
Не совсем понял, зачем удалять старый пакет и посылать новый, если можно в проходящем заменить нужные байты.

З.Ы.: жаль, на мой вопрос так и нету ответа...
Дело в том, что функции WriteC, WriteD ... работают с переменной buf.
Потом, такой метод более унивесален. Используя переменные не надо думать как делить на байты.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни



Последний раз редактировалось NLObP, 19.03.2009 в 17:41.
NLObP вне форума   Ответить с цитированием
Старый 19.03.2009, 19:48   #7
Новичок
 
Регистрация: 15.03.2009
Сообщений: 26
Сказал Спасибо: 0
Имеет 11 спасибок в 7 сообщенях
Sieg пока неопределено
По умолчанию

По мне так проще добавить пару функций для работы с pck - это если какой-то большой скрипт. А для маленьких можно обойтись и побайтным изменением пакета.
В моем представлении, чем раньше пакет покинет скрипт, тем лучше. А в случае с заменой pck на buf - так я вообще не возьмусь утверждать, что этот пустой пакет так и не выйдет за пределы л2пнх. Кто знает, может его осколки все-таки долетят до сервера, а мне такой флуд не к чему. Впрочем, тут уже вопрос к разрабочтику: как обрабатываются пустые пакеты?
Вот так мне больше нравится:

Код:
if (pck[1]=#$2E) and FromClient then 
begin
  buf:=pck;  //копируем пришедший пакет 2E 00 00 00 79 34 15 00 22 05 11 48
  //формат команды вставки данных WriteD(data, index: integer), по умолчанию index=0, index увеличивается на длину данных
  WriteC($99, 5);        //заменяем 79 на 99
  WriteD($11111111, 9); //заменяем 22051148 на 11111111
  pck:=buf;   //записываем в pck нужный пакет
  exit;
end;
Sieg вне форума   Ответить с цитированием
Старый 20.03.2009, 00:03   #8
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от Sieg Посмотреть сообщение
В моем представлении, чем раньше пакет покинет скрипт, тем лучше. А в случае с заменой pck на buf - так я вообще не возьмусь утверждать, что этот пустой пакет так и не выйдет за пределы л2пнх. Кто знает, может его осколки все-таки долетят до сервера, а мне такой флуд не к чему. Впрочем, тут уже вопрос к разрабочтику: как обрабатываются пустые пакеты?
При вызове метода SENDTOSERVER и т.п., пакет из переменной buf отправляется сразу, а переменная pck может долго обрабатываться в плагинах и других скриптах.
delphi Код:
if MethodName = 'SENDTOSERVER' then begin     buf:=TfsScript(Integer(Params[0])).Variables['buf'];     b:=TfsScript(Integer(Params[0])).Variables['ConnectID'];     SendPacket(Length(buf)+2,buf,b,True);   end else
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 20.03.2009, 01:59   #9
Новичок
 
Регистрация: 15.03.2009
Сообщений: 26
Сказал Спасибо: 0
Имеет 11 спасибок в 7 сообщенях
Sieg пока неопределено
По умолчанию

У меня версия пнх без плагинов
Кстати, NLObP, раз ты такой знаток, может ответишь на мой вопрос, заданный десятком постов выше?

Последний раз редактировалось Sieg, 20.03.2009 в 02:16.
Sieg вне форума   Ответить с цитированием
Старый 20.03.2009, 06:27   #10
Новичок
 
Регистрация: 20.03.2009
Сообщений: 2
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
zorg пока неопределено
Смущение

здрасте я играю набаттле форсе (интерлюд) и сегодня там сказали(XAMELuOH с этого форума ) что работает подмена покетов на точку можете мне нюбу обьеснить как и что делать
zorg вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack



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

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


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

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

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