Адресный запрос - PullRequest
       20

Адресный запрос

2 голосов
/ 21 июня 2011

Хорошо, допустим, у меня есть целое число. Когда я выполняю программу, это целое число получает адрес.

Имеет смысл.

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

Но ... Этот хак, этот простой хак, который просто меняет какой-то адрес ... Работает на каждом компьютере и каждый раз.

Вопрос в том, что данные каждый раз получают один и тот же адрес. И на моем компьютере сейчас работает около 30 exe. Разве другие программы не хотят этот адрес? Что если они захотят этот адрес? Почему этот хак работает каждый раз? Почему другие программы не хотят того же адреса? Как это работает каждый раз?

Ответы [ 3 ]

2 голосов
/ 21 июня 2011

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

Вот довольно хорошая статья , освещающая тему.

Ваш "хак", вероятно, находит процесс, используя что-то вроде OpenProcess и редактирует память, используя WriteProcessMemory . Вот почему он работает на «всех» машинах.

2 голосов
/ 21 июня 2011

В основном вам нужно прочитать о виртуальной памяти . Цель виртуальной памяти - абстрагировать физическое адресное пространство и дать каждому процессу (т.е. каждому приложению) свое собственное «виртуальное» адресное пространство, что позволяет избежать проблемы, которую вы описываете.

1 голос
/ 21 июня 2011

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

...