Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Серьезная штука с памятью 
:(
    Опции темы
alex134
Дата 4.2.2003, 04:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Пишу программу, которая читит игры, даже не знаю, как это объяснить. Короче, играю в Starcraft - выставляю себе 10000 минералов, или в Counter-strike 100 жизней, и так почти в любой игре. Схема такая. (1) Играю в тот же старкрафт, смотрю - у меня 8 минералов. Просканировал память старкрафта, и нашел там n адресов со значением 8. Подождал чуть-чуть - стало 16 минералов. В списке найденных адресов ищу те, значение которых изменилось на 16. Теперь я могу изменять содержимое этих ячеек памяти как душе угодно - поставить себе 8000 минералов, или по таймеру в Counter-Strike десять раз в секунду ставить 100 процентов жизни. Естественно, такая штука не только для Starcrafta & Counter-Strike пригодна. Хочу теперь это дело автоматизировать. Т.е., чтобы мой чит работал без вмешательства человека. Запустил чит, указал ему поддерживать уровень хелсов на отметке 100, запустить контру и играть спокойно. Ведь сложновато при каждом запуске игры проделывать схему (1)"подчеркнутая". Как быть, от чего оттолкнуться? Жду Ваших советов знатоки системы.
  Вверх
[auxx]
Дата 4.2.2003, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 2.2.2003

Репутация: нет
Всего: нет



Ты схему1 ужо реализовал?

Полностью автоматизировать не вохможно. Надо будет указывать имя ехе-шкика игры =), исходное значение (8 или 16) и т.п. А вот алгоритм не плохой.
PM MAIL   Вверх
alex134
Дата 4.2.2003, 21:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да, я схему 1 уже реализовал. Еще разок опишу проблему:
Принцип такой: Играю в тот же старкрафт, смотрю - у меня 8 минералов. Просканировал память старкрафта, и нашел там n адресов со значением 8. Подождал чуть-чуть - стало 16 минералов. В списке найденных адресов ищу те, значение которых изменилось на 16. И так каждый раз при запуске игры sad.gif А теперь представьте себе, как это будет выглядеть в стрелялке? Я бегаю со 100 хелсами, просканировал память, потом в меня начинают стрелять, мне надо как-то скрыться еще живым, и потом опять быстро просканировать память игры. Вот такая фигня, сложновато это и напряжно. Вот я и хочу автоматизировать каким-то хреном свою программу, чтобы получать список адресов другим образом, не требующим такого ручного вмешательства юзера. Думаю, я понятно объяснил задачу.
Цитата
Полностью автоматизировать не вохможно. Надо будет указывать имя ехе-шкика игры =), исходное значение (8 или 16) и т.п. А вот алгоритм не плохой.

Имя exe-шника игры - ессно придется указывать, но это можно сделать не во время игры - вот в чем суть. А вот (8 или 16) - надо придумать другой способ. 1) Ну, например, я запускал некую программу "Х" много раз, и на разных компах, и каждый раз искомые значения содержались по двум адресам : 6738148 и 8140032. Но, к сожалению в последнее время они начали "прыгать" по другим адресам (((( 2) Может можно как-то установить закономерность по такому прыганию? 3) Как-то исследовать саму программу, и узнать куда она пишет искомые значения, и т.д. Вариант 3 мне нравится больше всех. Может есть другие способы?
P.S: догадаетесь ли вы что это за программа "Х"? Если угадаете, сразу поймете мою настырность в этом вопросе... Подсказка- начинается на "Cas.." заканчивается на "..esta".
  Вверх
Baa
Дата 4.2.2003, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



Дело в том, что под переменные память выделяться может динамически, соотв. выделяется из того места, где свободно, а где свободно определить не получится, соотв. и не получится определить закономерность.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
December
Дата 4.2.2003, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: нет
Всего: 57



Цитата(Baa @ 4.2.2003, 18:19)
Дело в том, что под переменные память выделяться может динамически, соотв. выделяется из того места, где свободно, а где свободно определить не получится, соотв. и не получится определить закономерность.

Разве что если запускать на только что стартанувшей машине с минимумом сервисов - тогда вероятность стабильности адреса повышается.
А если присвоить твоей сканилке хоткей, точнее, два хоткея, и давить на них при хелс=100 и хелс=90 (например), то уже можно пару адресов отыскать.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Baa
Дата 4.2.2003, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



Цитата(December @ 4.2.2003, 22:50)
Разве что если запускать на только что стартанувшей машине с минимумом сервисов - тогда вероятность стабильности адреса повышается.

Ага, а если еще написать свою ОС...
Не, это все игры в Настрадамуса...
з.ы. он там стремную фишку ломает... наерно какую-нить Casino Fiesta %)


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
December
Дата 5.2.2003, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: нет
Всего: 57



Цитата(Baa @ 4.2.2003, 19:09)
Не, это все игры в Настрадамуса...
з.ы. он там стремную фишку ломает... наерно какую-нить Casino Fiesta %)

Зато интересные игры. Каждая партия - перезагрузка, каждый проигрыш - новый адрес... Компьютерная рулетка.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
[auxx]
Дата 5.2.2003, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 2.2.2003

Репутация: нет
Всего: нет



напиши свой отладчик (довольно просто кстати, по этому делу много статей есть)
пусть ставит breakpoint на том месте, где выделяется память для переменной.
тогда при каждом запуске у тебя будет адрес переменной твоей.
плюс к этому breakpoint можно сделать на запись туды. тогда у тебя автоматически будет поддерживаться значение количества минералов и т.п.

мне кстати тоже такая прога нужна: хочу друга в квейк сделать smile.gif
PM MAIL   Вверх
dim
Дата 5.2.2003, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 24.12.2002

Репутация: нет
Всего: нет



Цитата

напиши свой отладчик (довольно просто кстати, по этому делу много статей есть)
пусть ставит breakpoint на том месте, где выделяется память для переменной.
тогда при каждом запуске у тебя будет адрес переменной твоей.

Ну и что это дает? Какой признак того что при следующем запуске память выделилась именно под нужную переменную?
--------------------
that's all
PM MAIL   Вверх
[auxx]
Дата 5.2.2003, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 2.2.2003

Репутация: нет
Всего: нет



а очень простой:
Цитата

DWORD a; //kol-vo mineralov
DWORD b; //kol-vo zhiznei
a=VirtualAlloc(...);
//ставиш сюды breakpoint (сразу после вызова VirtualAlloc
b=VirtualAlloc(...);

прога выполняется сама до первого VirtualAlloc. Затем получаешь в EAX адрес кол-ва минералов.
Тогда можно автоматизировать исправление значения.

Как узнать, куды ставить этот брикпоинт? по схеме 1.

Это сообщение отредактировал(а) [auxx] - 5.2.2003, 09:53
PM MAIL   Вверх
Baa
Дата 5.2.2003, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



[auxx]
ну мне кажется, что память там будет выделятся через CRT (new), но эт лана, а ведь там не две переменные... а, скажем, сотня... куда бряк ставить бум? а если они еще в разных последовательностях выделяются (в зависимости от условия например)?
Не, эт все гадание на кофейной гуще.
з.ы. а если значение содержится в динам. массиве? при расширении массива будет перераспределение памяти...


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Step
Дата 5.2.2003, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: нет
Всего: 25



А ты не пыталя создавать в своей проге алгоритмы, запускаеш прогу, запускаеш игру, и запускаеш алгоритм который по раннее заложенному алгоритму производит поиск и потдержание переменных.
Проблема состоит в том что при таком подходе некоторое время мниуту гдето придется играть по одному и томуже алгоритму...


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
alex134
Дата 5.2.2003, 22:42 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











ОК! Вопрос такой: как можно отследить создание всех переменных? Или как узнать, какая часть виртуального адресного пространства отведена для данных?
(Программа называется CashFiesta))))
  Вверх
dim
Дата 6.2.2003, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 24.12.2002

Репутация: нет
Всего: нет



[auxx]
Цитата

Как узнать, куды ставить этот брикпоинт? по схеме 1.

Ну ты молодец!!! Так ведь ведь вопрос был в том что схема 1 не подходит. А ты предлагешь еще кроме нее еще дополнительный гемор - так, чтоб жизнь скучной не была smile.gif.
--------------------
that's all
PM MAIL   Вверх
[auxx]
Дата 6.2.2003, 02:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 2.2.2003

Репутация: нет
Всего: нет



Дык если схема 1 не подходит, как по-другому? Ну можно всю прогу пошагово в отладчике выполнить, тогда может найдешь.
PM MAIL   Вверх
dim
Дата 6.2.2003, 04:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 24.12.2002

Репутация: нет
Всего: нет



[auxx]Ты пойми, если уже известны искомые адреса, то остальные извраты уже нафиг не нужны.
Цитата

ОК! Вопрос такой: как можно отследить создание всех переменных? Или как узнать, какая часть виртуального адресного пространства отведена для данных?

Ну допустим можно узнать расположение кучи и расположение стека, но что дальше ?
--------------------
that's all
PM MAIL   Вверх
[auxx]
Дата 6.2.2003, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 2.2.2003

Репутация: нет
Всего: нет



Чето я совсем запутался.

Цитата
Ты пойми, если уже известны искомые адреса, то остальные извраты уже нафиг не нужны.

А если не известны? Вот я и думаю, как их найти. Но если не по схеме 1, то придется прослеживать работу программы, а это сложно.

И еще не ясно: чем схема 1 не подходит?
PM MAIL   Вверх
[auxx]
Дата 6.2.2003, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 2.2.2003

Репутация: нет
Всего: нет



Расположение кучи и стека узнать не сложно, а дальше зависит от того, где именно хранится значение.

Оно может быть: в стеке, гдето в статических данных, выделено динамически. (ничего не забыл?)

Если в стеке, то для какогото конкретного места проги адресс будет равет начальный_ESP + какоето_постоянное_значение. (а вот найти это значение сложно)

Если в статических данных, то все просто: смещение от начала данных постоянно, тока его найти надо.

А если оно гдето в динамически выделенной памяти, то хрен его найдещь.
PM MAIL   Вверх
Unregistered
Дата 7.2.2003, 21:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как узнать расположение кучи и стека?
  Вверх
alex134
Дата 7.2.2003, 21:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата

А если не известны? Вот я и думаю, как их найти. Но если не по схеме 1, то придется прослеживать работу программы, а это сложно.
И еще не ясно: чем схема 1 не подходит?

Прослеживать работу программы это отлаживать? И как можно узнать расположение кучи и стека?
  Вверх
[auxx]
Дата 7.2.2003, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 2.2.2003

Репутация: нет
Всего: нет



Стека - SS:ESP
Кучи - не помню. Это не сложно и пока не столь важно.
Цитата
Прослеживать работу программы это отлаживать?

Ну типа того.
PM MAIL   Вверх
Unregistered
Дата 9.2.2003, 01:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А если программа не отлаживается? В чем причина?
  Вверх
[auxx]
Дата 9.2.2003, 03:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 2.2.2003

Репутация: нет
Всего: нет



Цитата
А если программа не отлаживается?

Это как? Все отлаживается.

PM MAIL   Вверх
setq
Дата 11.2.2003, 01:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(alex134 @ 3.2.2003, 20:25)
Пишу программу, которая читит игры, даже не знаю, как это объяснить. Короче, играю в Starcraft - выставляю себе 10000 минералов, или в Counter-strike 100 жизней, и так почти в любой игре...

эх в жизни бы так...
  Вверх
CaNIBaLchik
  Дата 8.2.2006, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 8.2.2006
Где: Томск

Репутация: нет
Всего: нет



Чуваки, как напишите киньте ссылку, а то меня на этаже в старик рвут как котенка, надоело
PM MAIL ICQ   Вверх
SoWa
Дата 8.2.2006, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Цитата(CaNIBaLchik @ 8.2.2006, 15:17 Найти цитируемый пост)

Чуваки, как напишите киньте ссылку, а то меня на этаже в старик рвут как котенка, надоело

smile
В сетевой игре не поможет.

По вопросу. Не вижу ничего сложного, запускаешь свою прогу при старте игрухи и делаешь все, что делал до этого.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0996 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.