Возможно ли, чтобы программа обращалась к памяти другой программы напрямую и считывала (или записывала) ее, или "наследовала" старое содержимое памяти, восстановленное из другой программы? (т. е. если он не обнуляет память перед использованием и просто читает из унифицированной памяти напрямую)
3 ответа
Начиная с Windows XP и выше, все основные операционные системы имеют такой тип защиты памяти. Одна программа не сможет записывать в память другой программы.
Вполне возможно, что программа может "восстановить" память, которая была удалена из другой программы, но у нее не будет информации, которая ранее была сохранена в ней.
Я не писал ни кода для Vista, ни для Win7, но я не могу представить, что их инструментарий разработчика не включает какой-либо механизм совместной памяти .
Я не был бы настолько уверен, что Windows 7 действительно реализует защиту памяти, потому что мы можем видеть, что люди могут взламывать игры (такие как Diablo 2) или даже программы, разработанные на VB2008, чтобы изменять содержимое своих переменных. Я протестировал его в программе, написанной на Visual Basic 2008, и попытался изменить содержимое переменной с помощью «Cheat Engine 5.6». Это сработало. Поэтому я думаю, что либо Windows 7 вообще не реализует защиту памяти, либо она по умолчанию отключена.