1.Linux系统下各设备的驱动版本怎么检查

2.如何处理系统崩溃后的Windows 7

3.关闭IE浏览器,提示已停止工作,查看详细,内容有:故障模块名称StackHash_0a9e

4.Windows优化大师Wopti进程管理大师怎么使用

5.求救~~

Linux系统下各设备的驱动版本怎么检查

电脑系统模块名称怎么查-模块名称是什么

对于网卡:

用ethtool -i ethX可以查询该网络设备的版本信息

包括driver版本信息和firmware版本信息

用此命令也能看到总线信息和该设备所用的driver模块名称

假定该网卡使用的驱动模块是intel的e1000

再用modinfo e1000就可看到该driver模块的详细信息

如何处理系统崩溃后的Windows 7

如何处理系统崩溃后的Windows 7

想准备使用WindDbg来解决Windows 7系统崩溃,需要一台个人电脑满足下列要求:

32位或64位Windows 7/Vista/XP或Windows Server 2008/2003

约25MB的硬盘空间(这不包括存储转储文件或符号文件的空间)

正常的互联网连接

微软Internet Explorer 5.0或更高版本

WinDBG的最新版本是Windows SDK中的一个选项。SDK下载文件名为winsdk web.exe,大小498KB,可以免费下载。(注意:安装调试器后,可以删除庞大的下载文件,从而腾出大量空间。)

内存转储(页面文件必须在C:上,以便Windows保存内存转储文件)

安装WinDbg

下载Windows SDK、运行安装向导程序后,选择Common Utilities(常用实用程序)下面的Debugging Tools for Windows(Windows调试工具)选项。

配置启动和恢复

这一步很烦人。因为不太容易找到启动和恢复对话框;为了检查系统已设定成在错误检查期间采取合适的动作,包括要不要自动重新启动、保存多少大小的转储文件,需要这个对话框。

找到启动和恢复对话框:

1、选择屏幕左下角的Start(开始)按钮

2、选择Control Panel(控制面板)

3、选择System and Security(系统和安全)

4、从右边栏的选项中选择System(系统)

5、从左边栏中选择Advanced system settings(高级系统设置),显示SystemProperties(系统属性)对话框

6、在系统属性对话框中选择Advanced(高级)选项卡

7、在启动和恢复区中选择Settings(设置)按钮

看到如下所示的启动和恢复对话框:

确保启动和恢复设置是否正确

在System failure(系统故障)下

1、勾选Write an event to the system log(将事件写入系统日志)

2、勾选Automatically restart(自动重新启动)

3、选择Kernel memory dump(核心内存转储)

4、确保转储文件写入%SystemRoot%\MEMORY.DMP

5、勾选Overwrite any existing file(覆盖任何现有文件),以节省硬盘空间

请注意:这将意味着你的系统将既保存内核转储文件,又保存微型转储文件。然而,尽管你有一个微型转储用于每个事件,但保存的将是最近一个内核转储。

配置WinDbg

启动调试器:想启动WinDbg,请依次选择下列:

Start | All Programs | Debugging Tools for Windows| WinDbg

开始|所有程序| Windows调试工具|WinDbg

如果你要随时使用WindDbg,需要简化这个程序的启动:只要把它固定到Startup(启动)菜单上,或者发送快捷方式到桌面上。

符号有多重要?

在你想找到转储文件中的某个异常模块、急于挽救局面之前,得确保调试器已准备就绪。最重要的是,你得确信它会为你在排除故障的那个操作系统的确切版本找到符号文件。

符号表是编译后的产物。当某个程序被编译后,源代码从一种高级语言转换成了机器码。与此同时,编译器会创建一个符号文件,带有标识符列表、标识符在程序中的位置及其属性。一些标识符是全局和局部变量以及函数调用。程序不需要这些信息才能执行。因而,信息可以取出来存储在另一个文件中,减小了最终可执行文件的大小。

与较大的可执行文件相比,较小的可执行文件占用磁盘空间较少,加载到内存的速度较快。但凡事都有另一面:某程序引起问题时,操作系统只知道出现问题的十六进制地址。你需要比这更多的信息,才能确定哪个程序在使用该内存空间,它试图在进行什么操作。Windows符号表就能解答这个问题,而可以访问针对特定系统内存的符号好比将地名加在地图上。反过来,分析符号表错误的转储文件好比拿着一张波士顿的地图在旧金山找路。

配置WinDbg以定位符号

Windows有数量多得惊人的符号表文件。之所以这样,是因为操作系统的每个版本,甚至一次性版本,都会带来一个新文件。幸运的是,WinDbg可以为你处理这件事,但必须为它配置正确的搜索路径。要做到这一点,就要启动WinDbg,并依次选择下列:

File | Symbol file path

文件|符号文件路径

请注意:星号之间的地址表明你想把符号存储在何处,以便将来访问。比如说,我把符号存储在C:驱动器根目录下一个名为symbols的文件夹中,

打开内存转储时,WinDbg会查看可执行文件(.exe和.dll等文件),并提取版本信息。然后它会请求微软的符号服务器,该服务器包含该版本信息,并找到确切的符号表,从中获取信息。它不会下载你在排除故障的特定操作系统的所有符号,只会下载需要的符号。另外,你可以选择从微软下载并存储完整的符号文件。然而,对于你在分析的操作系统的每个版本而言,这个文件的大小在600MB到800MB之间。相比之下,WinDbg下载的文件不到100MB,即可分析测试机上操作系统的好几个版本。即使如今硬盘成本很低,节省的空间还是相当大。

关于转储文件

内存转储文件是一份快照,表明了系统崩溃时内存里面有什么。虽然内存转储文件也许是你可能需要查看的最乏味、最不直观的东西,但操作系统崩溃时,它是你最好的朋友。Windows创建了三种不同大小的内存转储:微型转储(minidump)、内核转储(kernel dump)和完全转储(full dump)。

1、小型转储或微型转储

Windows 7微型转储只有256K字节,不管从哪个标准来看都很小;然而,它们比Windows 2000/XP时候大了不少,那时候只有64K。微型转储之所以这么小,原因之一是,它们不含有故障出现时,内存中的任何二进制文件或可执行文件。不过,那些文件对调试器在之后进行分析来说至关重要。只要你在创建转储文件的机器上调试,WinDbg就能在System Root文件夹中找到它们(除非转储文件创建后,二进制文件因系统更新而更改)。此外,调试器应该能够通过SymServ来找到它们。如果配置得当,除了内核转储外(下文有描述),Windows 7还会为每一次崩溃事件创建和保存微型转储。

2、内核转储

内核转储大小大致相当于Windows 7的内核占用的内存。在我的笔记本电脑上,内核转储约344MB大小,压缩后只有100MB多点。内核转储的一个优点是,它含有二进制文件。默认情况下,我总是让系统保存最近的内核转储。请记住:系统在保存内核转储时,也会保存微型转储。

3、完整转储或完全转储

完全内存转储大小相当于已安装内存的数量。由于许多系统有数GB内存,这方面的存储很快会成为问题,如果你频频遇到崩溃,更是如此。我通常不建议保存完全内存转储,因为它们占用太多的空间,而且一般也不需要。不过微软的Vachon倒建议:“如果你试图调试一个很复杂的问题,比如设备中多个服务之间的远程过程调用(RPC)问题,又想看看这些服务在用户模式下进行什么操作,完全内存转储就大有帮助。”因此,要坚持保存内核转储,但要准备偶尔创建完全转储。

如果没有内存转储可供使用,怎么办?

如果你没有内存转储可以查看,也不用担心,可以让系统崩溃!最简单的方法(不必更改注册表的设置)是,运行一个名为NotMyFault的出色工具(这要感谢Mark Russinovich和SysInternals网站的团队)。它提供了一系列选项,可以加载行为异常的驱动程序(这需要管理员权限)。

但记住:NotMyFault会制造系统崩溃!所以要让你的系统准备好,确信让需要访问该系统的任何人注销退出几分钟。凡是含有可能会丢失的信息的文件都要保存,并关闭应用程序。如果按上述方法配置了系统,它应该没有问题。机器应该会崩溃,重新启动,这样就有了内核转储和微型转储可以查看。我用过好多次,毫无问题。

下载NotMyFault,迫使系统崩溃

1、从下列微软网址下载NotMyFault工具,将文件提取到文件夹。

2、鼠标右击NotMyFault.exe,或者在命令提示符下,键入NotMyFault。如果看到“You don't have permission to open this file”(你没有权限打开此文件)的信息,那么再试一次,但是鼠标右击时,选择“Run as Administrator”(以管理员身份运行)。

3、从菜单中选择High IRQL fault (kernelmode))和Do Bug按钮。这将生成一个内存转储文件和“Stop D1”错误。

4、稍等一下...你的系统马上会回来,会有微型转储和内核转储可以查看了。

加载转储文件

如果你看到“你没有权限打开此文件”的信息,通过鼠标右击WinDbg来进行重新启动,选择“以管理员身份运行”。

一旦调试器运行,选择菜单选项File | Open crash dump(文件|打开崩溃转储),指向它,打开你想要分析的内存转储。如果你想让它记住转储文件在哪里,那么看到Save information for workspace(为工作区保存信息)时,选择Yes(确定)。

WinDbg会寻找Windows的这个确切版本的Windows符号文件。它引用符号文件路径,访问microsoft.com,并显示结果。

注意:如果调试器似乎很忙,那可能是第一次打开特定机器的转储文件,因而,WinDbg从SymServ下载符号。下次打开同一台机器的转储时,调试器似乎会快得多,因为符号文件已在本机上。

命令窗口会出现,崩溃分析显示在该窗口上。左下角将是KD>提示符。提示符右边是一个单行窗口,你可以在这里输入命令。

可能的错误信息

如果你看到信息:

ERROR: Symbol file could not be found. Defaulted to export symbolsfor ntoskrnl.exe -

错误:符号文件找不到。默认情况下导出ntoskrnl.exe的符号-

通常是下列三种情况中有一种出错了:

路径不正确;仔细检查,确保之前输入的符号文件路径没有拼写错误或其他错误(如空白处)

连接失效,检查互联网连接,确保它在正常工作

防火墙禁止访问符号文件,或者符号文件在检索过程中已损坏

如果你的路径和连接没问题,那么问题可能出在防火墙上。如果防火墙一开始阻止WinDbg下载符号表,这会导致符号文件损坏。如果对防火墙解禁,再次试图下载符号文件仍不行,那么表明符号文件已损坏。最快的解决办法是关闭WinDbg,删除symbols文件夹(最有可能设成c:\symbols),并且对防火墙解禁。现在,重新打开WinDbg和转储文件。调试器会重新创建文件夹,并重新下载符号。

如果你看到这个信息:

Kernel symbols are WRONG. Please fix symbols to do analysis.

内核符号错误。请改正符号,进行分析。

那么,WinDbg无法检索正确的符号,它会改而使用默认的符号表。但是这个警告信息表明,它无法生成正确的结果。请记住:符号表是在程序编译时生成的,所以每个Windows版本、补丁和热修复程序等都有符号表文件。返回到前一个章节,确保你设置的路径正确、连接正常,而且没有被阻止。

从头到尾浏览WinDbg的输出。你可能会看到类似以下的错误信息,表明它可能找不到信息myfault.sys:

Unable to load image \?\C:\Windows\system32\drivers\myfault.sys,Win32 error 0n2

无法加载映像\?\C:\Windows\system32\drivers\myfault.sys, Win32 error 0n2

WARNING: Unable to verify timestamp for myfault.sys

警告:无法为myfault.sys验证时间戳

ERROR: Module load completed but symbols could not be loaded formyfault.sys

错误:模块加载已完成,但无法为myfault.sys加载符号

这意味着,调试器在寻找myfault.sys方面的信息。然而,由于它像第三方驱动程序(是的,它是由微软开发,但肯定不是平常的微软产品),它没有符号(微软并不存储所有第三方驱动程序)。可以忽视 该错误信息。供应商通常在交付驱动程序时不附带符号文件,符号文件并不是你所必要的;没有符号文件,你也能找到有问题的驱动程序。

当你让WinDbg打开转储文件后,它会自动进行基本的分析。甚至不用给调试器下达任何直接命令,它已报出了可疑对象,如下面屏幕所示。

命令

有数百个命令可以控制WinDbg;WinDbg是个功能很强大的工具。幸运的是,我们只需要一个命令。为了让探讨更深入一点,我们将多用两个命令,总共有三个命令。它们是!analyze –v、lmv和lmvm。

!analyze –v以详细模式分析!analyze –v显示了系统崩溃时,描述系统状态的信息,遇到的故障,以及谁是主要的可疑对象。

lmv显示加载模块的

详细信息lmv显示了一系列驱动程序及路径、版本和供应商信息。它常包含产品描述。lmv输出结果可能要很长的时间。留意WinDbg界面的左下角,你通常会看到kd>提示符。获取信息时,它会显示*BUSY*。只有kd>提示符返回后,你才能使用另外的命令。

lmvm

[模块名称]显示某加载模块

(模块名称)的

详细信息lmvm[模块名称]让你能够告诉调试器只获取那个特定模块的信息。比如说:lmvm myfault.sys。

!analyze -v

在命令窗口底部的命令行上输入!analyze -v(注意yynw命令与“-v”之间的空间)。V(详细)这个参数选项符告诉WinDbg,你想要所有的详细信息。它给出的解释结合了英语和编程术语,不过这是个良好的开头。实际上,在许多情况下,你可能不需要任何下一步操作。如果你明白了崩溃的原因,可能就搞定了。

下面这个例子是使用NotmyFault驱动程序来分析我们的崩溃。

如果使用!analyze –v,调试器输出结果的一个重要部分是堆栈文本。每次查看转储文件,总要关注堆栈最右边,留意任何第三方驱动程序。在本例中,我们看到了myfault。请注意:事件由下往上按年月顺序排列;系统执行每个新任务时,新任务会显示在最上面,把以前的操作往下移。在这个很短的堆栈中,你会看到myfault处于活跃状态,然后出现页面错误,系统声明进行错误检查,这正是系统停止(蓝屏)的时候。请注意:部分数据已被清除,以便该内容能在一个页面上显示,“truncated”注释表明了这点。

用lmv来分析

下一步是确认可疑对象的存在,并找到有关它的任何详细信息。往命令行中输入lvm,可显示已加载的模块;v指调试器以详细模式输出,显示模块的所有已知详细信息。

如果运行命令lmv后,你看到WinDbg的界面左下角出现*BUSY*(*忙碌*)信息,也不用担心。这是由于它在收集系统发生故障时,加载模块的详细信息;收集过程可能需要几分钟。收集完毕后,你会在原来显示BUSY的地方看到kd>。

这里有大量信息。找到所要关注的驱动程序得花点时间,所以可通过选择Edit | Find(编辑|查找)来简化这个过程,然后输入可疑的驱动程序,这里是myfault。你看到的信息多少取决于驱动程序供应商。一些供应商把很少的信息放在文件中,而微软等另一些供应商往往把全面的信息放在文件中。

用lmvm来分析

想直接找到某个特定模块,一个好方法就是使用lmvm命令。在这种情况下,输入lmvm myfault,调试器将只返回针对该模块的数据。

你找到供应商的名称后,进入其网站,检查更新、知识库文章及其他支持信息。要是没有这些内容,或未能解决问题,请联系供应商。对方可能会要你把调试信息发过去(很容易把调试器的输出结果拷贝到电子邮件或Word文档里面),或者可能会要你把内存转储发过去(先进行打包,既为了压缩内存转储,又为了保护数据完整性)。

另外的三分之一

幸运的是,你一打开转储文件就知道原因的机率大概有三分之二。但有时转储文件提供的信息具有误导性,或者不够全面。这时候,又该怎么办呢?

有时原因出在硬件上

如果你老是遇到崩溃,又没有明确或一致的原因,可能出在内存问题上。下载免费测试工具Memtest86。这个简单的诊断工具运行速度快、效果好。许多人轻视内存问题的可能性,因为内存问题仅占系统崩溃的一小部分。然而,内存问题常常是害得你一直猜测的原因。

Windows是罪魁祸首吗?

很抱歉,这不可能!虽然可能有人会觉得很意外,但事实上,操作系统很少出错。如果ntoskrnl.exe(Windows核心)或win32.sys(主要负责Windows上GUI层的驱动程序)被列为是罪魁祸首——它们常常被这样列为,也不要过于草率地下定论。下面这种可能性大得多:某个异常的第三方设备驱动程序调用了Windows组件,以执行一项操作,然后传送了坏的指令,比如告诉它写入到根本不存在的内存。所以,尽管操作系统肯定会犯错,但你在怪罪微软之前先排除掉其他的所有可能性。

冤枉驱动程序

你经常会看到反病毒驱动程序被列为是崩溃的原因。比如说,使用!analyze -v后,调试器在“IMAGE_NAME”(映像名称)这一行报告反病毒软件的驱动程序。原因可能确实出在反病毒驱动程序上,不过要牢记:这类驱动程序被冤枉的可能性更大。原因如下:反病毒代码要工作,它必须监视所有的文件打开和关闭。为了做到这一点,代码处在操作系统的低层,而且在不断工作。实际上,该代码太忙碌了;崩溃发生时,它常常出现在活跃的函数调用堆栈上,哪怕明明不是它导致崩溃,也这样。因为该堆栈上的任何第三方驱动程序立即成为可疑对象,所以反病毒驱动程序常常被列为崩溃的原因。不管是不是真的导致了问题,反病毒代码都经常出现在堆栈上。

缺少供应商信息?

一些驱动程序供应商并没有花时间把足够的信息附在模块后面。所以,如果lmv起不到帮助,试着查看映像路径上的子目录(如果有映像路径的话)。常常其中一个子目录就是供应商名称或者名称缩写。另一个办法就是用谷歌搜索引擎搜一下。输入驱动程序名称及/或文件夹名称。除了别人发布的关于该驱动程序的信息外,你可能还会找到相应的这家供应商。

总结

你已经花了时间来准备对付下一次蓝屏机,记住:在大多数情况下,你打开转储文件后,立马就能知道原因,整个过程用不了一分钟。如此轻而易举地查明三分之二的严重故障的原因,真是让人满意——对你的用户们来说更是如此。

关闭IE浏览器,提示已停止工作,查看详细,内容有:故障模块名称StackHash_0a9e

关闭IE浏览器,提示已停止工作,是设置错误造成的,解决方法如下:

1、首先点击进入电脑管家,并找到电脑诊所,如图所示。

2、然后在电脑诊所中找到上网异常-----IE报错,如图所示。

3、选择IE浏览器报错的类型,点击第一种IE浏览器出错崩溃,并点击立即修复;如图所示。

4、这时系统提示修复此项需要重置IE设置,请备份IE主页、代理服务器等设置,点击确定。

5、最后耐心等待,修复结束之后,可以试一试是否解决了问题,如果没有还可以点击尚未解决,深度修复。

Windows优化大师Wopti进程管理大师怎么使用

在使用电脑的过程中,我们可能会遇到操作错误或者有些进程被木马破坏。有时,黑客木马程会在系统中驻留一些进程,而一些杀毒软件由于无法主动关闭这些进程进行清除,会要求使用者重新启动计算机后进行杀毒(也就是不能带毒杀毒),遇到这种情况,使用者也可以通过Wopti 进程管理大师手动关闭这些可疑进程后进行清除。今天,小编就来跟大家分享Windows优化大师Wopti进程管理大师怎么使用。

在Windows2000/XP/2003中,系统自带的进程管理工具(以及普通的进程管理软件)无法区别相同进程名称的进程,例如:用户常常对进程列表中的多个svchost.exe感到困惑。现在简单了,Wopti 进程管理大师向您提供了简便的区别手段,选中需要了解的进程,主界面下方的进程描述中的第一项“命令行及参数”将立即告诉你该进程的命令行参数信息,例如:C:WindowsSystem32svchost.exe -k netsvcs和C:WindowsSystem32svchost.exe -k rpcss虽然进程名称均为svchost.exe,但从其参数来看,是启动的不同服务。另,用户也可以展开主界面上放选中的进程查看命令行及参数。

 新建任务:Wopti 进程管理大师将根据你所输入的名称,为您打开相应的程序、文件夹、文档或Internet资源。

 结束进程:将结束选中的进程。

 结束进程树:将结束选中进程以及任何被其直接或间接启动的子进程。

不同的进程可能包含有同一模块,更有甚者是个别恶意程序或病毒将自己的模块注入到了系统进程等其它进程中。例如:某插件将其存放在Downloaded Program Files目录下的CnsMin.dll注入了诸如IE等其它进程的空间。在上一版本的Windows进程管理中,用户虽然可以通过在模块列表中点击“发行商”来逐一检查进程是否已被注入,但依然不太方便。现在简单了,Wopti 进程管理大师向用户提供了强大的查找功能,用户可以方便地查找指定的模块存在于哪些进程中,例如:输入CnsMin.dll,不断点击“查找下一个”就可以便捷地找到自己系统上所有被注入了该模块的进程。

 查找:

 (1)、查找进程。输入需查找的进程名称关键字,选择“查找目标”为“进程”。点击“查找下一个”,Wopti 进程管理大师将查找进程列表中与输入内容匹配的项目,为方便用户管理查找到的进程,Wopti 进程管理大师将自动选中进程列表中的查找结果项。若进程列表中有多个项目与需查找的关键字匹配,则重复单击“查找下一个”将查找现有查找结果之后的下一个符合条件的项目,直到所有进程遍历结束。备注:本轮查找结束后,在结束对话框中点击“确定”,将从头开始新一轮的遍历查找过程。

(2)、查找模块。输入需查找的模块名称关键字,例如:ntdll.dll,选择“查找目标”为“模块”。点击“查找下一个”,Wopti 进程管理大师将逐一分析进程列表中的各进程是否包含与输入内容匹配的模块,为方便用户管理查找到的进程和模块,Wopti 进程管理大师将自动选中进程列表中包含该模块的进程,同时在模块列表中选中查找结果项。不同的进程可能包括有同一模块,此时,重复单击“查找下一个”将查找现有查找结果之后的下一个符合条件的项目,直到所有进程遍历结束。备注:本轮查找结束后,在结束对话框中点击“确定”,将从头开始新一轮的遍历查找过程。

 设置优先级:将设置选中进程的优先级,包括:实时、高、高于标准、标准、低于标准、低。备注:在“安全模式”下,Wopti 进程管理大师不允许将一个进程的优先级调整为实时和高。首先,大多数操作系统本身的进程优先级较实时低,如果一个进程得到的CPU时间比操作系统还多,易造成系统的崩溃。另外,也不要轻易将进程的优先级设置为高,因为,高优先级的进程会从低优先级的抢夺CPU时间,直到它处于空闲,而对于抢先式操作系统若不能合理安排优先级,是很容易崩溃的。

 在某一进程上点击右键,选择“设置优先级”,便可设置该进程的优先级。

点击“保存”,生成一个文本文件,方便您查看进程信息。

查看进程快照列表,里面有当前进程的详细信息。

求救~~

在Internet选项的高级设置中关闭第三方浏览器扩展

卸载或者关闭Internet防火墙和病毒防火墙之后再检查。某些不同品牌的防火墙之间有冲突。

卸载网络实名、3721、百度搜霸等劫持浏览器地址栏的软件,以及各种IE工具栏(一些软件的卸载程序一般不能彻底删除,具体删除方法可以上网搜索)

如果你的操作系统是Windows XP SP2,并且数据执行保护功能自动关闭IE.

--------------------------------------------------

现在的WinXP用户已无可选择地升级到了WinXP SP2,这样也让用户必须无条件地接受一个名为DEP(数据执行保护)的安全保护功能。如果你用上了64位CPU,那么,这个保护功能将更加强大,因为64处理器中采用了一种全新的防毒技术--EVP(增强型病毒防护),配合WinXP SP2的DEP技术,能将病毒的防治机制提升到一个新的高度。

不过EVP和DEP也存在兼容问题,它可能将对用户有用的程序也阻止掉,对普通用户而言,首先要解决这个问题。

1.在系统属性中修改

默认下,在“系统属性”下的“高级→设置→数据执行保护”中选择的是“仅为基本Windows程序和服务启用DEP”。在这种状态下,有的程序不能正常运行,如Virtual PC。

如果出现了有些应用程序不能正常运行,可在“数据执行保护”项中选择“为除下列选定程序之外的所有程序和服务启用DEP”,再单击“添加”,定位到某应用程序的安装目录,找到该程序的可执行文件,将其添加进来。一般地,这个程序就能正常运行了。重启电脑后设置生效。

2.直接修改Boot.ini文件

在WinXP SP2系统所在分区根目录下找到Boot.ini文件。注意看,它多出了一个“NoExecute”参数,而前面在系统属性中对DEP的修改也会反映在这个参数上。

在“数据执行保护”项中只有两个选项,反映在Boot.ini文件中就是“NoExecute”参数的“Optin”和“Opton”两个值。可是,有些应用程序或驱动程序的兼容性不强,纵使在“数据执行保护”中将其“放行”,它还是不能正常运行,比如:3721的上网助手、ZoneAlarm Pro等,这就要靠“NoExecute”参数的其他两个值了。

NoExecute=AlwaysOff相当于关闭EVP和DEP功能,此时,这两项功能将全部丧失。由这项功能引起的兼容性问题即全部解决,但少了一堵安全保护的墙。

数据执行保护解决方法

关键词: 数据执行保护 解决方法

右键 我的电脑 => 属性 => 高级 选项卡

在性能那点设置 => 数据执行保护 选择"除所选之外................."单选框,然后在添加Windows Explorer进去就行了

或者

例如,Boot.ini文件内容如下: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /noexecute=optin /fastdetect 修改后,最后一行变为: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home Edition" /execute /fastdetect

附:Windows XP SP2 中的数据执行保护功能的详细说明

概要

Microsoft Windows XP Service Pack 2 使用一项新的数据执行保护 (DEP) 功能,可禁止执行数据页中的代码。当尝试运行标记的数据页中的代码时,就会立即发生异常并禁止执行代码。这可以防止攻击者使用代码致使数据缓冲区溢出,然后执行该代码。

简介

数据执行保护 (DEP) 是 Microsoft Windows XP Service Pack 2 (SP2) 支持的一种处理器功能,它禁止在标记为数据存储的内存区域中执行代码。此功能也称作“不执行”和“执行保护”。当尝试运行标记的数据页中的代码时,就会立即发生异常并禁止执行代码。这可以防止攻击者使用代码致使数据缓冲区溢出,然后执行该代码。

更多信息

数据执行保护 (DEP) 有助于防止病毒和其他安全威胁造成破坏,它们的攻击方法是从只有 Windows 和其他程序可以使用的内存位置执行恶意代码。此类威胁使用以下方法造成破坏:它接管某个程序正在使用的一个或多个内存位置,然后进行传播并破坏其他程序、文件甚至您的电子邮件****。

与防火墙或防病毒程序不同,DEP 不能阻止在您的计算机上安装有害程序。但是,它会监视您的程序,以确定它们是否安全地使用系统内存。为此,DEP 软件会单独或与兼容的微处理器一起将某些内存位置标记为“不可执行”。如果某个程序尝试从受保护的位置运行代码,DEP 将关闭该程序并通知您。即使该代码不是恶意代码,也会执行此操作。

64 位 Windows 版本上的 DEP

64 位处理器上的 64 位 Windows 版本可以在 64 位模式下运行程序。无论处理器的结构如何,64 位 Windows 版本的内核模式 DEP 均适用于堆栈、页面缓冲池和会话池。

默认情况下,在 Windows XP SP2 中启用 DEP,并且无法将其禁用。64 位应用程序将无法从堆栈或默认进程堆中运行。对于需要分配可执行内存的应用程序,可使用带有某个 PAGE_EXECUTE* 内存属性的 VirtualAlloc( ) 来运行。

32 位 Windows 版本上的 DEP? 用户模式 DEP

在不久的将来,许多运行 Windows 和 Windows 兼容程序的计算机都将使用运行 32 位 Windows 版本的 32 位处理器。但是,AMD Opteron 和 Athlon-64 等新的处理器同时支持 32 位和 64 位操作模式。(32 位操作模式是旧模式;而 64 位操作模式是本机模式。)

同时支持 32 位和 64 位操作模式的新处理器可以在 32 位操作系统和 32 位应用程序环境中运行,在启用物理地址扩展 (PAE) 模式后,它们还可以使用 DEP。

我们将探讨分别为每个 32 位应用程序禁用或启用 DEP 的方法。默认情况下,为 64 位应用程序启用 DEP。DEP 异常将导致 Windows 系统上出现状态代码 STATUS_ACCESS_VIOLATION (0xc0000005)。在大多数进程中,这是一个未经处理的异常,并导致进程终止。

内核模式 DEP

对于用户模式和内核模式,DEP 的工作原理相同。在内核模式下,不能分别为每个驱动程序启用或禁用内存区域 DEP。默认情况下,在 32 位 Windows 版本上,DEP 仅适用于堆栈。在 64 位 Windows 版本上,DEP 适用于堆栈、页面缓冲池和会话池。内核模式下的访问冲突将导致出现 Bugcheck 0x000000FC:ATTEMPTED_EXECUTE_OF_NONEXECUTE_MEMORY。

兼容性问题

应用程序和驱动程序都可能会发生 DEP 兼容性问题。? 应用程序兼容性

有些应用程序行为可能与 DEP 不兼容。执行动态代码生成(如实时代码生成)的应用程序以及不使用“执行”权限明确标记生成的代码的应用程序与 DEP 之间可能存在兼容性问题。

试图违反 DEP 的应用程序将会出现异常,并显示状态代码 STATUS_ACCESS_VIOLATION (0xc0000005)。如果应用程序需要可执行内存,则必须在相应的内存中明确设置此属性,方法是在 Virtual* 内存分配函数的内存保护参数中指定 PAGE_EXECUTE、PAGE_EXECUTE_READ、PAGE_EXECUTE_READWRITE 或 PAGE_EXECUTE_WRITECOPY。

有关更多信息,请参阅下面的 MSDN 文章:

(

驱动程序兼容性

驱动程序与 DEP 的兼容性问题主要是指由 PAE 模式引起的兼容性问题。DEP 本身可能与以下驱动程序之间存在兼容性问题:执行代码生成的驱动程序或使用其他方法实时生成可执行代码的驱动程序。始终为 64 位 Windows 版本上加载的驱动程序启用 DEP 支持。尽管许多创建可执行代码的驱动程序在 Windows XP SP2 中可能已得到修复,但是不能保证所有驱动程序都已更新。

不过,因为使用这些方法的驱动程序非常少,所以 DEP 本身不会产生很多驱动程序兼容性问题。大多数驱动程序兼容性问题与在 32 位系统上运行 PAE 模式有关。如果启用 PAE 模式,有些驱动程序可能无法加载,这是因为该设备可能无法进行 64 位寻址,或者驱动程序可能假定 PAE 模式需要超过 4 GB 的 RAM。这些驱动程序认为,当它们处于 PAE 模式时,它们将始终接收 64 位地址,并认为它们(或其设备)无法解释该地址。

其他驱动程序可通过直接修改系统页表项,以便在 PAE 模式下进行加载,但这会导致系统不稳定。这些驱动程序需要 32 位页表项,但在 PAE 模式下它们收到的却是 64 位页表项。驱动程序与 PAE 之间最大的兼容性问题与直接内存访问 (DMA) 传输和映射寄存器分配有关。许多支持 DMA 的设备(通常是 32 位适配器)都无法进行 64 位物理寻址。当设备在 32 位模式下运行时,它可以对所有物理地址空间进行寻址。

在 PAE 模式下,数据可以位于大于 4 GB 的物理地址中。在此情况下,为使具有这些限制的设备能够正常工作,Windows XP SP2 通过提供由映射寄存器指示的 32 位地址,为 DMA 事务提供双缓冲处理。设备可以执行到 32 位地址的 DMA 事务,而且内核将内存复制到为驱动程序提供的 64 位地址。

当系统在禁用 PAE 的情况下运行时,32 位设备的驱动程序根本不需要实际内存来支持它们的映射寄存器。这意味着,不需要进行双缓冲处理,因为 32 位地址空间中包含所有设备和驱动程序。根据在基于 x86 和基于 x64 的计算机上对 32 位设备驱动程序进行的测试,大多数经过客户端测试并支持 DMA 的驱动程序都需要无限制的映射寄存器。

为限制兼容性问题,Windows XP SP2 对硬件抽象层 (HAL) 进行了更改以模拟 32 位 HAL DMA 行为。修改后的 HAL 使系统在 PAE 模式下运行时可以具有无限制的映射寄存器。另外,内核内存管理器忽略任何大于 4 GB 的物理地址。

由于对 HAL 和内存管理器进行了这些更改,我们预计运行 Windows XP SP2 且支持 DEP 的系统上的设备驱动程序兼容性问题将会降到最低。

开发人员备注

需要可执行内存区域的应用程序在分配内存时,必须使用 PAGE_EXECUTE、PAGE_EXECUTE_READ、PAGE_EXECUTE_READWRITE 或 PAGE_EXECUTE_WRITECOPY 属性。另外,应用程序不能从默认进程堆或堆栈执行。

大多数执行与 DEP 不兼容的操作的应用程序必须进行更新,以便与 DEP 保持兼容。如果某个应用程序从专用堆分配可执行内存,则必须确保该堆内存中设置了 EXECUTE 标志。该应用程序可以使用 VirtualAlloc 应用程序编程接口 (API) 分配具有适当保护设置的内存。

如果应用程序不从专用堆分配可执行内存,则必须对其进行修改以使其从专用堆分配可执行内存。该应用程序必须使用 VirtualAlloc API 创建此堆,并且至少为该内存指定 EXECUTE 标志。生成的任何代码必须放在该可执行堆中。

在生成可执行代码后,我们建议您为该应用程序设置内存保护,以禁止通过 VirtualProtect API 对该堆进行写访问。该措施将为进程地址空间的那些可执行区域提供更多保护。

配置和疑难解答

与数据执行保护支持有关的故障的症状包括:在启用 DEP 时尝试从内存执行的应用程序中发生访问冲突。在此情况下,将出现一个对话框,指示应用程序因 DEP 而出现错误。该对话框包含与以下内容类似的消息:

数据执行保护

Windows 安全功能检测到一个问题,并关闭了此程序。

名称:应用程序名称

发行商:应用程序发行商

数据执行保护帮助保护免受病毒和其他安全威胁的破坏。它是如何工作的?

(后跟“高级”和“确定”按钮。)

如果 DEP 是导致应用程序出现错误的原因,建议您与应用程序供应商取得联系,以确定是否有可用的更新,以使应用程序在启用 DEP 时能够正常运行。要解决这些问题,建议您安装此更新。

在单击“确定”后,将出现一个标准的 Windows 错误报告提示,并提供一个发送错误报告的选项。还可以通过“单击此处”选项查看收集了哪些信息。

在错误报告界面上单击“单击此处”链接后,将出现详细信息界面。在该数据的“错误签名”部分,您可以查看是否将此错误标识为“事件类型:BEX。BEX 指示与 DEP 相关的错误。

此界面还提供其他信息,这些信息主要来自一些异常参数: 参数 数据

1 应用程序名称

2 应用程序版本

3 应用程序时间戳

4 模块名称

5 模块版本

6 模块时间戳

7 模块偏移

8 异常代码(c0000005=访问冲突、c0000409=缓冲区溢出)

在初始界面上,您还可以单击“高级”来访问 DEP 配置设置。您可以使用这些设置为出现错误的应用程序添加例外项。

“数据执行保护”对话框提供以下三个选项:? 为所有程序启用 DEP(推荐)

关闭 DEP(不推荐)

帮助保护除下列程序之外的所有程序:

通过选择其中一个选项,您可以排除一个或多个应用程序,或者为整个计算机配置 DEP 设置。如果设置“关闭 DEP”选项,则会为当前运行的 Windows 安装的 boot.ini 配置文件添加一个开关。boot.ini 开关如下所示:? /noexecute — 这是默认开关。启用 DEP。

/execute — 它禁用 DEP。

注意:建议您不要全局性地禁用 DEP。这会使计算机处于不太安全的状态。

也可以在“系统”属性中访问这些 DEP 设置。

如果没有适用于您的应用程序的更新,请按照下列步骤操作以访问和配置 DEP 配置设置:1. 在应用程序出现错误时,单击“高级”。

2. 在“数据执行保护”对话框中,选择“帮助保护除下列程序之外的所有程序:”

3. 单击应用程序旁边的复选框,然后单击“应用”。

4. 这时会出现一个提示,告诉您必须重新启动系统。单击“确定”。

5. 再次单击“确定”,然后重新启动系统。

也可以在“系统”属性中执行此过程:1. 单击“开始”,然后单击“控制面板”。

2. 在经典视图中,双击“系统”。

3. 单击“高级”选项卡,单击“性能”,然后单击“设置”。

4. 在“性能选项”对话框中,单击“数据执行保护”选项卡。

5. 选择“为所有程序和服务启用 DEP,但我选择的程序和服务除外:”,然后单击“添加”。

6. 在“打开”对话框中,找到并选择该应用程序,然后单击“打开”。

7. 单击“应用”,然后单击“确定”。将出现一个提示,通知您必须重新启动系统后设置才能生效。单击“确定”。