¿Cómo extraer el código de firma de virus?
Qué son las firmas:
Un programa se ejecuta en la memoria para completar acciones específicas y requiere instrucciones especiales.
Un programa en ejecución Al mismo tiempo, la misma instrucción en la misma dirección de memoria es la misma
Un segmento de dirección aparece continuamente en el mismo programa (es la misma instrucción), luego intercepto esta dirección,
Puedes saber si es este programa.
Para evitar la detección falsa de virus, puede extraer múltiples códigos de características.
Desensamblador de NOTAPAD.EXE bajo WINNT
01006420 gt; $55 PUSH EBP
01006421 .8BEC MOV EBP, ESP
01006423 . 6A FF PUSH -1
01006425 .68 88180001 PUSH NOTEPAD.01001888
0100642A .68 D0650001 PUSH lt;JMP.amp;MSVCRT._except_handler3gt;; instalación del controlador SE
0100642F .64: A1 00000000 MOV EAX, DWORD PTR FS: [0]
01006435 .50 PUSH EAX
01006436 .64: 8925 000000gt; [0], ESP
0100643D .83C4 98 AÑADIR ESP, -68
01006440 .53 EMPUJAR EBX
01006441 .56 EMPUJAR ESI
01006442 .57 PUSH EDI
01006443 .8965 E8 MOV DWORD PTR SS: [EBP-18], ESP
01006446 .C745 FC 000000gt; -4], 0
0100644D .6A 02 PUSH 2
0100644F .FF15 60110001 CALL DWORD PTR DS: [lt;amp;MSVCRT.__set_app_tygt;;msvcrt __set_app_type
01006455 .83C4 04 AGREGAR ESP, 4
01006458 .C705 38990001 gt; MOV DWORD PTR DS: [1009938], -1
01006462 .C705 3C990001 MOV; DWORD PTR DS: [100993C], -1
0100646C .FF15 5C110001 LLAMADA DWORD PTR DS: [lt;amp;MSVCRT.__p__fmodegt;]; msvcrt.__p__fmode
01006472 . 44880001 MOV ECX, DWORD PTR DS: [1008844]
01006478 .8908 MOV DWORD PTR DS: [EAX], ECX
0100647A .FF15 4C110001 CALL DWORD PTR DS:[lt; &MSVCRT.__p__commodegt;;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: [lt;
amp;MSVCRT._adjust_fgt;
0100648D .8B08 MOV ECX, DWORD PTR DS: [EAX]
0100648F .890D 40990001 MOV DWORD PTR DS: [1009940], ECX
01006495 .E8 86010000 LLAMADA NOTAPAD.01006620
0100649A .A1 C0850001 MOV EAX, DWORD PTR DS: [10085C0]
0100649F .85C0 PRUEBA EAX, EAX
010064A1 .75 0E JNZ BREVE NOTAPAD.010064B1
010064A3 .68 10660001 PUSH NOTAPAD.01006610
010064A8 .FF15 50110001 CALL DWORD PTR DS:[lt;amp;MSVCRT .__setusermatgt;; msvcrt.__setusermatherr
010064AE .83C4 04 AGREGAR ESP, 4
010064B1 gt; E8 3A010000 LLAMADA Bloc de notas.010065F0
010064B6 .68 0C800001 EMPUJAR NOTAPAD.0100800C
010064BB .68 08800001 PUSH NOTAPAD.01008008
010064C0 .E8 17010000 LLAMADA lt;JMP.amp;MSVCRT._inittermgt;
010064C5 .83C4 08 AGREGAR 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: [lt;amp;MSVCRT.__getmainarggt;;msvcrt. __getmainargs
>
010064EE .83C4 14 AÑADIR ESP, 14
010064F1 .68 04800001 EMPUJAR Bloc de notas.01008004
010064F6 .68 00800001 EMPUJAR Bloc de notas.01008000
010064 FB .E8 DC000000 CALL lt;JMP.amp;MSVCRT._inittermgt;
Tomamos las instrucciones con direcciones desde 01006420 a 0100642A (el software antivirus es el código que toma la dirección de la parte central) Si las instrucciones de otros programas son diferentes a las suyas, entonces este programa es un virus. Por lo general, el software antivirus extraerá más de 3 códigos clave (los programas sin estos códigos no pueden infectar el archivo o no pueden iniciarse) si hay archivos de virus en el mismo EXE.