gamer80 escribió:Ahí hay virus de todo tipo, y supongo que hasta los que usan el núcleo de Windows para hacer su función (quien sabe)
¿Virus que usan el nucleo de Windows? ¿Qué significa eso?
Si miras el enlace (que por pinchar en él no te vas a infectar

) verás que todos los 78 virus que hay en esa página están "incubados" en ficheros .COM . Son virus para MS DOS, que usan servicios del DOS, y necesitan a la máquina en modo real. No hay ahí ningún virus para Windows.
De hecho, he estado rebuscando a ver si encontraba el minivirus que escribí hace eones de tiempo, de cuando nuestras primeras movilizaciones en la facultad (era un virus que al ejecutarse mostraba un texto con nuestras reivindicaciones en pantalla durante X tiempo, y luego arrancaba el programa de verdad. No hacía nada "malo") pero no lo he encontrado

Lo que sí he encontrado es el primer antivirus que escribí, para un virus que llamamos "TEJODES" (no me acuerdo qué hacía). El antivirus lo llamé "ANTIJODE" y lo escribí en ensamblador, aunque desafortunadamente sólo permitía desinfectar programas COM (en el fuente del programa pongo que cuando tenga un PC hago la versión para EXE X-DDDD y que es en esa época yo comencé la carrera de Informática y todo aún lo hacía con el Spectrum, no tenía un PC)
NOTA: ostras! Acabo de mirar que aquí aún usaba el primer mote que me pusieron en la facultad: el "pechoboy" (porque me gusta la música de Pet Shop Boys)
Código: Seleccionar todo
;Program antivirus ANTIJODE versi¢n 1.0
;S¢lo archivos con la extensi¢n .COM
;
.radix 10
;
cr equ 13
lf equ 10
bell equ 7
;
saltar macro cond,subr
local sal,nosal
j&cond sal
jmp nosal
sal: jmp subr
nosal:
endm
;
pila segment stack
dw 20 dup (0)
pila ends
;
codigo segment
antijode proc far
assume cs:codigo,ss:pila,ds:datos,es:datos
push ds
xor ax,ax
push ax
mov ax,datos
mov es,ax
mov di,offset nombre
mov si,130
mov cl,byte ptr [si-2]
mov ch,0
mov es:longitud,cx
cld
inc cx
rep movsb
mov ax,datos
mov ds,ax
mov si,offset longitud
cmp byte ptr [si],2
saltar c,parainc
mov ah,9h
mov dx,offset men4
int 21h
mov ax,word ptr [si]
mov bx,offset nombre
add bx,ax
sub bx,4
and byte ptr [bx],0dfh
and byte ptr [bx+1],0dfh
and byte ptr [bx+2],0dfh
cmp byte ptr [bx],'C'
saltar nz,nocom
cmp byte ptr [bx+1],'O'
saltar nz,nocom
cmp byte ptr [bx+2],'M'
saltar nz,nocom
mov byte ptr [bx+3],0
mov ax,4300h
mov dx,offset nombre
int 21h
saltar c,errorfich
mov atributo,cl
mov ax,4301h
mov cx,0
mov dx,offset nombre
int 21h
saltar c,errorfich
mov ax,3d02h
mov dx,offset nombre
int 21h
saltar c,errorfich
mov handle,ax
mov bx,ax
mov ax,3f00h
mov cx,64000
mov dx,offset programa
int 21h
saltar c,errorfich
mov longitud,ax
mov ax,3e00h
mov bx,handle
int 21h
saltar c,errorfich
call miravirus
saltar c,novirus
mov dx,offset men13
mov ah,9
int 21h
mov ax,longitud
mov bx,4112
sub ax,bx
mov longitud,ax
mov ax,3c00h
mov cx,0
mov dx,offset nombre
int 21h
saltar c,errorfich
mov handle,ax
mov dx,offset programa
add dx,4112
mov cx,longitud
mov bx,ax
mov ax,4000h
int 21h
saltar c,errorfich
mov bx,handle
mov ax,3e00h
int 21h
saltar c,errorfich
mov ax,4301h
mov cl,atributo
mov ch,0
mov dx,offset nombre
int 21h
saltar c,errorfich
mov dx,offset men14
mov ah,9
int 21h
ret
parainc: mov dx,offset men1
mov ah,9h
int 21h
ret
nocom: mov dx,offset men2
mov ah,9h
int 21h
ret
novirus: mov dx,offset men3
mov ah,9h
int 21h
ret
errorfich: cmp ax,2
jnz b1
mov dx,offset men5
jmp escribe
b1: cmp ax,3
jnz b2
mov dx,offset men6
jmp escribe
b2: cmp ax,5
jnz b3
mov dx,offset men7
jmp escribe
b3: cmp ax,19
jnz b4
mov dx,offset men8
jmp escribe
b4: cmp ax,21
jnz b5
mov dx,offset men9
jmp escribe
b5: cmp ax,30
jnz b6
mov dx,offset men10
jmp escribe
b6: cmp ax,31
jnz b7
mov dx,offset men11
jmp escribe
b7: mov dx,offset men12
escribe: mov ah,9h
int 21h
ret
antijode endp
;
miravirus proc near
mov ax,longitud
mov bx,200
cmp ax,bx
jb virnoenc
mov bx,16
sub ax,bx
mov di,offset programa
mov si,offset cadena
seguirmirando: or ax,ax
jz virnoenc
push si
push di
mov cx,16
repe cmpsb
pop di
pop si
je virsienc
inc di
dec ax
jnz seguirmirando
virnoenc: stc
ret
virsienc: stc
cmc
ret
miravirus endp
;
codigo ends
;
datos segment
longitud dw 0
atributo db 0
nombre db 20 dup (0)
handle dw ?
cadena db 0e1h,73h,13h,80h,0fch,99h,7h,2eh,8bh,26h,43h,0,2eh,8eh
db 16h,45h
men1 db 'Par metros incorrectos',cr,lf,'La sintaxis correcta es'
db ' ANTIJODE fichero.com',cr,lf,bell,'$'
men2 db 'No es archivo .COM',cr,lf,bell,'$'
men3 db 'Este programa no tiene el virus TEJODES',cr,lf,bell,'$'
men4 db 'ANTIJODE versi¢n 1.0 para programas .COM',cr,lf
db '(c) 1990 Miguel Angel Rodr¡guez J¢dar (Pechoboy)',cr,lf
db '(Cuando tenga un PC har‚ la versi¢n .EXE)',cr,lf
db 'Gracias a Nyman y a Oscar por haber scaneado el virus',cr,lf,cr,lf
db '$'
men5 db 'Programa no encontrado',cr,lf,bell,'$'
men6 db 'V¡a de acceso (path) no encontrada',cr,lf,bell,'$'
men7 db 'Acceso denegado por el MS-DOS (cambie atributos)',cr,lf,bell,'$'
men8 db 'Disco protegido contra escritura',cr,lf,bell,'$'
men9 db 'Unidad no preparada',cr,lf,bell,'$'
men10 db 'Error en lectura de disco',cr,lf,bell,'$'
men11 db 'Error en escritura de disco',cr,lf,bell,'$'
men12 db 'Error no contemplado por el programa. Avise a MARJ',cr,lf,bell,'$'
men13 db 'Este programa est JODIDO',cr,lf,'$'
men14 db 'Este programa est desJODIDO',cr,lf,'$'
programa db 0
datos ends
end antijode