发信人: vkiller()
整理人: jia(1998-10-26 01:21:59), 站内信件
|
【 在 Vic (Vic) 的大作中提到: 】 : 个人观点,不保证正确性。 CIH is not the first virus infecting the 32 bits PE format and is not the first virus using the VxD. : : Dos/Windows下可执行文件分四种格式:最老的是DOS下的COM和EXE,后来 : Windows3.x下的EXE(但叫NE, New Executable), 现在Win95/NT下的EXE : (叫PE, Portable Executable).NE和PE格式的文件扩展名可以是EXE,也 : 可以是DLL,VXD,386(你在windows目录下可以找到)MS Visual Basic里有 : VBX,OCX.它们都属于NE/PE. NE是16bit保护模式代码,PE是32bit保护模式 : 代码.DOS的EXE,NE和PE文件的开头2个自己都是MZ,你看看PBL文件开头, : 如果也是MZ,那它就应该是NE或PE格式.NE/PE实际上是对DOS EXE格式的 : 扩展,它们包含了一小块实模式代码(称为stub),一般就是显示:本程序 : 需要在Microsoft Windows下运行.你在纯DOS环境下执行notepad.exe就 : 能看到(不过有的NE/PE的stub代码会自动启动windows).stub代码只给DOS : 运行的,Windows下执行NE/PE时会找NE/PE的扩展部分,去执行Windows代码. : : 以往的病毒全部是针对DOS环境的,它们只感染DOS COM/EXE文件.如果在 : Windows下运行,它会对NE/PE文件的stub部分进行感染,根本不知道在 : Windows下根本不执行stub.并且病毒只能依附于DOS感染(在启动windows : 前和DOS窗口里).CIH之所以是划时代的,就是因为它知道PE格式,它把自己 : 的代码插入到PE文件的代码里而非stub里,并且它通过Windows API把自己 : 驻留在Windows的文件系统代码里,任何Windows对文件系统的访问都会被 : 它截取并伺机感染PE文件(老的DOS病毒是驻留在DOS文件系统代码里并截 : 取DOS对文件系统的访问).所以说CIH是第一个Win32病毒.至于它毁BIOS : 什么的并不是什么特别的地方,只是利用了某些主板商的疏漏而已. : : NT下CIH不活跃是因为NT下安全级别比较高,除非你总用admin登录,否则很 : 多文件都无法访问的.Win95/98是非常不安全的,因为任何文件都可以被 : 访问/改写,CIH当然活力十足. : : 看看PBL为什么会被感染: CIH进驻Windows后截获文件访问调用,Windows : 下运行EXE文件时CIH发现EXE文件是PE格式,感染之.EXE文件又加载DLL/PBL : ,CIH发现又是PE格式,再感染.(我猜PBL是子程序/共享代码一类的东西). : 从DOS开始,在系统内核里就从来不根据文件扩展名判断文件类型,全部按 : 文件内容来判.所以你的PBL就被感染了.CIH还有一个特性就是它不改变文 : 件长度:它会在PE文件中找空白区域,把自己拆开填进去.PE格式文件都是 : 编译器生成的,一般都会有大块的全0字节,如堆栈,数据段等,它们不会被 : 执行到,等真正的程序开始用到这些区域的时候,CIH早就把自己驻留到 : 系统里了.但CIH对空白区的理解并非永远正确,winzip自解压文件被感染 : 后会报错就是这个原因. : : NT下虽然CIH不太发作,不过还是不要掉以轻心的好. :
-- ☆ 来源:.广州网易BBS站 bbs.nease.net.[FROM: 202.103.137.47]
|
|