Sur comment fonctionne un virus, ben c'est un programme qui a plusieurs particularités
- il se propage
- il se duplique/copie/s'exporte
- il est autonome
(Qu'on me reprenne si je me plante)
La propagation est assurée par l'exploitation de failles, souvent de type buffer overflows.
Quant aux aspects réplication/autonomie, les mécanismes utilisés requièrent en général une bonne connaissance du langage et/ou du système visé.
Il y a plusieurs façons de faire, par exemple le virus peut infecter un binaire et copier son propre code exécutable à la fin du binaire exécuté, en modifiant au passage le début du binaire infecté pour que celui-ci exécute en priorité le code du virus dans le nouveau binaire avant de redonner (ou non) la main au reste du code légitime/infecté, ou il peut très bien tout bonnement écraser le code du binaire infecté, lequel est alors perdu. Et encore, ces techniques sont obsolètes !
A celà il faut rajouter les mécanismes de camouflages (qui rentrent dans le cadre de l'autonomie du virus) qui visent à passer sous la vigilence des antivirus/IDS/firewalls etc., là encore ça requiert un - très - bon niveau et de solides connaissances en sécurité et en informatique de manière générale.
Ce qu'il faut bien comprendre, c'est qu'aussi attrayant que ça puisse être (pour X raisons),
programmer un virus nécéssite de savoir programmer tout court, et bien.
Ca reste néanmoins un sujet super interressant pour peu qu'on n'en soit plus au stade de vouloir créer un "vir11 kee pwn3d d4 w0r1d".
Enfin j'ajouterai que le net regorge (et notament les réseaux p2p) de codes sources de virus, plus ou moins récents (souvent en assembleur pur, à l'ancienne), ça peut être un bon début.
Méfiance toutefois car certaines archives sont elles-même vérollées, normal

donc avant de se lancer dans ce genre de domaine il vaut mieux savoir ce qu'on fait, tout simplement.
BufferBob
ps : Merci S3th pour le lien et Nebelmann/Ivanlef0u pour l'orientation
