Windows Server 2003 下"该内存不能为written"的解决方案(DEP 作怪)--转
运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。
“0x????????”指令引用的“0x????????”内存。该内存不能为“read”。
“0x????????”指令引用的“0x????????”内存,该内存不能为“written”。
最近重装了win2003,发现很多本来运行的好好的程序都莫名出错.实在很纳闷.
于是一探究竟,上网搜索了一下关于内存不能为written的文章,用他们的方法都不行.应该就不是他们提到的原因.内存不能为“written”,我想大概是win2003开了某些保护机制.仔细想想原来的配置.好像系统有一个什么数据保护的.于是去修改一下,发现原来有错的程序好了.
数据执行保护 (DEP) 有助于防止来自病毒和其他安全威胁的损坏,这些安全威胁可以通过在仅应该由 Windows 和其他程序使用的内存位置上运行(执行)恶意代码来发起攻击。这种威胁可以通过接管由程序正在使用的一个或多个内存位置而造成破坏。然后,它会传播和损害其他程序、文件甚至电子邮件联系人。
与防火墙或防病毒程序不同,DEP 不会防止有害的程序安装在计算机中。然而,它会监视程序以确定程序是否安全地使用系统内存。为此,DEP 软件可以独立工作,也可以与兼容的微处理器协同工作,从而将某些内存位置标记为“不可执行”。如果某个程序尝试从受保护的位置运行恶意或非恶意代码,DEP 会关闭该程序并通知您。
DEP 可以利用软件和硬件支持。要使用 DEP,计算机必须运行带有 Service Pack 2 (SP2) 的 Microsoft Windows XP、带有 Service Pack 1 (SP1) 的 Microsoft Windows Server 2003 或者基于 x64 的 Windows Server 2003 或 Windows XP 操作系统版本。单独使用 DEP 软件即可有助于防止特定类型的恶意代码攻击,但要充分利用 DEP 所提供的保护功能,处理器必须支持“执行保护”。这是一种基于硬件的技术,目的在于将内存位置标记为“不可执行”。如果您的处理器不支持基于硬件的 DEP,那么最好升级到可提供执行保护功能的处理器。
如何设置:
- 要打开“系统属性”,请单击“开始”,指向“设置”,单击“控制面板”,然后双击“系统”。
- 单击“高级”选项卡,在“性能”下,单击“设置”。
- 单击“数据执行保护”选项卡。
- 选择第一个选项"只为关键 Windows 程序和服务启用数据执行保护"。当然你也可以选择第二个选项,然后添加不保护的程序.