Здравствуйте!
Представляю Вашему вниманию свою новую утилиту для работы с памятью. Название ее MemoryTools. Скачать полный исходный код и бинарники вы можете тут.
Итак, теперь немного о самой утилите и ее функциональных возможностях. Возьмем для примера достаточно известную игрушку под названием World Of Warcraft, и немного помучаем ее.
Как только вы запустите утилиту, вы увидите следующее:
Теперь вам нужно выбрать из выпадающего списка процесс к которому мы собираемся подключаться и нажмем кнопку Attach.(в данном случае это будет wow).
Теперь выберем оффсет и вставим туда такое значение 0x008b3e36(значение CurrentRealm, которое может менятся при выходе новых патчей игры), нажмем кнопку show и мы увидим название текущего реалма.
Снизу этого окна мы видим базовый адрес приложения. Если поставим галочку AutoRefresh, то нужное нам значение будет обновляться с заданным в миллисекундах интервалом. Значение в поле оффсет получается вычитанием адреса в приложении от его базового адреса.
Теперь перейдем на вкладку OffsetFinder.
Нажмем на иконку открыть файл и отркоем, идущий с приложением oManager.xml
Далее нажимаем на зеленую стрелочку, и вуаля, программа нам выдает смещения функций или переменных в выбранном приложении. Мы увидим нечто вроде
LuaDoString: 0x0039d8c0
LastGlueState: 0x0097bd4c
IsLoadingOrConnecting: 0x0097bd6c
LuaGetTop: 0x00035300
ClickToMove: 0x008cbb70
Это как раз и есть те оффсеты, которые мы вставляем в первую вкладку.
Так-же, на главной вкладке мы можем нажать на кнопочку DisAsm и получить кусок дизасемблированного листинга, начиная с указанного адреса или оффсета.
Еще одно примечание, программу нужно запускать с правами администратора.
Удачи.