Совместно используемая память не является причиной большинства эксплойтов по переполнению буфера. Windows не имеет общей памяти с Win 3.0 (или Win 3.1, работающей на 80286), поэтому прошло уже много времени, почти 20 лет, с момента последней поставки Windows, которая поддерживала модель общей памяти.
Переполнение буфера позволяет злоумышленнику изменять память в процессе, который используется. Тем самым злоумышленник стремится выполнить системную операцию (например, запустить процесс, или загрузить динамическую библиотеку, или изменить права определенного пользователя и т. Д.), Используя уровень привилегий целевых процессов.
Это возможно на платформах Win *, * nix и многих других. То, как ОС и приложение, которое эксплуатируется, справляется с этой попыткой, является тем, что имеет значение. Со стороны приложения, чтобы избежать этого, обычно требуется тщательная проверка размера буфера. Технологии, такие как ASLR (рандомизация размещения адресного пространства, которая не позволяет злоумышленнику угадать адрес функции, которую он должен вызвать, чтобы нанести вред) и DEP (предотвращение выполнения данных, которое не позволяет злоумышленнику внедрить исполняемый код в области данных) ОС, очень помогите. Со стороны ОС, не запуск приложений от имени пользователя root / администратора является, пожалуй, самой важной линией защиты.