я хочу с помощью своей программы прочесть данные из процесса игры. Достаточно легко написала небольшое консольное приложение на C#.
Проблема заключается в следующем: в интерфейсе игры я вижу определенный набор значений, которые хочу прочитать своей программой. Изначально приступая к решению вопроса, я думала, что написав небольшое приложение смогу помощью программы ArtMoney проскандировать память процесса и найти необходимые адреса нужных значений и использовать их в своем коде. К сожалению таким путем я сделать это не смогла. Как мне кажется причина заключается в том, что игра оперирует дробными значениями, а на интерфейсе показываются округленные результаты. Пробовала искать через диапазоны, тоже никаких результатов. Поиск заканчивается после первого отсеивания. Но точные данные мне как раз и не требуются, мне необходимо найти то что показывает интерфейс. Проведя достаточно много времени на поиски через ArtMoney и не добившись никаких результатов решила обратиться к вам.
1. Каким образом можно узнать адрес значения выводимого на интерфейс? В настоящий момент рассматриваю вариант использования дебагера (скачала и установила windbg), но опыта отладки чужих программ нет и на первый взгляд там все очень сложно, так что пока изучаю как им пользоваться. Может быть есть другие способы и инструменты?
2. Допустим так или иначе я получу нужный адрес, для примера пусть он будет 034F101E, правильно ли я понимаю, что у запущенного экземпляра данной программы адрес для хранения данного значения будет постоянным или же я сильно ошибаюсь и тут есть варианты?
Наверное надо уточнить, что сканируемая игра написана скорее всего на С++ с использованием DX, интерфейс приближен к оконному и если описывать выше изложенную задачу проще, то мне требуется прочитать данные нескольких label'ов в одном из окон. Вполне возможно, что при выводе на интерфейс искомые данные уже округляются и хранятся в текстовом виде, но опять же попытки сканирования через ArtMoney этих данных в строковом виде результатов не дали.