分享

举例说明内存不能为“Read”的7大原因

 昵称QFAlq 2010-07-30

举例说明内存不能为“Read”的7大原因

1 微软 IE 缓冲溢出漏洞引起

2 内存或虚拟内存地址使用抵触造成   顺序的运行需要分配一定的内存地址给程序使用,当顺序结束时释放留出空间让给新的顺序使用, win 多任务的系统   有时前程序未结束   又有新的任务开始   底要多少内存或虚拟内存来保证我同时运行的工作任务呢 ? 也许 win 这个问题上没弄好,所以有此错误常常发生,一般运行大型软件或多媒体后出现这种情况

3 劣质内存条也会出现这个问题

4 微软 WINDOWS 系统的漏洞, window 把内存地址 0X00000000 0X0000ffff 指定为分配 null 指针的地址范围 , 如果顺序试图访问这一地址,则认为是错误。 c/c++ 编写的顺序通常不进行严格的错误检查,当采用 malloc 来分配内存而可供分配的地址空间不够的情况下返回 null 指针。但是代码不检查这种错误,认为地址分配已经胜利,于是就访问 0X00000000 地址,于是就发生内存违规访问,同时该进程被终止。

ASCII 字符填充组成的 pif 文件时会出现以下情况:   一个非法的 pif 文件(用 ascii 字符 'x' 填充)至少要 369 字节,系统才认为是一个合法的 pif 文件,才会以 pif 图标 [pifmgr.dll,0] 显示,才会在属性里有程序、   字体、内存、屏幕 ” 等内容。而且仅仅当一个非 pif 文件的大小是 369 字节时察看属性的顺序 ” 页时,不会发生程序错误,哪怕是 370 字节也不行。当对一个大于 369 字节的非法 pif 文件观察属性的顺序 ” 页时, Explorer 会出错,提示: '***' 指令引用的 '***' 内存。该内存不能为 'read'  问题出在 pif 文件的 16 进制地址:  0x00000181[0x87]0x00000182[0x01] 和  0x00000231[0xC3]0x00000232[0x02]  即使是一个合法 pif 文件,只要改动这四处的任意一处,也会引起程序错误。而只   要把 0x00000181 和 0x00000182 值改为 [0xFF][0xFF] 那么其它地址任意更改   都不会引起错误。 

5 可能没有完全正确装置 apach 服务,且启动了原故 ;  把服务中的  OracleOraHomeXXHTTPServ 改成停止

6 应用顺序没有检查内存分配失败

7 应用顺序由于自身 BUG 引用了不正常的内存指针

像这样的情况都属于程序自身的 BUG 往往可在特定的操作顺序下重现错误。无效指针不一定总是 0 因此错误提示中的内存地址也不一定为 “ 0x00000000 而是其他随机数字。

如果系统经常有所提到错误提示,下面的建议可能会有帮助:

(1). 检查系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。

 (2). 更新操作系统,让操作系统的装置顺序重新拷贝正确版本的系统文件、修正系统参数。有时候操作系统自身也会有 BUG 要注意安装官方发行的升级顺序。

 (3). 试用新版本的应用顺序。 

   (4 ) 删除然后重新创立  Winnt\System32\Wbem\Repository  文件夹中的文件:   桌面上右击我电脑,然后单击管理。 

" 服务和应用程序 " 下,单击服务,然后关闭并停止  Windows Management Instrumentation  服务。 

删除  Winnt\System32\Wbem\Repository  文件夹中的所有文件。删除前请创建这些文件的备份副本。 

打开 " 服务和应用程序 " 单击服务,然后打开并启动  Windows Management Instrumentation  服务。当服务重新启动时,将基于以下注册表项中所提供的信息重新创建这些文件:  HKEY_LOCA L_MA CHINE\SOFTWA RE\Microsoft\WBEM\CIMOM\A utorecover MOFs

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多