![]() |
|
![]() ![]() ![]() |
|
alex134 |
|
|||
Unregistered |
Пишу программу, которая читит игры, даже не знаю, как это объяснить. Короче, играю в Starcraft - выставляю себе 10000 минералов, или в Counter-strike 100 жизней, и так почти в любой игре. Схема такая. (1) Играю в тот же старкрафт, смотрю - у меня 8 минералов. Просканировал память старкрафта, и нашел там n адресов со значением 8. Подождал чуть-чуть - стало 16 минералов. В списке найденных адресов ищу те, значение которых изменилось на 16. Теперь я могу изменять содержимое этих ячеек памяти как душе угодно - поставить себе 8000 минералов, или по таймеру в Counter-Strike десять раз в секунду ставить 100 процентов жизни. Естественно, такая штука не только для Starcrafta & Counter-Strike пригодна. Хочу теперь это дело автоматизировать. Т.е., чтобы мой чит работал без вмешательства человека. Запустил чит, указал ему поддерживать уровень хелсов на отметке 100, запустить контру и играть спокойно. Ведь сложновато при каждом запуске игры проделывать схему (1)"подчеркнутая". Как быть, от чего оттолкнуться? Жду Ваших советов знатоки системы.
|
|||
|
||||
[auxx] |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
Ты схему1 ужо реализовал?
Полностью автоматизировать не вохможно. Надо будет указывать имя ехе-шкика игры =), исходное значение (8 или 16) и т.п. А вот алгоритм не плохой. |
|||
|
||||
alex134 |
|
|||
Unregistered |
Да, я схему 1 уже реализовал. Еще разок опишу проблему:
Принцип такой: Играю в тот же старкрафт, смотрю - у меня 8 минералов. Просканировал память старкрафта, и нашел там n адресов со значением 8. Подождал чуть-чуть - стало 16 минералов. В списке найденных адресов ищу те, значение которых изменилось на 16. И так каждый раз при запуске игры ![]()
Имя exe-шника игры - ессно придется указывать, но это можно сделать не во время игры - вот в чем суть. А вот (8 или 16) - надо придумать другой способ. 1) Ну, например, я запускал некую программу "Х" много раз, и на разных компах, и каждый раз искомые значения содержались по двум адресам : 6738148 и 8140032. Но, к сожалению в последнее время они начали "прыгать" по другим адресам (((( 2) Может можно как-то установить закономерность по такому прыганию? 3) Как-то исследовать саму программу, и узнать куда она пишет искомые значения, и т.д. Вариант 3 мне нравится больше всех. Может есть другие способы? P.S: догадаетесь ли вы что это за программа "Х"? Если угадаете, сразу поймете мою настырность в этом вопросе... Подсказка- начинается на "Cas.." заканчивается на "..esta". |
|||
|
||||
Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: нет Всего: 12 |
Дело в том, что под переменные память выделяться может динамически, соотв. выделяется из того места, где свободно, а где свободно определить не получится, соотв. и не получится определить закономерность.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: нет Всего: 57 |
Разве что если запускать на только что стартанувшей машине с минимумом сервисов - тогда вероятность стабильности адреса повышается. А если присвоить твоей сканилке хоткей, точнее, два хоткея, и давить на них при хелс=100 и хелс=90 (например), то уже можно пару адресов отыскать. |
|||
|
||||
Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: нет Всего: 12 |
Ага, а если еще написать свою ОС... Не, это все игры в Настрадамуса... з.ы. он там стремную фишку ломает... наерно какую-нить Casino Fiesta %) -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: нет Всего: 57 |
Зато интересные игры. Каждая партия - перезагрузка, каждый проигрыш - новый адрес... Компьютерная рулетка. |
|||
|
||||
[auxx] |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
напиши свой отладчик (довольно просто кстати, по этому делу много статей есть)
пусть ставит breakpoint на том месте, где выделяется память для переменной. тогда при каждом запуске у тебя будет адрес переменной твоей. плюс к этому breakpoint можно сделать на запись туды. тогда у тебя автоматически будет поддерживаться значение количества минералов и т.п. мне кстати тоже такая прога нужна: хочу друга в квейк сделать ![]() |
|||
|
||||
dim |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
Ну и что это дает? Какой признак того что при следующем запуске память выделилась именно под нужную переменную? --------------------
that's all |
|||
|
||||
[auxx] |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
а очень простой:
прога выполняется сама до первого VirtualAlloc. Затем получаешь в EAX адрес кол-ва минералов. Тогда можно автоматизировать исправление значения. Как узнать, куды ставить этот брикпоинт? по схеме 1. Это сообщение отредактировал(а) [auxx] - 5.2.2003, 09:53 |
|||
|
||||
Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: нет Всего: 12 |
[auxx]
ну мне кажется, что память там будет выделятся через CRT (new), но эт лана, а ведь там не две переменные... а, скажем, сотня... куда бряк ставить бум? а если они еще в разных последовательностях выделяются (в зависимости от условия например)? Не, эт все гадание на кофейной гуще. з.ы. а если значение содержится в динам. массиве? при расширении массива будет перераспределение памяти... -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: нет Всего: 25 |
А ты не пыталя создавать в своей проге алгоритмы, запускаеш прогу, запускаеш игру, и запускаеш алгоритм который по раннее заложенному алгоритму производит поиск и потдержание переменных.
Проблема состоит в том что при таком подходе некоторое время мниуту гдето придется играть по одному и томуже алгоритму... -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
alex134 |
|
|||
Unregistered |
ОК! Вопрос такой: как можно отследить создание всех переменных? Или как узнать, какая часть виртуального адресного пространства отведена для данных?
(Программа называется CashFiesta)))) |
|||
|
||||
dim |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
[auxx]
Ну ты молодец!!! Так ведь ведь вопрос был в том что схема 1 не подходит. А ты предлагешь еще кроме нее еще дополнительный гемор - так, чтоб жизнь скучной не была ![]() --------------------
that's all |
|||
|
||||
[auxx] |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
Дык если схема 1 не подходит, как по-другому? Ну можно всю прогу пошагово в отладчике выполнить, тогда может найдешь.
|
|||
|
||||
dim |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
[auxx]Ты пойми, если уже известны искомые адреса, то остальные извраты уже нафиг не нужны.
Ну допустим можно узнать расположение кучи и расположение стека, но что дальше ? --------------------
that's all |
|||
|
||||
[auxx] |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
Чето я совсем запутался.
А если не известны? Вот я и думаю, как их найти. Но если не по схеме 1, то придется прослеживать работу программы, а это сложно. И еще не ясно: чем схема 1 не подходит? |
|||
|
||||
[auxx] |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
Расположение кучи и стека узнать не сложно, а дальше зависит от того, где именно хранится значение.
Оно может быть: в стеке, гдето в статических данных, выделено динамически. (ничего не забыл?) Если в стеке, то для какогото конкретного места проги адресс будет равет начальный_ESP + какоето_постоянное_значение. (а вот найти это значение сложно) Если в статических данных, то все просто: смещение от начала данных постоянно, тока его найти надо. А если оно гдето в динамически выделенной памяти, то хрен его найдещь. |
|||
|
||||
Unregistered |
|
|||
Unregistered |
Как узнать расположение кучи и стека?
|
|||
|
||||
alex134 |
|
|||
Unregistered |
Прослеживать работу программы это отлаживать? И как можно узнать расположение кучи и стека? |
|||
|
||||
[auxx] |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
Стека - SS:ESP
Кучи - не помню. Это не сложно и пока не столь важно.
Ну типа того. |
|||
|
||||
Unregistered |
|
|||
Unregistered |
А если программа не отлаживается? В чем причина?
|
|||
|
||||
[auxx] |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
Это как? Все отлаживается. |
|||
|
||||
setq |
|
|||
Unregistered |
эх в жизни бы так... |
|||
|
||||
CaNIBaLchik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 8.2.2006 Где: Томск Репутация: нет Всего: нет |
Чуваки, как напишите киньте ссылку, а то меня на этаже в старик рвут как котенка, надоело
|
|||
|
||||
SoWa |
|
|||
![]() Харекришна ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2422 Регистрация: 18.10.2004 Репутация: 6 Всего: 74 |
![]() В сетевой игре не поможет. По вопросу. Не вижу ничего сложного, запускаешь свою прогу при старте игрухи и делаешь все, что делал до этого. -------------------- Всем добра ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |