hotdog666 Опубликовано 18 мая, 2015 Поделиться Опубликовано 18 мая, 2015 (изменено) В общем происходит динамическое смещение на некое ESI*4 значение ESI обычно от 2B до С8Как найти статический указатель на эту штуку? Искал где хранится это 0000002B но адресов 15к Изменено 18 мая, 2015 пользователем hotdog666 Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 18 мая, 2015 Поделиться Опубликовано 18 мая, 2015 В данном случае ESI - это индекс какого-то массива. Невнимательно ты уроки читаешь и смотришь. А для поиска указателя тебе нужно искать содержимое EDX. Ссылка на комментарий Поделиться на другие сайты Поделиться
hotdog666 Опубликовано 18 мая, 2015 Автор Поделиться Опубликовано 18 мая, 2015 (изменено) К EDX у меня есть статический указатель, к нему без проблем обращаюсь,но для конечного определения данных надо определить какое же все таки смещение Изменено 18 мая, 2015 пользователем hotdog666 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 18 мая, 2015 Поделиться Опубликовано 18 мая, 2015 Значение esi ты сам написал, оно у тебя в диапозоне от 2B до С8.Так именно регистр esi можно будет использовать для фильтра, примерно так:cmp esi,2bjne originalcodemov [edx+esi*4],.... // и здесь значение соответствующей характеристики, а характеристика соответствует esi Ссылка на комментарий Поделиться на другие сайты Поделиться
hotdog666 Опубликовано 18 мая, 2015 Автор Поделиться Опубликовано 18 мая, 2015 А собственно без внедрения кода никак? потому что я на С++ через указатели получаю конечное значение, Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 18 мая, 2015 Поделиться Опубликовано 18 мая, 2015 Так на С++ думаю ещё проще будет. Просто найди какое значение ESI соответствует твоей нужной характеристики (ну допустим Healts - при esi равной 2b) и расчитай смещение вручную 2b*4 = ac, а дальше подставляй [edx + ac] и всё.А для edx ты написал, что указатели уже нашёл. Ссылка на комментарий Поделиться на другие сайты Поделиться
hotdog666 Опубликовано 18 мая, 2015 Автор Поделиться Опубликовано 18 мая, 2015 (изменено) Да было бы, если бы действительно это было смещение к разным характеристикам, а так это все к одной характеристике, но к разным загруженным персонажам(довольно странно, остальные смещения характеристик от другого сохранения персонажа не меняются)Статический адрес к ESI нельзя узнать что ли? Изменено 18 мая, 2015 пользователем hotdog666 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 18 мая, 2015 Поделиться Опубликовано 18 мая, 2015 Если тебе нужно изменить характеристику для всех персонажей, то тоже довольно просто.Диапозон у тебя есть от 2B до С8. Опять же рассчитываешь смещение вручную. И делаешь от и до. от [edx +2b*4] и до [edx +с8*4] с шагом 4 байта. Если для конкретного персонажа, то ставишь конкретное значение esi. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 19 мая, 2015 Поделиться Опубликовано 19 мая, 2015 Статический адрес к ESI нельзя узнать что ли? Я уже пояснил, что в данном случае статическое значение к индексу массива ты не узнаешь. Чтобы понять это точно, почитай про перебор массиво в цикле С++ и обязательно про видимость и существование локальных переменных. Ссылка на комментарий Поделиться на другие сайты Поделиться
hotdog666 Опубликовано 19 мая, 2015 Автор Поделиться Опубликовано 19 мая, 2015 (изменено) Такс с массивом понятно, ну персонаж это сохранения, и не понятно по какой системе он раскидывает значения для каждого персонажа, так что я не могу посчитать какое же значение будет у текущего сохранения.Но я нашел 2 характеристики с постоянным смещение, через которые можно определить текущее значение характеристики, придется пробегаться и сравнивать. Еще я нашел другой указатель без постоянного смещения, но не смог добраться до статического значения Потому что через 2 указателя я прихожу к этим 3 адресам, и игра вылетает при попытке дебага, перепробовал все отладчики в CE Изменено 19 мая, 2015 пользователем hotdog666 Ссылка на комментарий Поделиться на другие сайты Поделиться
hotdog666 Опубликовано 22 мая, 2015 Автор Поделиться Опубликовано 22 мая, 2015 (изменено) Так что ребят, не подскажете как к таким адресам обратитьсяЧерез указатели прихожу к ним, но при БП вылетает игра конкретно на них, в любом дебагере CE Изменено 22 мая, 2015 пользователем hotdog666 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 22 мая, 2015 Поделиться Опубликовано 22 мая, 2015 Через указатели прихожу к ним, но при БП вылетает игра конкретно на них, в любом дебагере CEПопробуй DBVM задействовать, хотя он нестабилен, и гарантий не дает, но я так понимаю, в твоем случае - стоит попробовать. Ссылка на комментарий Поделиться на другие сайты Поделиться
hotdog666 Опубликовано 22 мая, 2015 Автор Поделиться Опубликовано 22 мая, 2015 Попробуй DBVM задействовать, хотя он нестабилен, и гарантий не дает, но я так понимаю, в твоем случае - стоит попробовать.это kernelmode? у меня с ним синий экран выбивало Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения