由于流行的CIH病毒版本中,其标识版本号的信息使用的是明文,所以可以通过搜索可执行文件中的字符串来识别是否感染了CIH病毒,搜索的特征串为“CIH v”或者是“CIH v1.”如果你想搜索更完全的特征字符串,可尝试 “CIH v1.2 TTIT”、“CIH v1.3 TTIT”以及“CIH v1.4 TATUNG”,不要直接搜索“CIH”特征串, 因为此特征串在很多的正常程序中也存在,例如程序中存在如下代码行: inc bx dec cx dec ax 则它们的特征码正好是“CIH(0x43;0x49;0x48)”,容易产生误判。 具体的搜索方法为:首先开启“资源管理器”,选择其中的菜单功能“工具 > 查找 > 文件或文件夹”, 在弹出的“查找文件”设置窗口的“名称和位置”输入中输入查找路径及文件名(如:*.EXE),然后在“高级>包含文字” 栏中输入要查找的特征字符串----“CIH v”,最后点取“查找键”即可开始查找工作。如果在查找过程中,显示出一大堆符合查找特征的可执行文件,则表明您老的计算机上已经感染了CIH病毒。 实际上,在以上的方法中存在着一个致命的缺点,那就是:如果用户刚刚感染CIH病毒,那么这样一个大面积的搜索过程实际上也是在扩大病毒的感染面。一般情况下, 推荐的方法是先运行一下“写字板”软件,然后使用上面的方法在“写字板”软件的可执行程序Notepade.exe中搜索特征串,以判断是否感染了CIH病毒。 另外一个判断方法是在Windows PE文件中搜索IMAGE_NT_SIGNATURE字段,也就是0x00004550, 其代表的识别字符为“PE00”,然后查看其前一个字节是否为0x00,如果是,则表示程序未受感染,如果为其他数值, 则表示很可能已经感染了CIH病毒。 最后一个判断方法是先搜索IMAGE_NT_SIGNATURE字段----“PE00”,接着搜索其偏移0x28位置处的值是否为55 8D 44 24 F8 33 DB 64,如果是,则表示此程序已被感染。 适合高级用户使用的一个方法是直接搜索特征代码,并将其修改掉,方法是:先处理掉两个转跳点,即搜索: 5E CC 56 8B F0 特征串以及5E CC FB 33 DB特征串,将这两个特征串中的CC改为90(nop),接着搜索 CD 20 53 00 01 00 83 C4 20 与 CD 20 67 00 40 00 特征字串,将其全部修改为90,即可(以上数值全部为16进制)。
另外一种方法是将原先的PE程序的正确入口点找回来,填入当前入口点即可(此处以一个被感染的CALC.EXE程序为例),具体方法为:先搜索IMAGE_NT_SIGNATURE字段----“PE00”,接着将距此点偏移0x28处的4个字节值,例如 “A0 02 00 00”(0x000002A0),再由此偏移所指的位置(即0x02A0)找到数据“55 8D 44 24 F8 33 DB 64”,并由0X02A0加上0X005E得到0x02FE偏移,此偏移处的数据例如为“CB 21 40 00”(OXOO4021CB),将此值减去OX40000,将得数----“CB 21 00 00” (OXOO0021CB)值放回到距“PE00”点偏移0x28的位置即可(此处为Windows PE格式程序的入口点,术语称为Program Ent ry Point)。最后将“55 8D 44 24 F8 33 DB 64”全部填成“00”, 使得我们容易判断病毒是否已经被杀除过。 (e129)
|