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

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

Вернуться   Форум программистов > Программная инженерия > Безопасность, Шифрование
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.07.2014, 18:11   #1
lawliet93
Форумчанин
 
Регистрация: 30.08.2011
Сообщений: 102
По умолчанию Вопрос про написание трейнера для игорей

Хай! У меня простая задача (я сам её себе поставил), есть игра, в которой полоса жизней отображается без цифр, то есть я вижу, сколько у меня жизней, только в процентном соотношении, ну типа пол полоски нету - пол хп сняли, но в цифрах текущего хп я не вижу. И вот я хочу выводить куда-то эти циферки. С выводом и т.д. проблем не будет, но сначала нужно понять, как найти нужное значение в памяти.
Я прочитал статейку http://www.chemax.ru/articles/tutorial_dma_nondma.php, но она какая-то неполная.
Я нашел адрес, в котором записано текущее значение жизней, но проблема в том, что таких адресов несколько, и с каким работать - мне непонятно. К тому же, не совсем понятно, что делать далее. Я понял то, что в программе есть участки памяти, в которых записано значение, но эти участки изменяют свое положение при каждом запуске игры и т.д. Но есть указатели, которые не изменяют своего места располажения, и если я найду адрес нужного указателя, то я потом смогу просто подставлять его адрес + смещение и получать доступ к участку памяти с нужным мне значением. Но в статье автор не написал, относительно какого адреса находится адрес указателя? Ну я просто думаю, что при запуске программы, она загружается в свободное место, то есть, как на картинке

Это значит, что и адрес указателя будет менятся при каждом запуске проги?
В общем, расскажите, что знаете, про написание трейнера, или дайте годную статейку, где описаны все возможные проблемы и т.д. Пасиба.
lawliet93 вне форума Ответить с цитированием
Старый 26.07.2014, 18:30   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Конничива )
А тебе сколько лет если не секрет?
Кстати Игори твои не обидятся на трейнер?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.07.2014, 18:37   #3
lawliet93
Форумчанин
 
Регистрация: 30.08.2011
Сообщений: 102
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Конничива )
А тебе сколько лет если не секрет?
Кстати Игори твои не обидятся на трейнер?
21. Неее, эт ваще пиратка, к тому же 1 чел уже сделал все это и игорь не обиделся, я прост такой думаю - "он смог, а я шо? я не магу?" а я ж магу, ток не знаю как)))
lawliet93 вне форума Ответить с цитированием
Старый 26.07.2014, 18:46   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

) Повеселил...
Короче нужно тебе реверсировать игру, чтоб понять как она работает.
Без реверсирования врядли получится. Нужно в отладчике поискать код который отвечает за жизни, и после к нему привязываться.
Но привязываться это пол дела. А вот найти его...
Короче читать тебе нужно про отладку исполнимых файлов.
Не знаю никаких статей кроме чтива от Рикардо Нарвахи. Он правда совсем не про трейнеры пишет, но вот про отладку там можно многое узнать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.07.2014, 19:30   #5
lawliet93
Форумчанин
 
Регистрация: 30.08.2011
Сообщений: 102
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
) Повеселил...
Короче нужно тебе реверсировать игру, чтоб понять как она работает.
Без реверсирования врядли получится. Нужно в отладчике поискать код который отвечает за жизни, и после к нему привязываться.
Но привязываться это пол дела. А вот найти его...
Короче читать тебе нужно про отладку исполнимых файлов.
Не знаю никаких статей кроме чтива от Рикардо Нарвахи. Он правда совсем не про трейнеры пишет, но вот про отладку там можно многое узнать.
да эт че-то слишком сложное
lawliet93 вне форума Ответить с цитированием
Старый 26.07.2014, 19:39   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А как ты хотел? Р-р-р-аз и в дамки?
Это не два пальца об асфальт.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.07.2014, 19:46   #7
lawliet93
Форумчанин
 
Регистрация: 30.08.2011
Сообщений: 102
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А как ты хотел? Р-р-р-аз и в дамки?
Это не два пальца об асфальт.
ну тема с поиском поинтера была более-менее еще, да и тот чувак говорил, что дебажить не надо, надо еще инфу где-то поискать кароч
lawliet93 вне форума Ответить с цитированием
Старый 28.07.2014, 07:35   #8
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Это значит, что и адрес указателя будет менятся при каждом запуске проги?
Смотря как оно выделено. Скорее всего да. Могу предположить, что сначала чел искал в каком-нибудь ArtMoney, то смещение от начала данных где находится твое значение. Затем он искал указатель, который бы показывал на данный адрес. Затем наверно уже убедился, что сам указатель в памяти относительно начала блока данных не изменяется. И затем уже что-то там писал (наверно).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 28.07.2014, 11:08   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

с дебагом проще найти.
хотя можно вспомнить про Cheat engine.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.07.2014, 14:59   #10
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

lawliet93, копайте в сторону CheatEngine там тебе и дизассемблер и отладчик и скриптовой движок и создание трейнера из скрита и куча всего прочего... Но чтобы всем этим ползьоваться надо кое-что знать, и знать основательно:
1. Ассемблер AT&T, Intel, особенности x64 платформы
2. Понимание работы и взаимодействия ОЗУ, ПЗУ и ЦП.
3. Язык программирования Lua.
4. Английский язык на уровне чтения техн. документации.
{Дополнительно}5. Изучить как генерируется бинарный код казличными компиляторами. Там мнооого чего можно посмотреть, если знать где искать.
{Дополнительно}6. Практиковаться на каких-нибудь компиляторах ассесблера, FASM, NASM, TASM на выбор

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

Сейчас практивесски ве игры используют DMA.

Последний раз редактировалось Человек_Борща; 31.07.2014 в 15:05.
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос про инвентарь для MMO игры. moshkin_ura Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 21.03.2012 19:22
Создание трейнера для игры Человек_Борща Gamedev - cоздание игр: Unity, OpenGL, DirectX 13 12.11.2010 20:24
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24
Вопрос про правильное написание функции AndreichSB Microsoft Office Excel 6 25.12.2006 19:27