Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Как узнать заточку, на системном уровне с клиента
#1
Ребят, кто знает как узнать уровень заточки определёной вещи системно, чтоб можно было это значение вытянуть с какого-то файла.... Помогите если знаете!
Ответ
#2
Какой заточки, какой вещи, как системно? Ты с какой планеты?
Ответ
#3
В смысле к примеру бегая по серверу, и видя чела с заточенной пушкой узнать точно на сколько она заточена? Патч на цвета заточки в таком случае в помощь.
Ответ
#4
Если включить логику, то (раз мы находимся на форуме Администраторов игровых серверов) вот несколько вариантов (если, конечно, это то, о чем я думаю исходя из поста выше):
1. alt+G
2. Непосредственно в БД игрового сервера.
3. Обвязка с сайта (или нечто подобное). Хотя... этот пункт - дочерний из второго, по сути.
Ответ
#5
Анализироавть пакет CharInfo на клиенте (напишите свою dll-перехватчик). Заточка передается в нем
Ответ
#6
Azagthtot Написал:Анализироавть пакет CharInfo на клиенте (напишите свою dll-перехватчик). Заточка передается в нем

А можете поподробней как это зделать?
Ответ
#7
Можно и подробнее.

Приведенные ниже рекомендации подразумевают, что вы знаете ассеблер и методики работ с памятью процесса в Windows. Если таковых знаний нет, то прежде чем читать приведенный ниже текст, советую их приобрести.
Все имена и адреса будут даны для клиента хроник Interlude, для других - по аналогии.

И так, как известно, для обработки каждого пакета вызывается соответствующий метод. Таким образом, при получении пакета CharInfo, будет вызван метод UGameEngie::OnCharInfo. Это экспортируемая функция, таким образом, его адрес можно получить через GetProcAddress.
Этот метод определен в engine.dll и его отмэнгленное имя будет
?OnCharInfo@UGameEngine@@UAEHPAUUser@@VFVector@@HAAVL2ParamStack@@@Z

Теперь посмотрим код его вызова
Код:
jmp +00181c78h
т.о. зная адрес метода, можно найти само тело. У меня получается так:
адрес метода 03f3db3h, соответственно тело находится по адресу 0575A2Bh
Первая часть выполнена. Теперь мы пишем свой перехватчик, по адресу метода вместо jmp +00181c78h записываем jmp адрес_нашего_перехватчика, не забываем, что ваш перехватчик должен быть оформлен как cdecl функция. После обработки вами данных, вам надо вызвать "родной" метод перейдя (т.е. выполнив jmp) по сохраненному адресу "тела".

Теперь вторая часть. Как нам получить доступ к данным.
А тут еще проще. Параметры можно восстановить по мэнгл имени. Или, просто поставьте точку останова на этом методе и посмотрите стек, помятуя о том, что OnCharInfo это thiscall вызов.

На самом деле, вас будет интересовать только один параметр это L2ParamStack * который будет передан по адресу ESP+010h
Дальше вам предстоит заниматься отладкой, т.к. данный метод я не ковырял.
Ответ
#8
Azagthtot Написал:Можно и подробнее.

Приведенные ниже рекомендации подразумевают, что вы знаете ассеблер и методики работ с памятью процесса в Windows. Если таковых знаний нет, то прежде чем читать приведенный ниже текст, советую их приобрести.
Все имена и адреса будут даны для клиента хроник Interlude, для других - по аналогии.

И так, как известно, для обработки каждого пакета вызывается соответствующий метод. Таким образом, при получении пакета CharInfo, будет вызван метод UGameEngie::OnCharInfo. Это экспортируемая функция, таким образом, его адрес можно получить через GetProcAddress.
Этот метод определен в engine.dll и его отмэнгленное имя будет
?OnCharInfo@UGameEngine@@UAEHPAUUser@@VFVector@@HAAVL2ParamStack@@@Z

Теперь посмотрим код его вызова
Код:
jmp +00181c78h
т.о. зная адрес метода, можно найти само тело. У меня получается так:
адрес метода 03f3db3h, соответственно тело находится по адресу 0575A2Bh
Первая часть выполнена. Теперь мы пишем свой перехватчик, по адресу метода вместо jmp +00181c78h записываем jmp адрес_нашего_перехватчика, не забываем, что ваш перехватчик должен быть оформлен как cdecl функция. После обработки вами данных, вам надо вызвать "родной" метод перейдя (т.е. выполнив jmp) по сохраненному адресу "тела".

Теперь вторая часть. Как нам получить доступ к данным.
А тут еще проще. Параметры можно восстановить по мэнгл имени. Или, просто поставьте точку останова на этом методе и посмотрите стек, помятуя о том, что OnCharInfo это thiscall вызов.

На самом деле, вас будет интересовать только один параметр это L2ParamStack * который будет передан по адресу ESP+010h
Дальше вам предстоит заниматься отладкой, т.к. данный метод я не ковырял.
Спасибо, за пояснение, но это не дало просвета в моей туманной голове! Т.к. ассамблер я не знаю и приобретать знания ассамблера для мну пока не возможно (знаю язык программирования С++). Значит объясню вам свою идею, может вы сможете мне помочь или объяснить какой-то метод попроще! Я думал написать прогу для заточки, которая будет точить и в определённый момент когда точка достигла нужного результата, эта прога остановила процесс точки или начинала точить следующую шмотку! Вот зачем мне нужно было узнать заточку вещи в определённый момент времени! Так что если вы можете мне помочь (и вам не лень, так как знаю что программисты народ ленивый Big Grin) то будьте добры, буду очень благодарен!
Ответ
#9
spenar Написал:Я думал написать прогу для заточки, которая будет точить и в определённый момент когда точка достигла нужного результата, эта прога остановила процесс точки или начинала точить следующую шмотку! Вот зачем мне нужно было узнать заточку вещи в определённый момент времени! Так что если вы можете мне помочь (и вам не лень, так как знаю что программисты народ ленивый Big Grin) то будьте добры, буду очень благодарен!
Тогда правильно ставьте задачу - в этом случае вам надо анализировать совсем другие пакеты.
К сожалению, ни LameGuard, ни CatsGuard, ни CCPGuard, ни Frost вашу прогу не оценят, и выдадут ей кик за незаконные действия.
Отсюда первый вопрос - а стоит ли это делать?
Второй вопрос (если ответ на первый "стоит"): зачем что-то изобретать, когда можно написать скрипт для phx
Ну и третий пункт. Если вы собрались что-то писать для клиента, то будте любезны, изучите предметную область.
Ответ
#10
Azagthtot Написал:К сожалению, ни LameGuard, ни CatsGuard, ни CCPGuard, ни Frost вашу прогу не оценят, и выдадут ей кик за незаконные действия.
Отсюда первый вопрос - а стоит ли это делать?
Второй вопрос (если ответ на первый "стоит"): зачем что-то изобретать, когда можно написать скрипт для phx
Ну и третий пункт. Если вы собрались что-то писать для клиента, то будте любезны, изучите предметную область.
Так вот дело в том что если писать скрипт через phx, то это оч легко спалить! Мне не нужно чтоб кто-то прогу оценивал, прога нужна мне... Мне нужно просто прогу которая будет улавливать уровень заточки определёной вещи в определёный момент ну и записывала в файл, всё остальное я могу зделать сам... Просто на этом куске я застрял...
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Декомпиляция клиента для изучения SiriusED 0 1,130 04-20-2023, 11:40 PM
Последний пост: SiriusED
  Редактирование файлов клиента Sber 5 2,129 08-21-2019, 11:12 AM
Последний пост: Sber
  Даунгрейд клиента / Корректный батник для l2tool.exe Exsender 3 2,366 07-18-2019, 11:25 AM
Последний пост: Emperor
  Дешифровка файла .dat из китайского клиента Exsender 3 1,770 03-26-2019, 06:47 PM
Последний пост: Gaikotsu
  Дизасм клиента. Пакеты. n3k0nation 30 21,938 11-25-2018, 10:29 AM
Последний пост: LightFusionMain
  Настройка l2.ini, разбор, исправление, объяснение, подключение клиента к серверу kpuk 75 114,043 02-25-2017, 07:15 PM
Последний пост: 0xAAA
  Отключение системы защиты клиента Frost RomanoDi 22 59,686 03-24-2016, 12:56 PM
Последний пост: PROGRAMMATOR
  Крит клиента в определенной локации itcry 6 1,853 01-04-2016, 05:53 PM
Последний пост: itcry
  Ищу фикс клиента xlBASlx 3 1,408 11-01-2015, 01:12 PM
Последний пост: Zubastic
  Русификация клиента Lineage2Classic Japan Free CHANEL 10 6,091 07-25-2015, 05:58 PM
Последний пост: Daan Raven

Перейти к форуму:


Пользователи, просматривающие эту тему: 12 Гость(ей)