Как узнать заточку, на системном уровне с клиента - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Игровой клиент

Игровой клиент Есть вопросы по поводу редактирования dat, utx и других файлов клиента, пожалуйста, задавайте их здесь.
Описание темы:Кто знает, помогите плс

Ответ
Опции темы
Непрочитано 25.05.2011, 15:33   #1
Пользователь

Автор темы (Топик Стартер) Как узнать заточку, на системном уровне с клиента

Ребят, кто знает как узнать уровень заточки определёной вещи системно, чтоб можно было это значение вытянуть с какого-то файла.... Помогите если знаете!
spenar вне форума Ответить с цитированием
Непрочитано 25.05.2011, 16:18   #2
Аватар для Credo
Герой

По умолчанию Re: Как узнать заточку, на системном уровне с клиента

Какой заточки, какой вещи, как системно? Ты с какой планеты?
Credo вне форума Отправить сообщение для Credo с помощью ICQ Отправить сообщение для Credo с помощью Skype™ Ответить с цитированием
Непрочитано 27.05.2011, 16:17   #3
Заинтересовавшийся

По умолчанию Re: Как узнать заточку, на системном уровне с клиента

В смысле к примеру бегая по серверу, и видя чела с заточенной пушкой узнать точно на сколько она заточена? Патч на цвета заточки в таком случае в помощь.
Tassadar999 вне форума Ответить с цитированием
Непрочитано 27.05.2011, 16:42   #4
Аватар для Credo
Герой

По умолчанию Re: Как узнать заточку, на системном уровне с клиента

Если включить логику, то (раз мы находимся на форуме Администраторов игровых серверов) вот несколько вариантов (если, конечно, это то, о чем я думаю исходя из поста выше):
1. alt+G
2. Непосредственно в БД игрового сервера.
3. Обвязка с сайта (или нечто подобное). Хотя... этот пункт - дочерний из второго, по сути.
Credo вне форума Отправить сообщение для Credo с помощью ICQ Отправить сообщение для Credo с помощью Skype™ Ответить с цитированием
Непрочитано 27.05.2011, 19:31   #5
Аватар для Azagthtot
Эксперт

По умолчанию Re: Как узнать заточку, на системном уровне с клиента

Анализироавть пакет CharInfo на клиенте (напишите свою dll-перехватчик). Заточка передается в нем
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Непрочитано 30.05.2011, 08:49   #6
Пользователь

Автор темы (Топик Стартер) Re: Как узнать заточку, на системном уровне с клиента

Цитата:
Сообщение от Azagthtot Посмотреть сообщение
Анализироавть пакет CharInfo на клиенте (напишите свою dll-перехватчик). Заточка передается в нем
А можете поподробней как это зделать?
spenar вне форума Ответить с цитированием
Непрочитано 30.05.2011, 11:35   #7
Аватар для Azagthtot
Эксперт

По умолчанию Re: Как узнать заточку, на системном уровне с клиента

Можно и подробнее.

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

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

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

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

На самом деле, вас будет интересовать только один параметр это L2ParamStack * который будет передан по адресу ESP+010h
Дальше вам предстоит заниматься отладкой, т.к. данный метод я не ковырял.
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 30.05.2011, 16:03   #8
Пользователь

Автор темы (Топик Стартер) Re: Как узнать заточку, на системном уровне с клиента

Цитата:
Сообщение от Azagthtot Посмотреть сообщение
Можно и подробнее.

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

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

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

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

На самом деле, вас будет интересовать только один параметр это L2ParamStack * который будет передан по адресу ESP+010h
Дальше вам предстоит заниматься отладкой, т.к. данный метод я не ковырял.
Спасибо, за пояснение, но это не дало просвета в моей туманной голове! Т.к. ассамблер я не знаю и приобретать знания ассамблера для мну пока не возможно (знаю язык программирования С++). Значит объясню вам свою идею, может вы сможете мне помочь или объяснить какой-то метод попроще! Я думал написать прогу для заточки, которая будет точить и в определённый момент когда точка достигла нужного результата, эта прога остановила процесс точки или начинала точить следующую шмотку! Вот зачем мне нужно было узнать заточку вещи в определённый момент времени! Так что если вы можете мне помочь (и вам не лень, так как знаю что программисты народ ленивый ) то будьте добры, буду очень благодарен!
spenar вне форума Ответить с цитированием
Непрочитано 30.05.2011, 16:11   #9
Аватар для Azagthtot
Эксперт

По умолчанию Re: Как узнать заточку, на системном уровне с клиента

Цитата:
Сообщение от spenar Посмотреть сообщение
Я думал написать прогу для заточки, которая будет точить и в определённый момент когда точка достигла нужного результата, эта прога остановила процесс точки или начинала точить следующую шмотку! Вот зачем мне нужно было узнать заточку вещи в определённый момент времени! Так что если вы можете мне помочь (и вам не лень, так как знаю что программисты народ ленивый ) то будьте добры, буду очень благодарен!
Тогда правильно ставьте задачу - в этом случае вам надо анализировать совсем другие пакеты.
К сожалению, ни LameGuard, ни CatsGuard, ни CCPGuard, ни Frost вашу прогу не оценят, и выдадут ей кик за незаконные действия.
Отсюда первый вопрос - а стоит ли это делать?
Второй вопрос (если ответ на первый "стоит"): зачем что-то изобретать, когда можно написать скрипт для phx
Ну и третий пункт. Если вы собрались что-то писать для клиента, то будте любезны, изучите предметную область.
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Непрочитано 30.05.2011, 16:16   #10
Пользователь

Автор темы (Топик Стартер) Re: Как узнать заточку, на системном уровне с клиента

Цитата:
Сообщение от Azagthtot Посмотреть сообщение
К сожалению, ни LameGuard, ни CatsGuard, ни CCPGuard, ни Frost вашу прогу не оценят, и выдадут ей кик за незаконные действия.
Отсюда первый вопрос - а стоит ли это делать?
Второй вопрос (если ответ на первый "стоит"): зачем что-то изобретать, когда можно написать скрипт для phx
Ну и третий пункт. Если вы собрались что-то писать для клиента, то будте любезны, изучите предметную область.
Так вот дело в том что если писать скрипт через phx, то это оч легко спалить! Мне не нужно чтоб кто-то прогу оценивал, прога нужна мне... Мне нужно просто прогу которая будет улавливать уровень заточки определёной вещи в определёный момент ну и записывала в файл, всё остальное я могу зделать сам... Просто на этом куске я застрял...
spenar вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Баги на заточку в сборках tymboss Lineage II 11 06.05.2011 15:25
Защита на уровне клиента Kos-Master Игровой клиент 11 19.04.2011 20:25
[l2open interlude]Помогите с багом на заточку оружия Bumerok Lineage II 2 19.11.2010 21:54
Как узнать? singer Курилка / Yak floor 4 29.10.2010 03:54
Ищу руус файлы на уровне серва Emy Амадей Lineage II 5 13.04.2009 09:15


© 2007–2019 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 19:09. Часовой пояс GMT +3.

Вверх