Чтение памяти другого процесса
От: ravel  
Дата: 17.01.13 22:50
Оценка:
Здравствуйте,

я хочу с помощью своей программы прочесть данные из процесса игры. Достаточно легко написала небольшое консольное приложение на C#.

Проблема заключается в следующем: в интерфейсе игры я вижу определенный набор значений, которые хочу прочитать своей программой. Изначально приступая к решению вопроса, я думала, что написав небольшое приложение смогу помощью программы ArtMoney проскандировать память процесса и найти необходимые адреса нужных значений и использовать их в своем коде. К сожалению таким путем я сделать это не смогла. Как мне кажется причина заключается в том, что игра оперирует дробными значениями, а на интерфейсе показываются округленные результаты. Пробовала искать через диапазоны, тоже никаких результатов. Поиск заканчивается после первого отсеивания. Но точные данные мне как раз и не требуются, мне необходимо найти то что показывает интерфейс. Проведя достаточно много времени на поиски через ArtMoney и не добившись никаких результатов решила обратиться к вам.

1. Каким образом можно узнать адрес значения выводимого на интерфейс? В настоящий момент рассматриваю вариант использования дебагера (скачала и установила windbg), но опыта отладки чужих программ нет и на первый взгляд там все очень сложно, так что пока изучаю как им пользоваться. Может быть есть другие способы и инструменты?

2. Допустим так или иначе я получу нужный адрес, для примера пусть он будет 034F101E, правильно ли я понимаю, что у запущенного экземпляра данной программы адрес для хранения данного значения будет постоянным или же я сильно ошибаюсь и тут есть варианты?

Наверное надо уточнить, что сканируемая игра написана скорее всего на С++ с использованием DX, интерфейс приближен к оконному и если описывать выше изложенную задачу проще, то мне требуется прочитать данные нескольких label'ов в одном из окон. Вполне возможно, что при выводе на интерфейс искомые данные уже округляются и хранятся в текстовом виде, но опять же попытки сканирования через ArtMoney этих данных в строковом виде результатов не дали.

Заранее спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.