botmaker Опубликовано 12 апреля, 2022 Поделиться Опубликовано 12 апреля, 2022 Здравствуйте, подскажите, пожалуйста, как правильно бороться со строками? Моя проблема заключается в том, что не могу найти корректно поинтмап до строки, либо нахожу мусор, либо дисплейные значения индикаторов и тд. Искомая переменная - имя моба, однотипных мобов может быть целая пачка из нескольких экземпляров с одинаковым именем. Сейчас у меня имеются координаты мобов, их уровень здоровья, хотелось бы найти и имя тоже. Координаты мобов - многоуровневый указатель на начало массива, прибавляю оффсет 4, получаю данные следующего моба - хп, координаты. Как правильно найти строку относительно данного массива? Пробовал Structure Spider, Compare struct и тд, байт слишком много, затрудняюсь найти нужные, пробовал через общий поиск строки, но с предыдущей поинтмап они не схожи и вообще, скорее указывают на единичную строку, а не как с массивом структур. Кто может показать мастеркласс/объяснить, если все будет понятно и полезно, готов поблагодарить монетой. ПС. строка чаще всего в кириллице. Ссылка на комментарий Поделиться на другие сайты Поделиться
botmaker Опубликовано 13 апреля, 2022 Автор Поделиться Опубликовано 13 апреля, 2022 Где же все спецы? UPD: попробовал pointscan с базовым адресом элемента массива структур вплоть до 12го уровня с размером структуры в 2048 байт, не помогло. Возможно, есть ассоциативный массив, содержащий имена объектов где-то отдельно, связанный по id объекта, но пока что это только догадки. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 13 апреля, 2022 Поделиться Опубликовано 13 апреля, 2022 5 часов назад, botmaker сказал: Где же все спецы? Оффтоп: спецы заняты работой и личной жизнью. По теме: твой случай выглядит как массив структур, и тебе нужно найти именно эту структуру. А дальше стандартным способом добираться по оффсетам. Ссылка на комментарий Поделиться на другие сайты Поделиться
botmaker Опубликовано 13 апреля, 2022 Автор Поделиться Опубликовано 13 апреля, 2022 2 часа назад, Xipho сказал: По теме: твой случай выглядит как массив структур, и тебе нужно найти именно эту структуру. А дальше стандартным способом добираться по оффсетам. Об этом и я писал выше, массив - нашел. Вопрос в том, как найти строку в этой громадной многоэтажной структуре, посмотрел оффсеты, некоторые достигают значения 0x870, смотрел вдоль и поперек, дальше 3го указателя от структуры не заходил, ибо там совсем много значений, строку не нашел. Вдруг ее просто там нет, а лежит где-то отдельно в другом ассоциативном массиве. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 13 апреля, 2022 Поделиться Опубликовано 13 апреля, 2022 Не ковыряясь в игре сложно давать конкретные советы. Но попробую еще раз. Тебе надо искать не сам массив, а одну из структур этого массива. То есть, конректно самую низкоуровневую структуру, содержащую искомую строку. И от этой структуры уже выходить вверх по уровням. Так и построишь указатель. Ссылка на комментарий Поделиться на другие сайты Поделиться
KRYPTOPUNK Опубликовано 17 апреля, 2022 Поделиться Опубликовано 17 апреля, 2022 Берешь GHIDRA, дизассемблируешь, ищешь необходимые строки, смотришь их адрес, и ищешь в памяти указатели на эти строки. Потом отладчиком смотришь, кто читает эти строки. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения