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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 19:12   #1
g-davicelli
Пользователь
 
Аватар для g-davicelli
 
Регистрация: 05.02.2011
Сообщений: 11
Сообщение Перехват событий счётчика жизней в игре

Здравствуйте! Возник довольна интересный вопрос. Собственно не чего сверх глобального или просто сложного. Проще говоря как можно реализовать перехват определённых событий в компьютерной игре? Меня собственно интересует счётчик жизней, то есть если с ним происходят изменения на них реагирует внешняя программа. К примеру как отловить изменение счётчика жизней в игре Star Wars Battlefront, Unreal или ваши варианты?
Лично сам пока смутно что-то представляю, экспериментирую я отладчиками... Но всё же я думаю стоит спросить у народа, может кто-то уже что-то подобное делал?
g-davicelli вне форума Ответить с цитированием
Старый 11.12.2011, 19:48   #2
haruhi
Форумчанин
 
Аватар для haruhi
 
Регистрация: 05.10.2011
Сообщений: 368
По умолчанию

эта задача спецефична для каждой игры, надо чётко знать внутреннее устройство игры
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
haruhi вне форума Ответить с цитированием
Старый 11.12.2011, 20:48   #3
g-davicelli
Пользователь
 
Аватар для g-davicelli
 
Регистрация: 05.02.2011
Сообщений: 11
По умолчанию

Цитата:
Сообщение от haruhi Посмотреть сообщение
эта задача спецефична для каждой игры, надо чётко знать внутреннее устройство игры
Ваши слова не лишены искомого мной смысла! А интересующие меня игры я уже указал ранее в своём сообщение. Но собственно меня всё же интересует совет, направление по которому мне надо продолжать поиски.
g-davicelli вне форума Ответить с цитированием
Старый 12.12.2011, 10:42   #4
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

g-davicelli, здравствуйте. Алгоритм действий:
Допустим что хотим перехватывать количество денег в игре. (все действия производится в программе CheatEngine)
1. Ищем число денег в памяти (скорее всего оно будет размера int (для HP наверняка будет размера в один байт)).
2. Как нашли - ставим бряк на память где это число хранится.
3. Изменяем количество денег через игру.
4. Как изменили - сработает бряк который мы поставили на память. Ну и как он сработает - тебя выкинет в asm код где это значение изменится. Вот, это то событие где изменяется кол. денег.
5. Для того чтобы перехватывать количество денег можно пойти двумя путями:
5.1. Изменяем код EXE который на HDD.(естественно изменяем на то, чтобы отсылал количество денег в память программы шпиона)(минусы: скорее всего код программы будет чем нибудь зашифрован)
5.2. Изменяем код EXE который уже в памяти. (минусы тут есть но не существенные)

Другой вариант на мониторинг изменения кол. денег такой:
Искать кол. денег в памяти. Следить за ним (из программы шпиона) и как оно изменится - давать сигнал. Минусы очень существенные (если интересует автоматизм) - надо будет фильтровать (отсеивать) ручками найденные адреса.(т.к. если мы захотим найти в памяти число 100 (к примеру будет это кол. HP) то это число будет много раз встречаться в памяти)
zotox вне форума Ответить с цитированием
Старый 16.02.2012, 02:57   #5
g-davicelli
Пользователь
 
Аватар для g-davicelli
 
Регистрация: 05.02.2011
Сообщений: 11
По умолчанию

Всем доброго здравия и времени суток! Если помните не так давно я задавался вопросом, перехвата событий счётчика жизней в компьютерных играх. Собственно мой вопрос для меня ещё актуален, предложенное, Zotox`ом решение весьма интересно. Хотя при моих экспериментах в этой области не было успешных результатов. Проще говоря мне не удаётся программным путём перехватить и корректно обработать события счётчика из игры. Для эксперимента была взята компьютерная игра, Unreal tournament 2004. Пытался получить строку которая отвечает за жизни с помощью программы ArtMoney, и в последствии перехватить её своей программой. Но как уже было сказано не было результата.
Может быть кто что посоветует, предложен исходник укажет на ошибку или предложен иное решение?
g-davicelli вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неработает перехват событий от клавиатуры AndruXaII Win Api 4 27.09.2011 20:05
Перехват событий принтера Kazik Помощь студентам 1 02.06.2011 21:28
Перехват событий клавиатуры и мыши (X system) damned20 Qt и кроссплатформенное программирование С/С++ 4 26.02.2010 12:18
Перехват событий клавиатуры и мыши (X system) damned20 Общие вопросы C/C++ 0 25.02.2010 09:40
Перехват событий клавиатуры CODeRUS Win Api 8 06.07.2009 11:08