Просмотр полной версии : Кто-то клиент реверсит?
n1ghtmare
10.02.2013, 00:37
Есть люди которые скажем так добились успехов в этом деле? Я имею ввиду полное отсутствие хуков и т.п. и получение списка всех персонажей, объектов из памяти клиента. Если есть такие предлагаю списаться и поделиться опытом.
Да, на некоторых хрониках находил в памяти по относительно константному смещению адрес на UNetworkHandler. Если защита палит поток, откуда вызвана апи, то нужно вызывать из контекста потока клиента. Также может палить, где находятся строки, которые передаются в параметрах апи.
n1ghtmare
10.02.2013, 01:14
Причем тут защита, я уже многое из памяти могу выдрать, теже списки игроков, айтемов. Просто есть пробелы которые хотелось бы заполнить, вот может есть люди желающие обменяться информацией.
Так напиши, какую именно информацию ты не можешь найти в памяти, какую именно информацию ты хочешь узнать? Я думал вопрос о том, как без хуков вызывать апи клиента.
Поиск по форуму автор GoldFinch. Там все есть. Остальное - продукт мозговой деятельности каждого индивидуума.
n1ghtmare
10.02.2013, 03:15
Я видел и читал, ушел гораздо дальше описанного на форуме.
Тогда я первого поста не понял. Клиент ладвы перерыт уже наизусть. Все что нужно находится в течении максимум получаса. Если хочешь что то написать для ладвы, садишься и пишешь.
n1ghtmare
10.02.2013, 13:53
Ну к примеру вглядываясь до посинения в код клиента я так и не нашел, где он хранит ID цели для моба. Для игроков есть такой класс APawn, в нем есть такой класс AController, там есть ID цели, но для мобов оно храниться в ином месте. И я ОЧЕНЬ сомневаюсь что: Клиент ладвы перерыт уже наизусть.
Возможно он и перерыт где-то кем-то, но в паблике инфы 0.
Ну к примеру вглядываясь до посинения в код клиента я так и не нашел, где он хранит ID цели для моба. Для игроков есть такой класс APawn, в нем есть такой класс AController, там есть ID цели, но для мобов оно храниться в ином месте. И я ОЧЕНЬ сомневаюсь что:
Возможно он и перерыт где-то кем-то, но в паблике инфы 0.
В паблике инфы 0 потому что по тому что есть, каждый заинтересованный может сам все найти в клиенте.
Моб контролируется исключительно сервером, с рождения и до смерти мобу в клиенте не надо ничего хранить, кроме id моба, координат, и вектора в которую он повернут.
Когда в клиент приходит пакет атаки мобом цели, в этом пакете ид моба и ид цели. Это единственное место, где есть ИД цели моба.
Если мне память не изменила.
Не относись к клиенту как к однопользовательскому шутеру, и прийдет осознание что клиент это всего лишь визуализатор событий, расчитываемых на сервере, и воздействовать на эти события можешь лишь небольшим количеством пакетов )
n1ghtmare
10.02.2013, 15:16
Все что ты описал выше я знаю, и более того в функции OnAttack в неком месте сохраняеться ИД цели. Единственное что я пока нашел это некая анимация атаки, но там ИД записываеться только на время атаки, между атаками там 0.
Есть мнение что это локальная переменная, получается она в передаваемом параметре, после выхода из ф-ции в ней может быть все что угодно. Клиенту она не нужна.
n1ghtmare
10.02.2013, 16:35
Та не, насчет вектора поворота ты загнул. По твоей логике при перемещении перса сервак должен обновлять координаты? бред. Поэтому ИД полюбому есть где-то пока моб атакует кого-то.
Та не, насчет вектора поворота ты загнул. По твоей логике при перемещении перса сервак должен обновлять координаты? бред. Поэтому ИД полюбому есть где-то пока моб атакует кого-то.
Это не моя логика. ValidatePosition составляет почти весь трафик в игре. Или как какой там пакет за обновление координат всего в мире отвечает.
Поэтому при лагах можно видеть дрыгающихся вперед назад мобов.
Еще раз повторяю, не относись к клиенту ладвы как к однопользовательскому шутеру.
alexteam
10.02.2013, 17:31
Есть мнение что это локальная переменная, получается она в передаваемом параметре, после выхода из ф-ции в ней может быть все что угодно. Клиенту она не нужна.
ага, а в action от клиента (взятие в таргет, кпримеру) она ложиться с ментального хранилища данных.
alexteam, ты явно не читал, но осуждаешь. Речь идет не о ID моба которого персонаж берет в таргет и который хранится в клиенте, а о ID цели, которую взял в таргет этот моб, именно взял в таргет, но не делает еще никаких событий. Мобу - именно мобу, ненадо слать из клиента серверу Action.
мобы кроме перемещения же ничего не шлют. им нафиг валидация, реальное премщение не зависит от ваших клиентов, сквозь текстуры не пролезут а пролезут да и фиг бы с ним. при рассогласовании скорости будут "подергиваться" в клиенте это максимум проблем.
Ну, я продвинулся не слишком далеко.
Расковыривание "обратно":
1. Ищем ник прохожего в памяти, не выделяя в таргет. Он появляется в нескольких местах, но стабитьно -- только в одном.
2. За 4 байта до начала ника имеет место быть 4-байтовый INT
3. Этот INT указывает на место персонажа в какой-то структуре вида (4 интов, потом 0xFFFFFFFF, потом снова 5 интов). Эта структура перебирает список всех персонажей.
И вот тут я заткнулся. Потому, что адрес этой структуры -- динамический и как его получать у каждого следующего клиента -- я не знаю. Есть какие-нибудь идеи?
vBulletin® v3.6.11, Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot