kitsocial Опубликовано 7 марта, 2017 Поделиться Опубликовано 7 марта, 2017 Здравствуйте. Опять столкнулся с проблемой. Ничего подобного не доводилось еще встречать. Удалось пока найти HP, X, Y и Z значения персонажа, но вот с мобами возникли серьезные проблемы. Поиск разных значений моба результата не дает. Вот пример моих попыток поискать HP моба. Пробовал искать Unknown initial value в All. Искал следующим образом, беру моба в таргет, сканирую, наношу урон, делаю Decreased Value, наношу урон и опять сканирую, меняю таргет на моба с большим количеством HP, ищу Increased Value, наношу урон и т.д. В итоге ноль результатов... Пробовал еще варианты с отключением Fast Scan, с разными типами(4 byte, Float, Byte и т.д.), все безрезультатно. Также не дает результата поиск других значений. String тоже безрезультатно, после отсеивания остается ноль результатов. Единственное, что удалось найти, это HP конкретного моба, при смене таргета, значение не меняется и все еще отображает HP первоначально сканированного моба. Есть какие-нибудь идеи? Буду очень благодарен за ваши советы и идеи! Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 7 марта, 2017 Поделиться Опубликовано 7 марта, 2017 36 минуты назад, kitsocial сказал: Единственное, что удалось найти, это HP конкретного моба, при смене таргета, значение не меняется и все еще отображает HP первоначально сканированного моба. Есть какие-нибудь идеи? Сам ответил на свой вопрос, раз при выделении моба получаешь его хп, значит получаешь его структуру. Ставишь бряк на доступ и после выбираешь инструкцию которая отрабатывает только при клике на моба и смотришь какие адреса имеют доступ к инструкции. Ссылка на комментарий Поделиться на другие сайты Поделиться
kitsocial Опубликовано 7 марта, 2017 Автор Поделиться Опубликовано 7 марта, 2017 35 минуты назад, partoftheworlD сказал: Сам ответил на свой вопрос, раз при выделении моба получаешь его хп, значит получаешь его структуру. Ставишь бряк на доступ и после выбираешь инструкцию которая отрабатывает только при клике на моба и смотришь какие адреса имеют доступ к инструкции. Благодарю за ответ.Прикрепил скрин. Могу попросить чуточку подтолкнуть/прояснить, на что здесь стоит обратить внимание? С чем именно работать? Скрытый текст Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 7 марта, 2017 Поделиться Опубликовано 7 марта, 2017 4 минуты назад, kitsocial сказал: Могу попросить чуточку подтолкнуть/прояснить, на что здесь стоит обратить внимание? После установки бряка выбери моба должна по идее появится еще инструкция. Ссылка на комментарий Поделиться на другие сайты Поделиться
kitsocial Опубликовано 7 марта, 2017 Автор Поделиться Опубликовано 7 марта, 2017 3 минуты назад, partoftheworlD сказал: После установки бряка выбери моба должна по идее появится еще инструкция. Т.е., если я правильно понял, то в одном из этих бряков должна быть инструкция со значением HP выделенного таргета? Т.е., если я сначала выберу одного моба с 50 HP, он отобразит это количество, а если я возьму в таргет моба со 100 HP, то эта же инструкция отобразит уже 100 HP, да? Пробовал подобное, после каждого выделенного моба, добавляется инструкция с его HP, динамической нет. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 7 марта, 2017 Поделиться Опубликовано 7 марта, 2017 19 минуту назад, kitsocial сказал: Т.е., если я сначала выберу одного моба с 50 HP, он отобразит это количество, а если я возьму в таргет моба со 100 HP, то эта же инструкция отобразит уже 100 HP, да? Типа того, лучше конечно смотреть по количеству срабатываний. 2 раза мобов выбрал 2 раза сработала. Ссылка на комментарий Поделиться на другие сайты Поделиться
kitsocial Опубликовано 7 марта, 2017 Автор Поделиться Опубликовано 7 марта, 2017 2 часа назад, partoftheworlD сказал: Типа того, лучше конечно смотреть по количеству срабатываний. 2 раза мобов выбрал 2 раза сработала. Спасибо большое за терпение и ответы. Жаль не могу плюс ставить в репутацию, ну да ладно, наверстаю еще Так вот, данный метод так и не дал нужного результата... Провел много тестов, но нужного динамического адреса моба ни в одном из опкодов так и не нашел... Опкоды в СЕ работает с 8 разными адресами, первый, чаще всего - адрес HP моего персонажа, второй, добавляется HP взятого в таргет моб, третий, следующий взятый в таргет моб и т.д(до 8). Т.е., забивается 8 статистическими адресами, которые указывает адрес только определенного моба, никакого намека на динамический... Есть ли другой способ как-то выйти из этого ступора? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 7 марта, 2017 Поделиться Опубликовано 7 марта, 2017 (изменено) 2 часа назад, kitsocial сказал: Провел много тестов, но нужного динамического адреса моба ни в одном из опкодов так и не нашел... Твоя задача сейчас найти общую структуру в которой хранятся все мобы возможно и игроки, а не динамический адрес. Возможно там что-то типа адреса начала общей структуры + id моба * шаг между структурами мобов. Динамического может и не быть, а раз инструкция работает с хп, то тебе надо смотреть код выше, возможно с выходом из функции, где-то по близости должна быть инструкция указывающая что писать в статический адрес, а еще выше откуда берется значение пишущее в статический адрес. Изменено 7 марта, 2017 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 8 марта, 2017 Поделиться Опубликовано 8 марта, 2017 9 часов назад, kitsocial сказал: Есть ли другой способ как-то выйти из этого ступора? По-моему ты зациклился на той инструкции, попробуй ещё раз: 1. Выйди на рабочий адрес НР твоего персонажа, с помощью которого ты можешь менять НР своего персонажа. 2. Поставь бряк на чтение (именно на чтение) на этот адрес. 3. В окне бряка ПКМ -> "Проверять инструкции на обращение к другим адресам (мах 8)" (не знаю как это пишется на англ. - 5 строка сверху). При этом в самой игре ничего не делай. Скорее всего будут инструкции, которые обращаются не только к ГГ, но и к мобам. ЗЫ: Если бы дал название игры, тебе помогли бы быстрее. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
kitsocial Опубликовано 8 марта, 2017 Автор Поделиться Опубликовано 8 марта, 2017 3 часа назад, Garik66 сказал: По-моему ты зациклился на той инструкции, попробуй ещё раз: 1. Выйди на рабочий адрес НР твоего персонажа, с помощью которого ты можешь менять НР своего персонажа. 2. Поставь бряк на чтение (именно на чтение) на этот адрес. 3. В окне бряка ПКМ -> "Проверять инструкции на обращение к другим адресам (мах 8)" (не знаю как это пишется на англ. - 5 строка сверху). При этом в самой игре ничего не делай. Скорее всего будут инструкции, которые обращаются не только к ГГ, но и к мобам. ЗЫ: Если бы дал название игры, тебе помогли бы быстрее. Я проверил все инструкции(в сумме получилось ~50), но ни одного подходящего не нашел, увы... С HP также заново попробовал сейчас, никакого результата. В инструкциях первыми адресами чаще всего идут HP моего персонажа, а дальше уже по таргету добавляются новые адреса мобов. Нет такого адреса, который бы динамично отображал HP моба при смене таргета на нового моба. Ссылка на комментарий Поделиться на другие сайты Поделиться
uhx Опубликовано 13 марта, 2017 Поделиться Опубликовано 13 марта, 2017 (изменено) А в чем проблема сказать название игры? Вряд ли там будет значение которое отображает хп выбранного моба. Как это вижу я: есть класс Entity, который как наследуется всем объектам. Значит базовые переменные, которые вполне могут там быть - это entity_id ( на который тебе надо выйти, он то и берется для смены таргета ), а так же hp и позиция +- шелуха. Если же получилось так, что смещение на HP твоего персонажа одно, а у моба - другое, значит ты делаешь что то не так ( вероятно ). Я уже делал подобную функцию в BSFG, и там много было путей выхода на entity_id. Ну, самое верное это выйти на общий список сущностей, раскрутив какую либо функцию которая работает со структурой. Просто найди ее базовый адрес, который кладется в стек до вызова самой функции ( либо кладется в регистр, который работает со структурой - разберешься ), и дальше уже реверсь структуры) Ну а как найдешь айдишники в структурах, то можно и поискать глобальную переменную ( она обычно просто к какому то интерфейсу относится ) в которой хранится айди текущего таргета, ну и через эту переменную ловишь нужную инструкцию Изменено 13 марта, 2017 пользователем uhx Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость ampermetr Опубликовано 8 апреля, 2017 Поделиться Опубликовано 8 апреля, 2017 В 13.03.2017в05:43, uhx сказал: А в чем проблема сказать название игры? Вряд ли там будет значение которое отображает хп выбранного моба. Как это вижу я: есть класс Entity, который как наследуется всем объектам. Значит базовые переменные, которые вполне могут там быть - это entity_id ( на который тебе надо выйти, он то и берется для смены таргета ), а так же hp и позиция +- шелуха. Если же получилось так, что смещение на HP твоего персонажа одно, а у моба - другое, значит ты делаешь что то не так ( вероятно ). Я уже делал подобную функцию в BSFG, и там много было путей выхода на entity_id. Ну, самое верное это выйти на общий список сущностей, раскрутив какую либо функцию которая работает со структурой. Просто найди ее базовый адрес, который кладется в стек до вызова самой функции ( либо кладется в регистр, который работает со структурой - разберешься ), и дальше уже реверсь структуры) Ну а как найдешь айдишники в структурах, то можно и поискать глобальную переменную ( она обычно просто к какому то интерфейсу относится ) в которой хранится айди текущего таргета, ну и через эту переменную ловишь нужную инструкцию Кстати в Lineage 2 и производных, с этим как раз проблем нет. хп выбранного моба там показывается в чистом виде. Мне удавалось найди даже координату, в которую бегущий моб переместится при следующем шаге. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения