Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2013, 11:52   #1
NewBoy
Пользователь
 
Аватар для NewBoy
 
Регистрация: 12.06.2012
Сообщений: 41
Восклицание Узнать число из другого приложения по адресу

Здравствуйте. Задача такая, хочу сделать небольшую утилиту для одной игры, которая бы показывала текущее количество жизней. Нагуглил, что можно отсеить значения программой Cheat Engine и найти адрес, а вот как мне зная этот адрес, к примеру, вывести значение жизней в Edit1 или записать в переменную?

Буду рад даже ссылкам на уроки... Гуглил по этой теме целый день, но так ничего и не нашёл За любую помощь повышу репутацию.
NewBoy вне форума Ответить с цитированием
Старый 11.03.2013, 12:06   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Копать здесь (особое внимание на последний ответ). По сути, Вы должны написать программу-отладчик, которая будет отлаживать целевой процесс. Стандарт языка не предлагает таких средств, они зависят от операционной системы.

Обратите внимание: многие коммерческие продукты могут содержать антиотладочные приёмы различной степени тяжести. Если речь идёт о достаточно старой (условно - 10-15 летней давности) игре, игра может принять Ваши действия за попытку взлома защиты и начать сопротивляться, так что задача станет заметно интереснее.

Также обратите внимание: в случае, если структура данных, хранящая данные о жизнях, находится в динамической памяти, её адрес может быть различным при различных запусках программы. В этом случае потребуется отследить цепочку адресов до т.н. "корневого множества" (стека и глобальных переменных), и в программе идти оттуда: взять значение B по адресу A, затем значение C по адресу B и т.д.
Abstraction вне форума Ответить с цитированием
Старый 11.03.2013, 12:27   #3
NewBoy
Пользователь
 
Аватар для NewBoy
 
Регистрация: 12.06.2012
Сообщений: 41
По умолчанию

Спасибо огромное.
ReadProcessMemory(); - это то что нужно, всё получилось! Репутацию повысил!
NewBoy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подписаться на событие другого приложения Tolias C# (си шарп) 6 07.03.2012 17:59
ошибка приложения инструкция по адресу "0х00400000" обратилась к памяти по адресу "0х00400000". Память не может быть "wr sanalia Помощь студентам 0 30.09.2011 22:20
Узнать HWND компонента другого приложения Revenant Mar Sara Общие вопросы Delphi 1 16.07.2010 02:50
Запуск другого приложения Sparky Общие вопросы по Java, Java SE, Kotlin 3 18.10.2009 11:03
Вызов одного приложения из другого zalum Общие вопросы Delphi 8 24.04.2009 10:05