Я думал, что каждый обрабатывает, не может считать память другого процесса. Но я потрясен видеть приложение под названием "WinHex", который имеет "Редактора Поршня", и он в состоянии получить доступ ко всей памяти. из всех процессов.
Как это возможно? И это даже в состоянии изменить память других процессов. Разве это не становится злонамеренным?
Ну, это одна из вещей, которые может сделать процесс с правильными привилегиями, предоставленными операционной системой. Процессы не могут получить доступ к памяти других процессов в принципе. На практике лежащая в основе операционная система обычно предлагает этот механизм привилегированным процессам.
Если вы работаете от имени Администратора, вы можете получить привилегии на чтение всей памяти; похоже, что WinHex делает это от вашего имени.
Вы пробовали это на более ограниченной учетной записи?
Скорее всего, инструмент использует ReadProcessMemory или какой-нибудь вариант, требующий доступа PROCESS_VM_READ.
Что касается вашего "вредоносного" комментария, помните, что вы (или процесс, вызывающий этот API, которому, скорее всего, нужны права администратора) уже имеете полный контроль над машиной. На данный момент игра в безопасность уже проиграна
.Я думаю, что он использует какую-то технику инъекции DLL.
См. http://en.wikipedia.org/wiki/DLL_injection для получения дополнительной информации
. Доступ к памяти другого процесса - кусок кека.
Можно даже использовать Windows Driver Kit для доступа и изменения всего .
Посмотрите, например, руткиты , чтобы увидеть, как хрупкая операционная система, если не ограничивать привилегии программ.
.