目前有些病毒不但采用加密技术,而且在传播时使用了十分隐蔽的寄生方式。例如,分散结构:
谀哪哪哪目
赏屯屯屯突 赏屯屯屯突 赏屯屯屯退? ? ? ? CV ? ? ? ? ? 媚哪哪哪拇
掏屯屯屯凸 掏屯屯屯凸 ? ?--> ? CV1 ?-? ? ? ? ? ? ? 媚哪哪哪拇 ? ? ? ? ? 掏屯屯屯屯? ? ? ? ? ? ? ? ? CV ? 媚哪哪哪拇 ? ? ? ? ? ? ? - -? CV2 ? -
? ? ? ? 掏屯屯屯屯? | 媚哪哪哪拇
? ? 掏屯屯屯凸 ? ? | 媚哪哪哪拇
? ? ? CV ? ? ? |->? CV3 ? 韧屯屯屯图 韧屯屯屯图 韧屯屯屯屯? 媚哪哪哪拇
P P P. ? ? 哪哪哪哪?
而采用加密技术的病毒的 CV1 部分一般是解密代码,cv2、cv3、cv...,在潜伏期是密文形式,而且前面《无特征串的病毒》一文也指出了有些这类病毒在再生变体时采用交换指令的方法使其更为隐蔽。因此杀病毒软件对于存在于机器中的同一种病毒的几种变体很难同时检查出来,如果它们进一步侵犯数据文件,发现它们就更难了。所以对此类病毒应以防犯为主,而且检查它们往往需要从代码执行特征上判断, VSAFE之类在此时就显得重要了,虽然有时它们的确很讨厌。
对于分散结构再生的加密病毒,有时会将解密代码分散于某一块代码中,并且是随机选择,中间用短跳转相联。例如:
*****code of virus part 1*****
mov ax,xxxx 分散 mov ax,xxxx
mov bp,ax --------> jmp short xxx1 (由于xxx1可变,这里也是变化的)
xor bx,bx ....(v1 密文)
or [bx+bp],key xxx1:(可变)
sub bx mov bp,ax
mov bx,0 ; 变化部分指令
jmp short xxx2
....(密文)
xxx2: (可变)
or [bx+bp],key;
这样解密 virus part 1以后,解密代码就自动变为密码形式,而在执行另一部分代码时,v1又变为密码形式。这样即使是同一病毒,它在不同的时间和条件下的外观形式也不相同。
谀哪哪哪目
赏屯屯屯突 赏屯屯屯突 赏屯屯屯退? ? ? ? CV ? ? ? ? ? 媚哪哪哪拇
掏屯屯屯凸 掏屯屯屯凸 ? ?--> ? CV1 ?-? ? ? ? ? ? ? 媚哪哪哪拇 ? ? ? ? ? 掏屯屯屯屯? ? ? ? ? ? ? ? ? CV ? 媚哪哪哪拇 ? ? ? ? ? ? ? - -? CV2 ? -
? ? ? ? 掏屯屯屯屯? | 媚哪哪哪拇
? ? 掏屯屯屯凸 ? ? | 媚哪哪哪拇
? ? ? CV ? ? ? |->? CV3 ? 韧屯屯屯图 韧屯屯屯图 韧屯屯屯屯? 媚哪哪哪拇
P P P. ? ? 哪哪哪哪?
而采用加密技术的病毒的 CV1 部分一般是解密代码,cv2、cv3、cv...,在潜伏期是密文形式,而且前面《无特征串的病毒》一文也指出了有些这类病毒在再生变体时采用交换指令的方法使其更为隐蔽。因此杀病毒软件对于存在于机器中的同一种病毒的几种变体很难同时检查出来,如果它们进一步侵犯数据文件,发现它们就更难了。所以对此类病毒应以防犯为主,而且检查它们往往需要从代码执行特征上判断, VSAFE之类在此时就显得重要了,虽然有时它们的确很讨厌。
对于分散结构再生的加密病毒,有时会将解密代码分散于某一块代码中,并且是随机选择,中间用短跳转相联。例如:
*****code of virus part 1*****
mov ax,xxxx 分散 mov ax,xxxx
mov bp,ax --------> jmp short xxx1 (由于xxx1可变,这里也是变化的)
xor bx,bx ....(v1 密文)
or [bx+bp],key xxx1:(可变)
sub bx mov bp,ax
mov bx,0 ; 变化部分指令
jmp short xxx2
....(密文)
xxx2: (可变)
or [bx+bp],key;
这样解密 virus part 1以后,解密代码就自动变为密码形式,而在执行另一部分代码时,v1又变为密码形式。这样即使是同一病毒,它在不同的时间和条件下的外观形式也不相同。