iis查看js 弹出文件选择框,一直弹报错弹框 ,不影响运行,每点击一次js 弹出文件选择框都会出这个

网站ARP攻击被挂马弹出广告窗口解决实战
时间: 22:43:30
浏览次数:
  题记:如果你是从搜索引擎搜到这里的,我相信你一定非常着急,废话不多说,直入主题。其余感悟我挪到文章最后说。
  我这里讨论是博客最近被ARP攻击的例子,烦死了。表现形式为网站被iframe挂马,弹出大量色情网站,问题出现了11个小时,这11小时都在血泪的探索中解决。
  判断ARP攻击方法
  一台服务器几乎所有网站打开网页HTML都被自动加上如这种样式的代码,有的在头部,有的在尾部,部分杀毒软件打开会报毒,打开HTML或ASP、PHP页面,在源码中怎么也找不到这段代码。
  首先你可以随意建一个HTML文件上传到服务器,通过网站打开,如发现这个文件加入了iframe代码那说明中招了。
  解决办法
  第一种方法:检查IIS文档页脚
  注意红框处,无特殊情况文档页脚是不会被启用的,如果你看到这里勾选并指向了一个本地HTML文件,你可以打开指向本地文件查看是否为木马病毒代码。
  第二种方法:检查MetaBase.xml文件
  MetaBase.xml是IIS里的一个配置文件,位置是:
  C:\WINDOWS\system32\inetsrv\MetaBase.xml
  检查是否被添加上如下一段代码:
  AccessFlags=&AccessRead | AccessScript&
  AppFriendlyName=&默认应用程序&
  AppIsolated=&2&
  AppRoot=&/LM/W3SVC//Root&
  AuthFlags=&AuthAnonymous | AuthNTLM&
  DefaultDocFooter=&FILE:C:\WINDOWS\system32\Com\iis.htm&
  DefaultDocFooter=后面一般都是跟一个本地的文件,木马病毒就在这里了,把这段删除即可。
  特别提示:MetaBase.xml无法直接修改,需要停止IIS服务才能修改,或者在IIS管理器中右击本地计算机--选择属性,勾选&允许直接编辑配置数据库&,这样就可以在不停止IIS的情况下编辑metabase.xml文件。
  第三种方法:检查ISAPI筛选器
  目前这些DLL加载的文件,任何一款杀毒软件和杀木马软件还不能有效发现并杀掉,还得靠肉眼来实现。所以方法也很简单:
  打开IIS,右键点击网站,属性&&找到ISAPI选项卡,检查下里面是否多了一些陌生的DLL文件。如果有陌生的DLL删除,重启IIS即可。
  第四种方法:检查global.asa木马
  先解释一下这个代码的作用:因为global.asa 文件是网站启动的文件,当一个网站被用户访问的时候,会执行Application_Start代码段的内容,当一个用户第一次访问时会执行Session_Start代码段的内容,所以此段代码的作用就是当访问的时候自动下载获取木马内容,上面遇到的就是跳转性作用的木马代码。
  global.asa木马一样平常不会影响网站的正常运行,黑客一样平常行使global.asa木马不是为了来破坏网站的运行,他们与网站黑链类似,一样平常是对网站的搜索引擎收录产生特别很是恶劣的影响。常体现为搜索引擎收录大量莫名其妙的网站题目,而这些题目绝对不是本身网站发布的内容,点击链接进入的依然是本网站的页面,但题目不同,点击百度快照发现百度提醒:&对不起,您所查看的网页不许可百度保存其快照,您可以直接访问某某网址&,没错!这说明你的网站已经中招了!它的直接后果是网站在搜索引擎的排名降落或者彻底消散,紧张的还会让访问者在访问你的网站的时候电脑中毒!
  global.asa这个文件一般是在根目录下的,属于系统文件只能在cmd命令下强制删除。如果自己不会删除的话你可以找自己的空间商让他们给你删除这个木马。
  特别提示:以上方法均不起作用
  上面提到的这些防ARP攻击的方法,都是从网上搜的,所有的方法起码重复了三遍,但是问题依旧没有解决,后面才知道,IFRAME被植入有两种情况:
  一、就是有人在你的IIS上动了手脚,方法查找被修改的配置文件,或直接重装。
  二、如果你重装还是没有解决,那就是ARP欺骗攻击,和你同一个服务器的局域网段的其他服务器有问题,装ARP防火墙和向网管反映这个情况。解决这个问题要使用排除法找到真正原因,对症下药:)
  花了大量时间排查,整整耽误了11个小时,后面才恍然大悟,原以为是自己服务器出问题了,没想到是局域网段其他服务器的问题。后面装了个360ARP防火墙才解决此问题。
  扩展阅读:
  ARP欺骗原理:
  在局域网中,通信前必须通过ARP协议来完成IP地址转换为第二层物理地址(即MAC地址)。ARP协议对网络安全具有重要的意义,但是当初ARP方式的设计没有考虑到过多的安全问题,给ARP留下很多的隐患,ARP欺骗就是其中一个例子。而ARP欺骗攻击就是利用该协议漏洞,通过伪造MAC地址实现ARP欺骗的攻击技术。
  在同一局域网内的电脑都是通过MAC地址进行通讯的。方法为,PC和另一台设备通讯,PC会先寻找对方的IP地址,然后在通过ARP表(ARP表里面有所以可以通讯IP和IP所对应的MAC地址)调出相应的MAC地址。通过MAC地址与对方通讯。也就是说在内网中各设备互相寻找和用来通讯的地址是MAC地址,而不是IP地址。
  网内的任何一台机器都可以轻松的发送ARP广播,来宣称自己的IP和自己的MAC.这样收到的机器都会在自己的ARP表格中建立一个他的ARP项,记录他的IP和MAC地址。如果这个广播是错误的其他机器也会接受。有了这个方法欺骗者只需要做一个软件,就可以在局域网内进行ARP欺骗攻击了。
  ARP的发现:
  ARP的通病就是掉线,在掉线的基础上可以通过以下几种方式判别,1.一般情况下不需要处理1分钟之内就可以回复正常上网。因为ARP欺骗是由时限,过了期限就会自动的回复正常。而且现在大多数路由器都会在很短时间内不停广播自己的正确ARP,使受骗的机器回复正常。但是如果出现攻击性ARP欺骗(其实就是时间很短的量很大的欺骗ARP,1秒有个几百上千的),他是不断的通过非常大量ARP欺骗来阻止内网机器上网,即使路由器不断广播正确的包也会被他大量的错误信息给淹没。2.打开被骗机器的DOS界面,输入ARP -A命令会看到相关的ARP表,通过看到的网关的MAC地址可以去判别是否出现ARP欺骗,但是由于时限性,这个工作必须在机器回复正常之前完成。如果出现欺骗问题,ARP表里面会出现错误的网关MAC地址,和真实的网关MAC一对黑白立分。
  下面在谈谈几款ARP防火墙的使用感受:
  安全狗
  我首先想到的是安全狗,在服务器这块很出名,ARP攻击后,我第一时间装上了,这也是我悲催的开始。装好软件后,点&体检&,当初我还以为是查到木马了要重启,结果服务器开不了机了,反反复复好几次,我就意识到这不是杀毒呢,而是服务器关机了。
  由于是周末,IDC值班人少,反复的关机、开机浪费了整整4个小时。最后才明白应该就是安全狗和服务器什么东西有冲突导致的。
  网站地址:http://www.safedog.cn/
  好几个朋友向我推荐了D盾,尤其是他的Web查杀工具,这款工具能够非常详细的检查每一个程序文件是否被挂马。正是因为用了这款工具检查后,我才意识到卢松松博客程序没有问题,
  网站地址:http://d99net.net/
  360ARP防火墙
  上面两个都有ARP防火墙的,装上之后发现没一个管用的(也许是不会用的关系),后面装了360ARP之后,iframe挂马立刻消失。为了确定到底能否使用,我反复启动和关闭软件几次,可以确定360ARP确实起作用了。
  通过追踪ARP攻击来源,发现是同局域网下另一台服务器总是向我发送ARP欺骗请求,后面通过IP查到域名,通过域名找到了邮件,给她发了封邮件告诉她服务器被黑了。
  强烈推荐一下360ARP,帮我解决了大问题:
  免费的360ARP防火墙的下载地址是:http://dl.360.cn/360AntiArp.exe
  写在最后:
  说一千道一万,还是服务器安全做的不到位,ZSX告诉我:你博客真遭人黑,通过日志查到了各种扫描器。IIS&Windows&集成身份验证弹出输入用户名密码的解决办法
作者:夏明亮
Technorati 标签:&,,,,,
如果您正在设置您的IIS身份验证方式为“Windows
集成身份验证”,并且您在使用IE访问您的站点时发现IE仍然要求您输入您的用户名和密码,您有不知道问题出在哪里,那么本文将对您有所帮助。
根据我们的理解“Windows
集成身份验证”意味着IE会自动使用当前系统登录的账户证明访问IE站点,这里面的原理微软官方的解释是通过Kerberos(如果您对此不是很了解可以参照我的另一篇文章:)。
但是理论和我们亲身验证的结果并不一样,您遇到的情况也许和我下面遇到的情形类似:
首先我建好IIS站点,并设置身份验证方式为“Windows 集成身份验证”。(我关闭了其他的验证方式,以确保试验变量的唯一性)
接下来我在IE上访问该站点。
我得到了如下提示:
然后我输入我登陆该计算机的域账户名和密码后我顺利进入站点。
但是我的本意并不是这样的(我是使用域账户登陆的,并且我在IIS上没有设置对该账户的任何禁止权限),除非我没有使用有权限的域账户进行登录,我希望IE不要提示我再一次输入我的用户名和密码。
接下来我教大家一个方法让IE变得聪明一点,不在找我要用户名和密码。
我将该站点的网址加入到IE的“本地Intranet”区域。
然后重启IE,重新访问该网址
我直接就进来了,但是这一切都是建立在我的客户端计算机已经加入域,并且我使用域账户登录,且我的计算机处在可以和域控制器联系的内网环境中。
最后,这种设置方式针对小规模的客户端还是值得考虑的,如果您有成百上千台客户端需要设置,那么这项简单的工作就会瞬间变成噩梦了。要打开这个节,我们可以通过公司行政手段发个配置手册什么的,显然这并不是最好的办法。除此之外我们还可以通过组策略设置。相关的内容在我的博客中也有,请参阅:(这篇文章和我们本次目的不完全吻合,但是当你看完全文,你会得到一种思路。关键就在本文的最后一步,那个数字“4”代表“受限制”区域,好像“1”代表的是“本地Intranet”区域)。
希望大家继续支持我,精彩内容稍后为您呈现。
http://982988.blog.51cto.com/4066
Internet Explorer 可能提示您输入密码
将您的用户名和密码传递给 Internet 信息服务 (IIS) Web 服务器是 Web 浏览器的责任。以下情形就身份验证问题说明了
Internet Explorer 和 IIS 之间的关系。
注意:Windows
集成身份验证、Windows NT 质询/响应 (NTCR) 和 Windows NT LAN 管理器 (NTLM)
是相同的,在本文中作为同义词来使用。
Windows 集成身份验证(Microsoft Windows NT 质询/响应)时,Internet Explorer
会提示输入密码。&
要使 Internet Explorer 自动验证用户登录和密码并保持安全性,必须满足以下条件:
必须在 IIS 的
Web 站点属性中启用 Windows 集成身份验证,也称为 Windows NT 质询/响应。首先尝试匿名身份验证,然后进行
Windows 集成身份验证、简要身份验证(如果适用),最后进行基本(明文)身份验证。
客户端和 Web
服务器都必须在基于 Microsoft Windows NT 或基于 Microsoft Windows 2000
的同一个域内,或者在受信任的基于 Windows NT 或基于 Windows 2000
的不同域内(在这些域内可以授予用户帐户访问基于 IIS 的计算机资源的权限)。
用户的浏览器必须是
Internet Explorer。Internet Explorer 是唯一支持 Windows 集成身份验证 (NTCR)
的浏览器。
Explorer 必须把所请求的 URL 视为 Intranet(本地)。如果所请求的 URL 的计算机名称部分包含句点(如
http://www.microsoft.com 和 http://10.0.0.1),Internet Explorer 会假定在
Internet 中存在所请求的地址而不自动传递任何凭据。不包含句点的地址(如 http://webserver)被认为在
Intranet (本地);Internet Explorer 会自动传递凭据。唯一的例外是在 Internet Explorer
中的 Intranet 区域内包括的地址。
Explorer 的 Intranet 区域的安全性设置必须设为“只在 Intranet 区域自动登录”。这是 Internet
Explorer 的默认设置。有关 Internet Explorer 安全性区域的其他信息,请单击下面的文章编号,以查看
Microsoft 知识库中相应的文章:
Internet Explorer 中使用安全区域
页的用户必须具有访问该 Web 页以及该 Web 页中引用的所有对象的适当的文件系统 (NTFS) 权限。例如,一位用户可能对某个
Web 页具有完全控制权,但如果该 Web 页引用了位于某个安全文件夹中的图形,他仍会收到输入密码的提示。
当您使用基本(明文)身份验证或简要身份验证时,Internet Explorer
会提示输入密码。&
当您使用基本(明文)身份验证或简要身份验证时,Internet Explorer
不会自动传递您的用户名和密码。因此,当您使用这几种身份验证方法时,您总是收到要求凭据的提示。
在使用匿名身份验证时,Internet Explorer 提示输入密码。&
匿名身份验证从不提示您输入密码,因为 IIS 已经知道匿名帐户的用户名和密码。您收到输入密码的提示是因为 Internet
Explorer 已经被强制使用匿名身份验证以外的其他身份验证方法。发生这种情况是因为匿名用户帐户(默认情况下是
IUSR_computername)没有获得对以下一个或多个项目的访问权:
所请求的文件或
任何嵌入到该文件或
Web 页中的所请求的对象(例如图形)
与所请求的文件或
web 页相关联的 ISAPI 扩展名(例如,.shtml 文件)
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
Internet Information Server 4.0 中的权限问题
http://support.microsoft.com/kb/258063/zh-cn
当用户属于多个组时,Kerberos
身份验证问题
当用户属于多个组时,该用户可能必须使用身份验证或使用组策略设置时出现问题。下面的 Microsoft
知识库文章描述了这些症状中的详细信息:
由于连接到 IIS
的缓冲区不足,Internet Explorer Kerberos 身份验证不起作用
缓冲区溢出攻击可以使用扩展存储过程
400-错误的请求 (请求标题太长)"错误在 Internet Information Services
在这些文章中介绍的解决方法指示您要修改的 MaxTokenSize
注册表值。此解决方法做了改进。如果您使用本文中介绍的修复程序,您可能没有编辑默认的 MaxTokenSize
本文中介绍的修补程序取代了在此部分中列出的 Microsoft
知识库文章中介绍的修补程序。
用户不能进行身份验证,因为身份验证尝试过程中生成的
Kerberos 令牌具有固定的最大大小。如远程过程调用 (RPC) 的运输和 HTTP 依赖的 MaxTokenSize
值时它们分配缓冲区进行身份验证。在
Windows 2000 (原始发行版本) 中,MaxTokenSize 的值是 8000
个字节。在 Windows 2000
Service Pack 2 (SP2) 和 Windows Server 2003 中,MaxTokenSize 的值是 12000
字节为单位)。
Kerberos 使用到传输活动目录组成员身份的
Kerberos 数据包的特权属性证书 (PAC) 字段。从 Windows Server 2012,这同样适用于活动目录理赔信息 (动态访问控制)
字段。如果有很多的组成员身份的用户,并且有许多用户或正在使用该设备的索赔,这些字段可以占用大量数据包中的空间。
如果用户是 120 多个组的成员,由
MaxTokenSize 值的缓冲区不足。因此,用户不能进行身份验证,并且他们可能会收到"内存不足"错误消息。在应用本文中介绍的修复程序之前,被添加到用户帐户的每个组将此缓冲区增加 40
注意:在许多情况下,Windows NTLM 身份验证按预期工作。您可能看不到 Kerberos 身份验证问题,如果不进行分析。但是,设置组策略的应用顺序的情况下可能不会按预期工作。
重要若要解决此问题,必须设置
MaxTokenSize 注册表值的 Kerberos 身份验证过程中涉及到的所有计算机。这包括 SQL Server 客户端。(也就是说,注册表项具有在请求/响应流中涉及的每台计算机上设置。因此,如果 SQL Server 客户端的 web 应用程序依赖的或者用户的令牌包含要传递给后端
SQL Server 数据库,该注册表项具有在 SQL Server 客户端计算机上,SQL Server
数据库的计算机,要设置并且还运行 Internet Explorer 的客户端计算机,运行的 web 服务器正在运行
IIS等等。)
注意:以下的 Windows
版本都包括此问题的修复程序:
Windows Server 2012
Windows Server 2008 R2
Windows Server 2003
Windows Vista
Windows Server 2008
Windows XP 专业版
服务包信息
若要解决此问题,请获取最新的 service
pack,对于 Microsoft Windows 2000。
如何获取最新的
Windows 2000 服务包
修补程序信息
受支持的修补程序现已从 Microsoft
要立即解决此问题,请联系 Microsoft
客户支持服务,以获取此修复程序。
注意在特殊情况下,如果 Microsoft
支持专业人员确定某个特定的更新能够解决您的问题,可能会免收支持电话的费用。其他支持问题和特定更新无法解决的问题照常收取支持费用。此修补程序的英文版具有的文件属性
(或更新的文件属性) 下表中列出。这些文件的日期和时间以协调世界时 (UTC) 显示。当您查看文件信息时,它已转换为本地时间。要了解
UTC 与本地时间之间的时差,请使用控制面板中的日期和时间项中的时区选项卡。
标记大小计算 Windows 2000 到 Windows Server 2008 R2
如果您使用本文中介绍的修复程序,您不必修改 MaxTokenSize
注册表值,在大多数情况下。
TokenSize = 1200 + 40 d + 8s
该公式使用下列值:
d: 用户所在的域本地组的数目加上的外部用户的帐户域的成员的用户的通用组以及组的数目表示安全标识符 (SID) 历史记录。
s: 安全的全局组的成员的用户的数量加上用户是成员的用户的帐户域中的通用组的数量。
票证系统开销的估计的值。此值可以不同,这取决于各种因素,如 DNS 域名长度、 客户机名称,以及其他因素。
(例如,当用户与域控制器进行身份验证),委托使用,我们建议标记大小两倍。
当设置注册表项
如果您通过使用以下公式计算的标记大小小于 12000 个字节
(默认大小),则您不需要修改域的客户端上的 MaxTokenSize 注册表值。如果超过 12000 个字节的值,请参阅下面的 Microsoft 知识库文章有关如何调整
MaxTokenSize 注册表值的说明:
组策略不应用到属于多个组的用户
MaxTokenSize 值更改时,您必须重新启动计算机以使更改生效。
MaxTokenSize注册表项的建议的值为 65535
十进制或十六进制 FFFF。MaxTokenSize 值指定一个固定的 Kerberos 票证接收缓冲区包含表示该帐户所属的组的
您可能会遇到的已知的问题
访问令牌的大小有关的已知的问题:
本地安全机构 (LSA) 服务生成此 SID
缓冲区中的用户的访问令牌。硬编码限制的客户可定义的 Sid,此标记是 1,015
信息,请参阅此知识文库文章:
,015 多组的成员的用户可能会登录身份验证失败
因此,多 1015年有效的 Sid 的
MaxTokenSize 值不是很有用的。在下面的公式:
MaxTokenSize&= 1200 + 40 d +
40 d 表示为一个域本地组的 SID 有 40 个字节。8s 意味着为域全局/通用组 SID 的 8
因此,如果您有 MaxTokenSize 值为
0x0000FFFF (64k),可能能够缓冲大约 1600年域本地组 Sid 或大约 8000 域全局/通用组
Sid。如果您使用"受信任以进行委派"的帐户,每个 SID 的缓冲区要求可能会加倍。在这些情况下,您可以使用 MaxTokenSize 值为 64k 时仅存储大约
800 域本地组的 Sid。但是,只有域本地组 Sid 不典型的情形。64 K 值应足够甚至对于委派情况。
已知的问题,对于 Internet 信息服务器 HTTP 接收缓冲区:
Internet 信息服务器 (IIS)
使用减少了所需的缓冲区大小来减轻拒绝服务攻击向量的 64 KB。但是,在 HTTP 请求中的 Kerberos 票证被编码为 Base64
(六位扩展到八位)。此外,和
Kerberos 票证使用其原始大小的 133%。因此,当最大缓冲区大小为 64 KB,在 IIS 中,则可以使用 48 KB 的 Kerberos
如果将MaxTokenSize注册表项设置为值大于 48000,并且缓冲区空间用于 Sid,则 IIS
错误可能发生。但是,如果将MaxTokenSize注册表项设置为 48000,Kerberos
错误可能发生。
有关 IIS 缓冲区大小的详细信息,请单击下面的文章编号,以查看 Microsoft
知识库中相应的文章:
IIS 接受来自 Windows 2000 中的客户端的 HTTP 传输的标头大小
Web Access 用户尝试访问 Exchange Server 2003年中的邮箱时出现错误消息:"HTTP 400 错误的请求
(请求标题太长)"
Windows Server 2012 的更改
Windows Server 2012
到有关此缓冲区的考虑因素引入了以下更改:
MaxTokenSize 的默认值更改为 48000 字节为单位)。
没有新的方案,用于压缩的 sid 在 pac。
动态访问控制添加到该票证的活动目录索赔。因此,计算预期的票据规模不再是简单的。预期结果是由 Windows Server 2012
域控制器颁发的票证是小于同一门票发放从较旧的操作系统版本。声明添加到票证大小。但是,Windows Server 2012
文件服务器都广泛使用索赔后,您可能会逐步退出大量您控制修剪票证大小的文件访问权限的组。
有关 Windows Server 2012 的更改的详细信息,请访问以下 Microsoft
TechNet 网站:
当票证大小超出的问题的示例
有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
&由于缓冲区不足的
Kerberos 的 Internet Explorer 登录失败
&错误消息:
当您连接到 SQL Server 通过 TCP/IP 和 Kerberos MaxTokenSize 大于
0xFFFF"超时已过期"时发生
因为在您的目录林中,您可能必须跨域登录的情况下,值应该在所有基于 Windows
的系统上设置目录林范围。因此,我们建议
MaxTokenSize 值的最大值是 64k。
重要在 SQL Server
的客户机,可能会收到下面的错误消息时则会出现此问题,:
无法生成 SSPI 上下文
若要解决此问题,必须设置 MaxTokenSize 注册表值的 Kerberos
身份验证过程中涉及到的所有计算机。这包括
SQL Server 客户端。
http://support.microsoft.com/kb/327825/zh-cn
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。打开文件夹,关闭后弹出程序错误窗口,点击之后文件夹自动关闭_百度知道
打开文件夹,关闭后弹出程序错误窗口,点击之后文件夹自动关闭
弹出窗口见附图,请高手赐教,并给个解决方案,不甚感激!
我有更好的答案
一:先说说硬件:一般来说,电脑硬件是很不容易坏的。内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是:1。内存条坏了(二手内存情况居多)、2。使用了有质量问题的内存,3。内存插在主板上的金手指部分灰尘太多。4。使用不同品牌不同容量的内存,从而出现不兼容的情况。5。超频带来的散热问题。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 二、如果都没有,那就从软件方面排除故障了。 先说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“光标”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x“。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统档案之后。在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的光标已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止执行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效光标不一定总是0,因此错误提示中的内存地址也不一定为“0x”,而是其它随机数字。首先建议:1、 检查系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。2、 更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统档案、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。3、 尽量使用最新正式版本的应用程序、Beta版、试用版都会有BUG。4、 删除然后重新创建 Winnt\System32\Wbem\Repository 文件夹中的文件:在桌面上右击我的电脑,然后单击管理。 在&服务和应用程序&下,单击服务,然后关闭并停止 Windows Management Instrumentation 服务。 删除 Winnt\System32\Wbem\Repository 文件夹中的所有文件。(在删除前请创建这些文件的备份副本。) 打开&服务和应用程序&,单击服务,然后打开并启动 Windows Management Instrumentation 服务。当服务重新启动时,将基于以下注册表项中所提供的信息重新创建这些文件: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\CIMOM\Autorecover MOFs下面搜集几个例子给大家分析: 例一:IE浏览器出现“0x0a8ba9ef”指令引用的“0x” 内存,或者“0x70dcf39f”指令引用的“0x”内存。该内存不能为“read”。要终止程序,请单击“确定”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的其中一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。解决方法:1、 开始-运行窗口,输入“regsvr32 actxprxy.dll”回车,接着会出现一个信息对话 框“DllRegisterServer in actxprxy.dll succeeded”,确定。再依次运行以下命令。(这个方法有人说没必要,但重新注册一下那些.dll对系统也没有坏处,反正多方下手,能解决问题就行。)regsvr32 shdocvw.dllregsvr32 oleaut32.dllregsvr32 actxprxy.dllregsvr32 mshtml.dllregsvr32 msjava.dllregsvr32 browseui.dllregsvr32 urlmon.dll2、 修复或升级IE浏览器,同时打上系统补丁。看过其中一个修复方法是,把系统还原到系统初始的状态下。建议将IE升级到了6.0。 例二:有些应用程序错误: “0x7cd64998” 指令参考的 “0x14c96730” 内存。该内存不能为 “read”。解决方法:Win XP的“预读取”技术这种最佳化技术也被用到了应用程序上,系统对每一个应用程序的前几次启动情况进行分析,然后新增一个描述套用需求的虚拟“内存映像”,并把这些信息储存到Windows\Prefetch文件夹。一旦建立了映像,应用软件的装入速度大大提高。XP的预读取数据储存了最近8次系统启动或应用软件启动的信息。建议将虚拟内存撤换,删除Windows\Prefetch目录下所有*.PF文件,让windows重新收集程序的物理地址。例三:在XP下双击光盘里面的“AutoRun.exe”文件,显示“0x77f745cc”指令引用的“0x”内存。该内存不能为“written”,要终止程序,请单击“确定”,而在Windows 98里运行却正常。 解决方法:这可能是系统的兼容性问题,winXP的系统,右键“AutoRun.exe”文件,属性,兼容性,把“用兼容模式运行这个程序”项选择上,并选择“Windows 98/Me”。win2000如果打了SP的补丁后,只要开始,运行,输入:regsvr32 c:\winnt\apppatch\slayerui.dll。右键,属性,也会出现兼容性的选项。 例四:RealOne Gold关闭时出现错误,以前一直使用正常,最近却在每次关闭时出现“0xffffffff”指令引用的“0xffffffff”内存。该内存不能为“read” 的提示。 解决方法:当使用的输入法为微软拼音输入法2003,并且隐藏语言栏时(不隐藏时没问题)关闭RealOne就会出现这个问题,因此在关闭RealOne之前可以显示语言栏或者将任意其他输入法作为当前输入法来解决这个问题。 例五:我的豪杰超级解霸自从上网后就不能播放了,每次都提示“0x”(每次变化)指令引用的“0xff000011”内存不能为“read”,终止程序请按确定。 解决方法:试试重装豪杰超级解霸,如果重装后还会,到官方网站下载相应版本的补丁试试。还不行,只好换就用别的播放器试试了。 例六:双击一个游戏的快捷方式,“0x77f5cd0”指令引用“0xffffffff”内 存,该内存不能为“read” ,并且提示Client.dat程序错误。解决方法:重装显卡的最新驱动程序,然后下载并且安装DirectX9.0。 例七:一个朋友发信息过来,我的电脑便出现了错误信息:“0x772b548f”指令引用的“0x”内存,该内存不能为“written”,然后QQ自动下线,而再打开QQ,发现了他发过来的十几条的信息。 解决方法:这是对方利用QQ的BUG,发送特殊的代码,做QQ出错,只要打上补丁或升级到最新版本,就没事了。【原因 解决方法】1 内存条坏了 更换内存条2 双内存不兼容 使用同品牌的内存或只要一条内存3 内存质量问题 更换内存条4 散热问题 加强机箱内部的散热5 内存和主板没插好或其他硬件不兼容 重插内存或换个插槽6 硬件有问题 检查或更换硬盘7 驱动问题 重装驱动,如果是新系统,应先安装主板驱动8 软件损坏 重装软件9 软件有BUG 打补丁或更新到最新版本10 软件和系统不兼容 给软件打上补丁或是试试系统的兼容模式11 软件和软件之间有冲突 如果最近安装了什么新软件,卸载了试试12 软件要使用其他相关的软件有问题 重装相关软件,比如播放某一格式的文件时出错,可能是这个文件的解码器有问题13 病毒问题 杀毒14 杀毒软件与系统或软件相冲突 由于杀毒软件是进入底层监控系统的,可能与一些软件相冲突,卸载试试15 系统本身有问题 有时候操作系统本身也会有BUG,要注意安装官方发行的更新程序,象SP的补丁,最好打上.如果还不行,重装系统,或更换其他版本的系统。【又一说】看你是否安装了微软NET.Framework,已经安装可以考虑卸载,当然以后其它程序需要NET.Framework时候,可以再安装。 另外,如果你用的是ATI显卡并且你用的是SP2的补丁,据我所知,一些ATI的显卡驱动需要在NET.Framework正常工作的环境下。这种情况你可以找一款不需要NET.Framework支持的ATI显卡驱动。 如果以上两种方法并不能完全解决问题,你试着用一下“IE修复”软件,并可以查查是否有病毒之类的。〔微软NET.Framework升级到1.1版应该没问题了〕【还有一说】方法一:最管用、最彻底的方法是这个(据试验)微软新闻组的朋友指点:开始--运行:regsvr32 jscript.dll 开始--运行:regsvr32 vbscript.dll 不过没解决---但提供了路子-----一次运行注册所有dll搜索查找到方法如下:在命令提示符下输入 for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1输入正确的话会看到飞快地滚屏 否则……否则失败就是没这效果回车后慢慢等(需要点时间1-2分钟) 都运行完再打开看方法二:这是个典型问题~引起这个问题的原因很多一般来讲就是给系统打上补丁和更换内存、给内存换个插槽这3种方法来解决[系统补丁只要到Microsoft Update网站在线更新就可以了] 以下几点可能有用1、确保使用的是未修改过的软件(非汉化、破解版)2、使用大软件时尽量不要运行其他同类软件。(临时文件,可能某些软件也在使用,所以产生干扰)3、把那些什么桌面工具,内存整理工具通通关掉(你至少有2个类似的工具在运行)处理方法:运行regedit进入注册表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,应该只有一个正常的键值&{AEB-11d0-97EE-00C04FD91972}, 将其他的删除
采纳率:23%
为您推荐:
其他类似问题
程序错误的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 easyui弹框选择文件夹 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信