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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2013, 15:46   #1
Khayzenberg
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 54
По умолчанию Значение по адресу в оперативке

Доброго времени суток.
Есть такая чудотворная прога, название ее АртМани, я так понял суть ее работы состоит в следующем: прога находит адрес в памяти и значение редактирует так что например количество деняг в игре меняется.
Так вот я хочу сделать прогу которая, будет находить занятые ячейки памяти и определять их тип. Но только не знаю как реализовать сам поиск. Кто поможет мне в этом? Мне не так важен код как алгоритм.
Khayzenberg вне форума Ответить с цитированием
Старый 04.09.2013, 16:02   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Почитайте теорию для начала.
Ваше не знание того, что менеджер памяти Windows разделяет память процесса на страницы(или же регионы), говорит о том, что вряд ли вы дальше сможете продолжить. У страниц есть привилегии. Привилегии страницы действуют на все ячейки в ней.

Почитайте о распределении памяти процесса, и как за этим следит Windows.
Сброс памяти процесса в файл уже обсуждался ранее(см. пост 44)... Там вы увидите и как получать страницы, и как с ними работать.

Последний раз редактировалось Человек_Борща; 04.09.2013 в 16:05.
Человек_Борща вне форума Ответить с цитированием
Старый 04.09.2013, 16:08   #3
Khayzenberg
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 54
По умолчанию

Благодарю вас, тепер буду знать в какую сторону.
Khayzenberg вне форума Ответить с цитированием
Старый 04.09.2013, 17:14   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

На заметку: Не всегда, далеко не всегда вы сможете снять PAGE_READONLY со страницы. артМани делает это с помощью драйвера режима ядра.
Человек_Борща вне форума Ответить с цитированием
Старый 05.09.2013, 11:53   #5
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

1) Для получунения и редактирования адресса в памяти используется ReadProcessMemory и WriteProcessMemory.
2) Нужен полный адресс
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 05.09.2013, 11:58   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Нужен полный адресс
...И доступ к памяти процесса )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.09.2013, 12:02   #7
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
...И доступ к памяти процесса )
Доступ к памяти процесса можно получить через его дескриптор(хендл). Так делает, например, Cheat Engine. А под полным адрессом, я имеел в виду адресс в памяти.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 05.09.2013, 12:15   #8
Khayzenberg
Пользователь
 
Регистрация: 21.07.2011
Сообщений: 54
По умолчанию

тепер еще разберусь и с функциями, спасибо всем)
Khayzenberg вне форума Ответить с цитированием
Старый 05.09.2013, 14:50   #9
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Посмотри информацию по функциям FindWindow,GetProcessId,OpenProcess ,CloseHandle,ReadProcessMemory,Writ eProcessMemory
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 05.09.2013, 15:01   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Доступ к памяти процесса можно получить через его дескриптор(хендл). Так делает, например, Cheat Engine. А под полным адрессом, я имеел в виду адресс в памяти.
можно, да не всегда.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции по её адресу t2skler Общие вопросы C/C++ 2 02.05.2012 11:15
отобразить файл по адресу heroii2009 C++ Builder 3 14.03.2012 10:42
Определение к какому адресу MaximusPrime Visual C++ 1 10.10.2011 15:16
ошибка приложения инструкция по адресу "0х00400000" обратилась к памяти по адресу "0х00400000". Память не может быть "wr sanalia Помощь студентам 0 30.09.2011 22:20
Взятие значения по адресу nusik Общие вопросы C/C++ 1 25.05.2009 01:59