瑞星卡卡安全论坛技术交流区反病毒/反流氓软件论坛 思考:杀毒软件对于病毒(木马)变种的查杀机制

1   1  /  1  页   跳转

[原创] 思考:杀毒软件对于病毒(木马)变种的查杀机制

思考:杀毒软件对于病毒(木马)变种的查杀机制

鄙人结合最近从论坛学到的知识,并结合流星学长的过主动防御教程 ,有点感想,在此抒发。


    首先帖一篇文章:


    什么是特征码:
程序运行时,在内存中为完成特定的动作,要有特殊的指令,
一个程序在运行时,同一内存地址的指令是相同的
同一个程序中,一段连续的地址(它的指令相同),那么我截取这段地址,
就可以判断它是不是这个程序。
为了防止出现病毒的误查杀,可以提取出多段特征码。


在WINNT下面的NOTEPAD.EXE的反汇编程序

01006420 > $ 55          PUSH EBP
01006421    . 8BEC        MOV EBP,ESP
01006423    . 6A FF        PUSH -1
01006425    . 68 88180001    PUSH NOTEPAD.01001888
0100642A    . 68 D0650001    PUSH <JMP.&MSVCRT._except_handler3>      ; SE handler installation
0100642F    . 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
01006435    . 50          PUSH EAX
01006436    . 64:8925 000000>MOV DWORD PTR FS:[0],ESP
0100643D    . 83C4 98      ADD ESP,-68
01006440    . 53          PUSH EBX
01006441    . 56          PUSH ESI
01006442    . 57          PUSH EDI
01006443    . 8965 E8      MOV DWORD PTR SS:[EBP-18],ESP
01006446    . C745 FC 000000>MOV DWORD PTR SS:[EBP-4],0
0100644D    . 6A 02        PUSH 2
0100644F    . FF15 60110001 CALL DWORD PTR DS:[<&MSVCRT.__set_app_ty>; msvcrt.__set_app_type
01006455    . 83C4 04      ADD ESP,4
01006458    . C705 38990001 >MOV DWORD PTR DS:[1009938],-1
01006462    . C705 3C990001 >MOV DWORD PTR DS:[100993C],-1
0100646C    . FF15 5C110001 CALL DWORD PTR DS:[<&MSVCRT.__p__fmode>] ; msvcrt.__p__fmode
01006472    . 8B0D 44880001 MOV ECX,DWORD PTR DS:[1008844]
01006478    . 8908        MOV DWORD PTR DS:[EAX],ECX
0100647A    . FF15 4C110001 CALL DWORD PTR DS:[<&MSVCRT.__p__commode>; msvcrt.__p__commode
01006480    . 8B15 40880001 MOV EDX,DWORD PTR DS:[1008840]
01006486    . 8910        MOV DWORD PTR DS:[EAX],EDX
01006488    . A1 54110001    MOV EAX,DWORD PTR DS:[<&MSVCRT._adjust_f>
0100648D    . 8B08        MOV ECX,DWORD PTR DS:[EAX]
0100648F    . 890D 40990001 MOV DWORD PTR DS:[1009940],ECX
01006495    . E8 86010000    CALL NOTEPAD.01006620
0100649A    . A1 C0850001    MOV EAX,DWORD PTR DS:[10085C0]
0100649F    . 85C0        TEST EAX,EAX
010064A1    . 75 0E        JNZ SHORT NOTEPAD.010064B1
010064A3    . 68 10660001    PUSH NOTEPAD.01006610
010064A8    . FF15 50110001 CALL DWORD PTR DS:[<&MSVCRT.__setusermat>; msvcrt.__setusermatherr
010064AE    . 83C4 04      ADD ESP,4
010064B1    > E8 3A010000    CALL NOTEPAD.010065F0
010064B6    . 68 0C800001    PUSH NOTEPAD.0100800C
010064BB    . 68 08800001    PUSH NOTEPAD.01008008
010064C0    . E8 17010000    CALL <JMP.&MSVCRT._initterm>
010064C5    . 83C4 08      ADD ESP,8
010064C8    . 8B15 3C880001 MOV EDX,DWORD PTR DS:[100883C]
010064CE    . 8955 94      MOV DWORD PTR SS:[EBP-6C],EDX
010064D1    . 8D45 94      LEA EAX,DWORD PTR SS:[EBP-6C]
010064D4    . 50          PUSH EAX
010064D5    . 8B0D 38880001 MOV ECX,DWORD PTR DS:[1008838]
010064DB    . 51          PUSH ECX
010064DC    . 8D55 9C      LEA EDX,DWORD PTR SS:[EBP-64]
010064DF    . 52          PUSH EDX
010064E0    . 8D45 90      LEA EAX,DWORD PTR SS:[EBP-70]
010064E3    . 50          PUSH EAX
010064E4    . 8D4D A0      LEA ECX,DWORD PTR SS:[EBP-60]
010064E7    . 51          PUSH ECX
010064E8    . FF15 48110001 CALL DWORD PTR DS:[<&MSVCRT.__getmainarg>; msvcrt.__getmainargs
010064EE    . 83C4 14      ADD ESP,14
010064F1    . 68 04800001    PUSH NOTEPAD.01008004
010064F6    . 68 00800001    PUSH NOTEPAD.01008000
010064FB    . E8 DC000000    CALL <JMP.&MSVCRT._initterm>

我们取 地址 01006420    到    0100642A 的指令(杀毒软件都是取核心部分的地址代码),如果别的程序的指令和他不一样,那这个程序就是病毒。通常杀毒软件会提取3处以上的关键代码(程序没有这段代码就无法感染文件或无法启动),如果在同一个EXE都存在则这个文件就是病毒。



    现在的杀软一般都是以提取病毒特征码为主流进行查杀

    如果是灰鸽子等便会有多处(不是一般的多)的特征码

    而普通病毒只有很小一段(为了速度)

    如果有变种  则重新添加特征码







    而病毒的免杀一般都以修改特征码和添加花指令来实现

    修改特征码是最为常用的

    硬盘中修改 内存中修改 过主动防御

    而一般的变种 会在一段时间后被杀软继续查杀



    而特殊的变种(例如很古老的远控做的免杀)则一般都是很久以后,甚至至今也没有被杀软干掉



    鄙人就想:

    是否能用一种自动变化的机制来实现特征码查杀呢?

    例如:

    首先提取多个特征码

    并融入升级包

    当杀软查杀时只应用其中的一段特征码

    并取系统时间为种子  进行某种随机算法的动态变化

    即隔一段时间则查杀的特征码进行变化

    这样貌似能抵御很多针对个人或小团体的病毒以及木马

    纯属个人想法

    欢迎批评

    绝对原创

    08.08.16

用户系统信息:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; InfoPath.2)
最后编辑粉碎星辰 最后编辑于 2008-08-16 23:16:28
分享到:
gototop
 

回复:思考:杀毒软件对于病毒(木马)变种的查杀机制

为什么没人看啊?555555~~
gototop
 

回复:思考:杀毒软件对于病毒(木马)变种的查杀机制

还是通明哥哥强悍耶
gototop
 
1   1  /  1  页   跳转
页面顶部
Powered by Discuz!NT