Как приложение может иметь статические адреса памяти?

Я использую приложение для редактирования памяти, известное как Cheat Engine. Я прикрепляю Cheat Engine к игре. В моей игре у меня есть 32-разрядное целое число, известное как HP. HP хранится по адресу памяти A. Если я перезагружаю игру, HP хранится по новому адресу памяти B. Похоже, что с помощью Cheat Engine я могу выполнить сканирование указателя и найти статический адрес памяти C, который всегда хранит Адрес памяти HP во время этого сеанса. Поэтому, если я разыменую C, я всегда получаю адрес памяти, в котором хранится HP. Как всегда гарантируется, что C всегда будет одним и тем же адресом памяти? Что, если другое приложение запускается и занимает эту область памяти?

1 ответ

Решение

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

Другие вопросы по тегам