Форум 3DNews
Вернуться   Форум 3DNews > Софт > Операционные системы Microsoft Windows > FAQ по Windows XP / 2003 / 2000 / 98 / 95

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 06.10.2006, 03:34   [включить плавающее окно]   #1
cade
Мужской Новенький
Автор темы
 
Регистрация: 06.10.2006
КАК ВЫЛЕЧИТЬ СООБЩЕНИЕ ПАМЯТЬ НЕ МОЖЕТ БЫТЬ READ.

Наверное многие уже сталкивались в последнее время с таким известным сообщением
винды:
Инструкция по адресу "***" обратилась к памяти по адресу "***". Память не может
быть "read".

Лично меня эта надпись просто замучала и я наконец решил всерьез пройтись с этим
вопросом по интернету.

Его исследования показали, что, как обычно, 99% инфы пишут дилетанты, совершенно
не соображая что и о чем пишут.

Наиболее частые ответы - полетала память и рекомендуют скачать проверялку...
(Чушь!)
Другие варианты бреда приводить не буду.

Правильный скомпилированный ответ о проблеме - нестыковка некоторых устаревших
(или кривых программ) с Виндами.
(Последние тоже не отличаются особой "прямизной"! )

Особенно часто данная ошибка начинает доставать при установке SP2!

Одним из вариантов лечения этой беды предлагают переустановку Винды на более
старую версию... что, имхо, нам совершенно не подходит, т.к. на дворе все ж
21-й век.

Другим вариантом лечения предлагается установка ВСЕХ! программ самых последних
версий, что тоже не проходит, т.к. даже самые совеременные версии программ
запросто могут выдавать эту ошибку!

Покончим со вступлением и наконец-то перейдем к правильному ответу по данной
ситуации и предпримем правильные варианты решений доставшей нас проблемы.

Во всем, как выяснилось, виновата функция "Предотвращение выполнения данных"
(DEP)!!!
Т.к. данная ошибка возникает при обращении какой-либо программы или модуля
программы напрямую к закрытому участку памяти.

Краткая компиляция, из Хепа:
"...в отличие от брандмауэра или антивирусного программного обеспечения функция
DEP не препятствует установке потенциально опасных программ на компьютер, а
только следит за тем, как программы используют память, и после установки SP2,
DEP по умолчанию включена для основных программ и служб Windows."

И немножко комментариев.
Если какая-то программа вызывает срабатывание этой функции, Microsoft
рекомендует выбрать режим OptOut и добавить эту программу в список исключений.
Однако зачастую программа состоит не из одного исполняемого модуля, а из многих
динамических библиотек, и не всегда имеется возможность точно определить, какая
именно вызывает срабатывание DEP.
Если программа вам очень нужна, а добиться ее работоспособности вышеописанным
методом не получается, проще отключить DEP целиком, путем редактирования
boot.ini.
Хотя, если вероятность возникновения этой ошибки невелика, и если вы не
сталкиваетесь с нею, лучше оставить DEP включенной - так система будет больше
защищена от возможности выполнения вируса.

Cуществует четыре варианта настройки функции DEP

OptIn - (установлено по умолчанию). В этой конфигурации под действие функции DEP
подпадают только основные системные программы и службы.
OptOut - DEP включена для всех процессов и приложений, кроме тех, которые
вручную добавлены пользователем в список исключений.
AlwaysOn - В этом режиме DEP включена всегда для системы в целом, всех процессов
и приложений, не взирая на установки пользователя или производителя ПО.
AlwaysOff - DEP полностью отключена.

Первые два варианта настройки можно переключать с помощью панели управления:
"Система" -> "Дополнительно" -> "Быстродействие" -> кнопка "Параметры" ->
закладка "Предотвращение выполнения данных". (Доп.описание см.по ссылке от
туда.)

Для полного включения или выключения DEP необходимо вручную отредактировать
находящийся в корне загрузочного раздела диска скрытый файл boot.ini, добавив в
разделе [operating systems] в конец строки ?\WINDOWS="Microsoft Windows XP
Professional" /fastdetect ключ /NoExecute с одной из опций:

NoExecute = OptIn
NoExecute = OptOut
NoExecute = AlwaysOn
NoExecute = AlwaysOff

Для редактирования boot.ini нужно в панели управления "Система", на вкладке
"Дополнительно" в разделе "Загрузка и восстановление" нажать кнопку "Параметры"
и в открывшемся окне - кнопку "Правка". Файл boot.ini будет открыт в "Блокноте".

Или: Пуск -> Выполнить -> %systemdrive%\Boot.ini

После редактирования boot.ini не забудьте сохранить этот файл и перезагрузить
компьютер, чтобы изменения вступли в силу.

PS По умолчанию у меня стояла строка
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional
SP2" /noexecute=optin /fastdetect
Козе понятно я установил у себя /NoExecute=AlwaysOff

УРРЯ-А-а-а!!!!
Как всегда, "Все гениальное - просто!", когда "его(ее)" знаешь.
cade вне форума  
Ответить с цитированием
Непрочитано 13.10.2006, 23:36   [включить плавающее окно]   #2
Agmy
Мужской Интересующийся
 
Регистрация: 03.09.2006
2cade
Ты забыл в своей краткой компиляции немаловажную деталь, - для чего именно DEP следит за тем, как используется память:

"Предотвращение выполнения данных (DEP) используется для предотвращения проникновения на компьютер вирусов и других угроз безопасности, которые выполняют вредоносный код из областей памяти, которые должны использоваться только операционной системой Windows и другими программами. Такой тип угроз безопасности наносит ущерб, занимая по очереди все области памяти, используемые программой. Затем вирус распространяется и повреждает другие программы, файлы и даже контакты электронной почты.

В отличие от брандмауэра или антивирусной программы средство DEP не препятствует установке потенциально опасных программ на компьютер. Вместо этого выполняется наблюдение, чтобы программы использовали системную память безопасным образом. Для этого DEP работает отдельно или вместе с совместимыми микропроцессорами и помечает некоторые области как «невыполняемые». Если программа пытается запустить код (любой код) из защищенной области, DEP закрывает программу и отображает уведомление. В Windows XP SP2 технология DEP обеспечивается аппаратными и программными средствами..." ( http://www.oszone.net/display.php?id=2342&do=print )

ИМХО, просто взять и отключить функцию предотвращения выполнения данных (AlwaysOff) - решение проблемы настолько же гениальное, сколь гениальным было бы просто взять и полностью удалить фаервол и антивирь, чтобы в процессе жизнедеятельности не мешали всякие назойливые сообщения о каких-то там обнаруженных вирусах, подозрительной сетевой активности каких-то прог и о прочей фигне... Скорее, тогда уж OptOut - и то, с внимательным прищуром к объекту.
А так вообще - молодец.

Последний раз редактировалось Fakir; 27.10.2006 в 14:33.
Agmy вне форума  
Ответить с цитированием
Непрочитано 18.10.2006, 13:07   [включить плавающее окно]   #3
Bloke
Мужской Умудрённый
 
Аватар для Bloke
 
Регистрация: 12.09.2003
Адрес: Лапландия
вот все говорят "юзайте поиск" все таки вот Память не может быть read в данном случае результат вылетания ошибки были именно сетевые атаки (ОС w2k)... про DEP тогда не знали =) но все таки если бы была возможность ее отключить, то это бы повлияло на безопасность...
__________________
"Но знаешь, Бато, сеть действительно бесконечна
и безгранична" (GitS - Solid State Society)
Bloke вне форума  
Ответить с цитированием
Непрочитано 17.04.2009, 22:11   [включить плавающее окно]   #4
Fakir
Мужской Модератор
 
Аватар для Fakir
 
Регистрация: 26.04.2004
Адрес: Тольятти
Рекомендую так же почитать Что значит, память не может быть «read» («written»)?
__________________
Решил проблему, сообщи мне, как…
Fakir вне форума  
Конфигурация ПК
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 20:29. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey