Table des matières. Introduction

Dimension: px
Commencer à balayer dès la page:

Download "Table des matières. Introduction"

Transcription

1 Table des matières 1 Formalisation des virus informatiques Les machines de Turing Formalisation de Fred Cohen Définition d un virus informatique Les Quines Etudes de propriétés de l ensemble viral Quelques propriétés élémentaires Problème d arrêt d une machine de Turing Théorèmes de la non décidabilité de la détection viral Réflexion sur la possibilité de détection virale Illustrations et ouvertures L évolution virale Exemple d ensemble V de cardinal infini Virus montrant une des difficultés de la détection par émulation Les problèmes liés aux signatures Analyse spectrale Analyse critique d un virus élémentaire Remarque sur le comportement humain La Désinfection Les virus «utiles» Ouverture sur la notion de virus Introduction Le terme de virus informatique est aujourd hui très présent dans le grand public et les medias. Il est souvent improprement employé pour désigner un programme informatique malicieux conçu pour nuire. Cette définition correspond plutôt à ce que l on nomme communément les logiciels malveillants (ou malware). La notion de virus désigne de façon assez générale un fragment de programme capable de se répliquer (en mutant ou non). Le terme de virus a été introduit par Fred Cohen en 1985, dans sa thèse [1] sur laquelle nous nous sommes basés pour la partie théorique de cette étude. Nous allons ainsi formaliser la notion de virus grâce aux machines de Turing, puis nous énoncerons quelques résultats sur l ensemble viral, et en particulier un théorème de non décidabilité de la détection virale. Enfin nous présenterons des illustrations des résultats théoriques, des stratégies mises en place par les virus ou par les antivirus pour la détection et quelques réflexions générales sur la virologie. 1

2 1 Formalisation des virus informatiques 1.1 Les machines de Turing Le but de ce travail n étant pas l étude des machines de Turing, nous ne développerons que très peu cet aspect et nous admettrons de façon générale, qu elles nous fournissent une description universelle et abstraite des ordinateurs grâce aux machines de Turing universelles (le lecteur intéressé par cette question pourra se référer au livre de Eric Filiol [3] pour de plus amples informations ou à un cours plus complet sur les machines de Turing). Nous en donnons cependant une description succincte, et intuitive, en annexe. 1.2 Formalisation de Fred Cohen Le but de cette partie est de poser des notations relative aux machines de Turing et de présenter une définition formelle de la notion d ensemble viral et donc de virus. Définition Une machine de Turing M est définie par la donnée d un ensemble de n + 1 états S M = {s 0, s 1,..., s n }, d un ensemble de m + 1 symboles I M = {i 0, i 1,..., i m }, d un ensemble d = { 1, 0, 1} décrivant les mouvements possibles pour la tête de lecture et d écriture, d une fonction de sortie O M : S M I M I M, d une fonction de transition N M : S M I M S M d une fonction de déplacement D M : S M I M d La machine est alors désignée par le quintuplet (S M, I M, O M, N M, D M ), et l ensemble des machines de Turing sera noté M. L on peut alors définir les trois fonctions «temporelles» de suivi de la machine : la fonction temporelle d état $ M : N S M qui pour chaque indice de pas, donne l état correspondant à l issue ; la fonction temporelle de bande M : N N I M qui fournit le contenu d une cellule en fonction de son numéro et de son indice de pas ; la fonction temporelle de cellule P M : N N donnant le numéro de la cellule après le déplacement de la tête de lecture en fonction de l indice de pas. et l historique à l instant t donné est défini par H M = ($ M (t), M (t, i), P M (t)) pour un i fixé. Définissons alors la notion d arrêt d une machine de Turing : Définition On dit que le calcul de la machine M s arrête à l instant t si t > t on a $ M (t) = $ M (t ) et i N on a M (t, i) = M (t, i) et P M (t) = P M (t ). Et l on dit que le calcul de la machine M s arrête s il existe un instant t pour lequel M s arrête. Définition L on note T S M un sous ensemble non vide de I M 2

3 1.2.1 Définition d un virus informatique On peut alors donner la définition formelle de l ensemble viral V, notons qu un élément de cet ensemble est un couple constitué d une machine de Turing et d un ensemble de mots, ainsi cet ensemble est viral relativement à la machine de Turing : Définition On dit que (M, V ) V si [ M M et V T S M et si pour tout v V, on a [ quelque soit H M, t et j, tels que P M (t) = j et $ M (t) = $ M (0) et ( M (t, j),..., M (t, j + v 1)) = v ] [ v V et pour un instant t > t il existe un j tel que (j + v ) j ou (j+ v ) j et ( M (t, j ),..., M (t, j + v 1)) = v et les cellules d indices compris entre j et (j + v 1) sont effectivement remplis par M entre les instants t et t ] ] On comprend, alors, qu un virus est un «mot» qui est capable de se reproduire, ou éventuellement de se reproduire en ayant évolué, il génère en tous cas un autre programme qui a la même propriété que lui. On dira alors qu un virus v est une forme évoluée de v relativement à M si en faisant exécuter M sur v l on obtient (de façon éventuellement indirecte, c est-àdire en faisant s exécuter M sur le virus issu directement de v et ainsi de suite) le virus v On remarque alors que la notion de virus est bien différente de la notion de programme malveillant, et on remarque même que la présence d une charge finale est absente de la définition, et donc les virus ne sont même pas un sous ensemble des logiciels malveillants. 1.3 Les Quines Ainsi, des exemples très simples de virus sont des programmes qui recopient leur propre code.les programmes de ce type s appelle les quines. Une quine en français pourrait être : Recopier puis recopier entre guillemets, sans oublier le point final, la phrase «Recopier puis recopier entre guillemets, sans oublier le point final, la phrase». Ce qui pourrait s écrire en Caml : print string s ; print char (char of int 34) ; print string s ; print char (char of int 34) ; print char ; ; print char ; ; where s="print string s ; print char (char of int 34) ; print string s ; print char (char of int 34) ; print char ; ; print char ; ; where s=" ; ; 1. Il est interdit pour une quine de faire appel à une source extérieure ; par exemple, cela ne correspondrait pas à une quine de faire # let fausse quine= print string "fausse quine () ; ;" ; ; puis # fausse quine () ; ;. 2 Etudes de propriétés de l ensemble viral Maintenant que la notion de virus est précisée nous allons présenter quelques résultats sur ces ensemble, et en particulier la non décidabilité de la détection 1 Nous avons utilisé le code ASCII, car ici les séquences d échappement ne peuvent convenir, en effet, il faut que la phrase entre guillemets soit identique à celle d avant, ce qui ne serait pas le cas avec les séquences d échappement. 3

4 viral. 2.1 Quelques propriétés élémentaires Proposition 2.1. Il existe des machines de Turing pour lesquelles il n existe pas d ensemble qui soit viral relativement à cette machine de Turing Cette propriété est relativement trivialement démontrée, en prenant la machine de Turing qui s arrête immédiatement par exemple. Mais elle nous rappelle qu il est possible de faire des systèmes plus ou moins sécurisés face aux virus. Mais les systèmes proposés actuellement et qui garantissent une totale sécurité, sont tellement contraignant qu ils annulent presque les avantages de l informatique. Proposition 2.2. Il existe une machine de Turing M et V T S M tels que (M, V ) V et V = N On peut démontrer cette propriété en créant une telle machine et un tel ensemble. Il est a noter que pour presque tous les langages de programmation moderne l on peut créer un tel ensemble, nous en verrons un exemple dans Cela nous montre donc que la détection de virus par simple scanning (comparaison avec de codes déjà répertorié) a ses limites. 2.2 Problème d arrêt d une machine de Turing Avec la définition que l on a donné des machines de Turing, il est légitime de se demander si elles s arrêtent ou non, l on peut en effet créer des machines de Turing qui ne s arrêtent jamais. Nous allons montrer que le problème d arrêt est indécidable, en d autres termes, que l on ne peut pas avoir de machine Turing qui réponde à la question «es ce qu un machine Turing va s arrêter ou non?» Définition notons alors ϕ p (x) si le résultat du calcul de p sur x n est pas défini et ϕ p (x) si il est défini. Enonçons alors le théorème de non décidabilité du problème d arrêt : Théorème 2.3. Il n existe pas de programme (de machine de Turing) qui s arrête toujours et qui donne le résultat «vrai» si ϕ p (x) et «faux» si ϕ p (x) Démonstration. Raisonnons par l absurde : si un tel programme P existe. Nous allons alors le modifier pour obtenir un programme Π qui est tel que sa représentation fonctionnelle ψ vérifiée : { si ϕp (< p, x >) ψ(p, x) = sinon Mais, par construction ψ(.) représente le programme Π. Mais alors, comment se comporte ce programme quand un codage de lui-même lui est présenté? autrement dit que vaut ψ(π, Π)? Par définition on a : 4

5 { si ϕp (< Π, Π >) ψ(π, Π) = sinon donc si ψ(π, Π) alors par définition, nous avons ψ(π, Π) et si ψ(π, Π) on a alors ψ(π, Π). D où la contradiction. Ce théorème vas nous servir à démontrer les théorème de non décidabilité de la détection viral. 2.3 Théorèmes de la non décidabilité de la détection viral Maintenant que la notion de virus est précisée, nous allons pouvoir démontrer que le problème de la détection virale est un problème indécidable. Théorème 2.4. Il n existe pas de programme (de machine de Turing), qui pour toute machine de Turing et tout ensemble V, s arrête toujours et qui donne le résultat «vrai» si (M, V ) V, et «faux» sinon Démonstration. L idée de la preuve est de se ramener au problème d arrêt d une machine de Turing. Pour une machine M et une donnée v arbitraires, on va alors créer une machine M et un mot v tels que (M, {v}) V si et seulement si ϕ p (x). Ainsi, déterminer si (M, {v}) V sera équivalent à déterminer si la machine de Turing M avec la donnée d entré v s arrête ou non, or comme M et v sont arbitraires alors si on pouvait déterminer si (M, {v}) V l on résoudrait le problème d arrêt des machines de Turing, qui est indécidable, donc une telle machine n existe pas. Montrons alors comment on peut créer un tel couple (M, {v}), pour ce faire, nous allons décrire simplement en substance ce que fait cette machine (la mise en place des notations serait lourde et peu utile). Tout d abord nous admettrons que l on dispose des machines de Turing élémentaires que l on pourra intégrée à des machines de Turing plus complexes : G(z) qui fait parcourir la bande de calcul vers la gauche à la tête jusqu à rencontrer la lettre z D(z) qui fait parcourir la bande de calcul vers la droite à la tête jusqu à rencontrer la lettre z CP I(x, y, z) qui pour les trois lettres x, y et z (classées dans cette ordre sur la bande de calcul) copie les caractères se trouvant entre x et y après le premier caractère z rencontré en allant vers la droite après y. Ensuite il nous faut remarquer que l on peut supposer que pour la machine M on a : G, D, g, d I M (quitte à changer de caractère) et l on peut aussi supposer que la bande de calcul n est utilisé que vers la droite (quitte à ajouter des états à la machine et utiliser les cases vides paires comme les case de gauche et les cases vides impaires comme les case de droite, cela est possible puisque la donnée v de départ sera délimité par g et d, donc on peu aller et venir facilement d un bout à l autre du mot, et le caractère d peu servir de marqueur à d entré de la zone où les cellules sont alternés). 5

6 Ensuite l on considère la machine M qui s arrête immédiatement si le premier caractère n est pas un G, puis applique CP I( g, d, D ) puis se place au début de cette copie puis simule l action de M sur cette copie (ce qui est possible en ajoutant les états de cette machine à ceux de M), ce qui ne pause aucun problème puisque l on a supposé que la bande n est utilisée que vers la droite. Enfin, si le calcul de M ne se termine pas, la machine tourne indéfiniment, sinon une foi le clacul de M terminé l on fait recopier à M la séquence originale (grâce à CP I( G, D, D )). Comme G I M alors la simulation de M ne peut pas produire un virus pour M, car tout programme qui ne s arrête pas immédiatement dans M doit commencer par G. Ainsi pour v = Ggv dd on a bien que (M, {v}) V si et seulement si ϕ p (x). Et avec le raisonnement vu ci-dessus et le théorème de non décidabilité de l arrêt d une machine de Turing l on a le résultat. Ainsi l on montre qu une détection virale parfaite (qui détecte touts les virus et qui ne produit jamais de fausse alerte) est impossible et nous invite à une vigilance constante en matière de sécurité informatique Réflexion sur la possibilité de détection virale Par un raisonnement similaire l on peut également démontrer que déterminer si un virus v est une évolution d un autre virus v est un problème indécidable. Ainsi cela nous montre que la détection qui serait basée sur une analyse de l évolution a aussi ses limites. A un tout autre niveau que celui des machines de Turing, l on pourrait faire un raisonnement par l absurde pour montrer le théorème 2.4. S il existait un programme D qui permettait de déterminer si un programme est viral ou non, alors on pourrait écrire le programme, avec un langage de haut niveau : CV()= {... {si non D(CV()) alors infection() ;} fin si aller au programme suivant} Ainsi si D(CV())= vrai alors l infection n aura pas lieu et donc le programme ne sera pas viral, et si D(CV())=faux alors l infection aura lieu et donc le programme D n aura pas détecté un programme viral. Ainsi un tel programme D ne peut pas exister, et donc là encore, cela prouve que la détection virale parfaite est impossible dés qu il est possible d écrire un code de ce type. Face à ce constat d impossibilité d obtenir une détection parfaite, il s agit de développer les outils les plus performants possibles. Ce qui sera l objet de la partie suivante. 6

7 3 Illustrations et ouvertures Dans cette partie nous présenterons quelques illustrations de propriétés montrées dans les travaux théoriques de Fred Cohen, mais aussi des illustrations des méthodes utilisées par les concepteurs de virus ou d antivirus 2. Ces illustrations seront présentées en langage Caml. Dans la mesure ou Caml-light ne se prête pas excessivement bien à l écriture de virus qui nécessite de faire des recherches de fichiers, mais aussi des fonction performantes d accès en écriture aux fichiers, afin de les infecter, nous ne présenterons donc qu une quine 3, ou une partie seulement du code. Mais ces exemples ont pour but de compléter de façon personnelle l exposé théorique et la formalisation présentée précédemment. Nous nous limiterons donc aux virus en code source, qui ne représentent qu une infime partie des virus informatiques, mais nous suffisent pour les exemples que nous avons choisi de présenter. Nous finirons enfin avec des réflexions plus générales sur les virus et notre cohabitation avec eux. 3.1 L évolution virale Exemple d ensemble V de cardinal infini. Comme nous l avons vu précédemment, on peut démontrer qu il existe une machine de Turing M, et un ensemble V tels que (M, V ) V et V = N. Nous allons illustrer cette propriété en proposant une quine en Caml qui recopie son propre code, mais ajoute un caractère aléatoire de commentaire à chaque exécution. Ainsi on comprend bien comment on peut créer un tel ensemble 4 (nous supposerons que le module random est déjà ouvert ; bien qu il soit possible de le faire ouvrir par le programme) : print string s ; print string r ; print char (char of int 34) ; print string s ; print char ( ; print char * ;print char (char of int (random int 42)) ;print char * ; print char ) ; print char (char of int 34) ;print char a ;print char n ;print char d ;print char ;print char r ;print char = ;print char (char of int 34) ; print string r ; print char (char of int 34) ; print char ; ; print char ; ; where s="print string s ; print string r ; print char (char of int 34) ; print string s ; print char ( ; print char * ;print char (char of int (random int 128)) ;print char * ; print char ) ; print char (char of int 34) ;print char a ;print char n ;print char d ;print char ;print char r ;print char = ;print char (char of int 34) ; print string r ; print char (char of int 34) ; print char ; ; print char ; "and r=" ; where s=" ; ; 2 Bien qu une détection viral soit parfaite les antivirus atteignes aujourd hui des taux de détection de prés de 99% sur les virus connus et de 80% sur des virus inconnues. 3 Il suffirait alors simplement d ajouter un module de recherche de fichiers et de copier le virus vers ce canal, plutôt que vers l écran, pour rendre le programme viral. 4 Si l on trouve que l ajout d un caractère en note ne change pas réellement le programme, l on pourrait pas exemple ajouter la commande d impression d un espace. 7

8 Cette quine se recopie et intègre un commentaire dans un des deux les texte entre guillemets qu il lui permet de se recopier, ainsi à l étape suivante ce commentaire s ajoutera au code, et ainsi de suite. Ce type de virus permet de montrer la limite de la détection par recherche de code (le scanning). En effet, ici, une simple recherche de code ne permet pas de garantir ou non la présence du virus. L on pourrait alors développer des moyens plus subtils que la simple recherche de code ; mais alors, il serait possible de développer des moyens plus habiles de parade contre ces méthodes. Par exemple, il pourrait être possible de rajouter aléatoirement des espaces Virus montrant une des difficultés de la détection par émulation Afin d illustrer la propriété de non décidabilité de la détection virale, l on pourrait créer un virus résident produisant un descendant dont le temps de «reproduction» serait doublée à chaque génération, ainsi l on aurait un exemple de virus qui montrerait bien le lien entre la non décidabilité de la détection virale et le problème de l arrêt du calcul d une machine de Turing. En effet, la difficulté du problème d arrêt repose sur le fait que l on ne connait pas à priori le temps de calculs (s il se finit), et ce virus lui aussi aurait un temps avant infection qui pourrait devenir aussi long que l on veut. Ainsi ce virus illustrerait la difficulté de la détection viral. Ce virus ne représenterait pas un danger majeur car son activité deviendrait vite insignifiante Les problèmes liés aux signatures Afin d éviter la sur-infection les virus marquent (en entête par exemple) les programmes infectés, cela permet de limiter au maximum les opérations (et l espace mémoire occupé), qui pourraient alerter l utilisateur si elles sont en trop grand nombre. Mais cette signature est bien souvent utilisée par des antivirus pour détecter leur présence. Des virus plus aboutis ont un système de signature mouvante qui lui permet de repérer sa présence mais rend beaucoup plus difficile la détection. 3.2 Analyse spectrale Comme cela est pratiqué en cryptanalyse (qui est d ailleurs utile pour certains virus cryptés) on peut procéder par analyse spectrale pour rechercher des programmes potentiellement infectés. Pour nous, il s agit de rechercher des commandes «exotiques» qui sont couramment utilisées en programmation virale, mais beaucoup plus rarement en programmation traditionnelle. Ainsi par exemple la commande char of int 34 est relativement rare en programmation traditionnelle, mais est très utile pour les exemples présentés précédemment. Nous supposerons définie la fonction recherche occurrence qui pour recherche occurrence fichier n recherche le nombre d occurrences de la chaîne n dans le fichier. On peut ainsi mesurer la probabilité moyenne d apparition dans des programmes Caml 8

9 de tel ou tel chaîne, et si la valeur mesurée sur le fichier est supérieure et significativement supérieure à la moyenne 5. Ainsi un tel algorithme pourrait être : analyse spectrale canal n seuil moy pr n= let a =recherche occurrence canal n and b=in channel length canal in if (float of in a /. float of int b)/.moy pr n > seuil then print string "risque" ; ; De tels algorithmes peuvent servir dans des antivirus (avec un seuil relativement haut) et peuvent aussi être utilisés par les laboratoires cherchant à localiser des virus encore inconnus pour les ananlyser, et fournir une description utilisable par les antivirus, pour permettre la détection et la désinfection. 3.3 Analyse critique d un virus élémentaire Afin de présenter concrètement les caractéristiques essentielles que doivent présenter les virus modernes, nous allons réaliser une critique d un virus rudimentaire écrit en bash : for i in.sh ; do # pour tout fichier avec l extension sh if test "./$i"!="$0" ; then # si cible du fichier infectant tail -n 5 $ 0 cat >>$i ; # ajouter le code du virus fi done Ce programme recherche tous les autres fichiers comportant l extension.sh et ajoute son propre code à la fin de ces fichiers. Nous allons présenter en deux parties les arguments en faveur et en défaveur de ce virus élémentaire : Ce programme ne fait que 91 octets ce qui le rend très discret. D autre part, il vient s ajouter à la fin d un script, ce qui réduit le nombre d opérations à réaliser pour l infection. Le fait que le virus soit situé à la fin du programme fait qu il est exécuté en toute fin et don,c qu il n est pas systématiquement exécuté lorsque le programme qu il parasite l est. Le code comme présenté ici est très lisible, ce qui le rend facilement détectable par un lecteur. Ce virus a une action limitée au répertoire courant. De plus les fichier d extension.sh sont relativement peu courants, ce qui limite l action de ce virus. D autre part le virus ne vérifie pas si le fichier qu il va infecter est déjà infecté, ce qui peut produire une surinfection qui sera rapidement démasquée par l utilisateur qui remarquera la présence de ces lignes de code en nombre à la fin de son fichier, ou alors, l augmentation de la taille alertera l utilisateur. De plus la petite taille de ce code peut constituer une signature qui sera recherchée par un antivirus (car ce virus n est pas polymorphe). Enfin, bien que cela ne soit en aucun cas une caractéristique d un virus, ce virus ne comporte pas de charge finale, cela produit donc un virus qui est relativement peu «utile», 5 Là encore il n est bien sûr pas question de détecter tous les codes viraux et seulement ceux là, et donc, le seuil peut être fixé en fonction du niveau de sécurité que l on souhaite obtenir, au risque de déclencher de fausses alertes. 9

10 ce virus peut constituer une charge finale en lui-même en alourdissant les fichiers si l utilisateur ne l élimine pas. Ainsi ce virus est un relativement mauvais virus. Mais certains points évoqués précédemment pourraient bien sûr être améliorés. 3.4 Remarque sur le comportement humain Comme nous l avons déjà évoqué, créer un système empêchant les virus de se propager, reviendrait à se priver de bien des utilités de l informatique. C est alors à l utilisateur de comprendre cela et d adopter une position de prudence en la matière. Car dans les infections informatiques le facteur humain est souvent très important. On se rappelle par exemple 6 du ver I love you qui a causé de très importants dégâts, et qui utilisait l argument d une lettre d amour pour inciter l utilisateur à ouvrir le message. Le paroxysme de ce phénomène est atteint avec les chaînes envoyées par , et qui demandent à être recopiées intégralement et envoyées à de nouveaux correspondants, ainsi on est face à un «virus» qui n a comme moyen de propagation que la persuasion du lecteur. Ainsi l on prend la mesure de l importance de l ingénierie sociale dans la conception d un virus. 3.5 La Désinfection Le problème de la désinfection est conditionné par la détection mais aussi par la connaissance du virus. Ainsi il faut pouvoir le supprimer dans les fichiers sans endommager le fichier. Mais là encore, les virus ont des moyens de défenses, certains procèdent par remplacement de code, cela a donc pour effet de détruire le programme original, et donc ce type de virus est presque impossible à désinfecter sans supprimer les fichiers. D autres virus, à l image des rétrovirus, s attaquent spécifiquement aux systèmes antivirus, cela peut alerter l utilisateur mais empêche la désinfection. Enfin pour certains virus à infection très rapide, l antivirus peut se révéler plus lent que le virus, ce qui fait que le bilan est négatif et le virus gagne immanquablement du terrain, et n est donc pas supprimé. Ce problème de vitesse a été résolu dans certain cas 7 par une désinfection par un autre virus informatique lancé sur les ordinateurs, ce virus devait désinfecter les fichiers infecter et se désinfecter lui même à partir d une date donnée. Ce dernier exemple nous montre que bien que nous soyons condamnés à vivre avec les virus il peuvent aussi nous apporter. 3.6 Les virus «utiles» Bien que cette notion ne soit pas très bien vue par les éditeurs d antivirus, il est possible de créer des virus utiles, qui permettent, par exemple, d assurer des taches d administration sur un réseau (sans avoir de programme résident). Il a déjà été envisagé par exemple de créer un virus qui gérerait la compression de fichiers 6 Les exemple de ce genre son plethore. 7 Comme par exemple dans la cas du ver Creeper qui devait éliminer un autre ver qui avais infecté un système de contrôle aérien. 10

11 peu utilisés, en les cherchant, puis en les compressant et enfin en s y copiant. Enfin des vers (qui sont des virus adaptés aux réseaux) peuvent permettre de maintenir à jour, ou faire du calcul distribué. 3.7 Ouverture sur la notion de virus Nous avons montré au 3.1 comment produire un ensemble potentiellement infini de ces pseudos virus. On pourrait même imaginer de faire un virus qui, à certaines duplications change de façon aléatoire des parties de son code. Dans bien des cas cette évolution rendrait non exécutable le programme, mais parfois elle pourrait produire des améliorations du programme. Ainsi l on peut fantasmer une évolution darwinienne dans un ordinateur où les meilleurs programmes prendraient le pas sur les virus ne pouvant pas faire face à la pression exercée par les autres virus pour occuper l espace mémoire. On retrouve cette idée dans le jeu corwar 8 où deux programmes s affrontent sur un espace mémoire très limité et doivent éliminer leur adversaire, mais dans ce jeu il n est pas question d évolution, il illustre simplement comment peut se faire une «sélection naturelle». Il est à noter que le nom de virus est particulièrement bien choisi car le parallèle avec la biologie peut être poussé assez loin, en effet les mécanismes sont assez proches, et les programmateurs se sont inspiré des mécanismes naturels pour programmer de virus. Conclusion La notion de virus est encore mal connue aujourd hui. Elle est mystifiée par des professionnels de la sécurité informatique qui souhaitent souvent conserver un monopole intellectuel sur ce sujet. Il est ainsi courant de rencontrer un refus catégorique lorsque sont proposés des tests grandeur nature d évaluation de sécurité des systèmes informatiques, car il est fréquent que des décideurs pensent qu un problème non diagnostiqué n existe pas. Ainsi il est important de reprendre la définition et de rappeler les possibles et les impossibles en la matière 9. Mais il est important aussi que la virologie informatique se développe car le potentiel stratégique des virus informatiques est énorme. En effet, d importants dégâts ont été causés par des virus développés par des individus seuls. On peut donc imaginer les conséquences que pourraient avoir une attaque massive menée par un état. 8 C est d ailleurs pour ce jeu qu ont été crées les premiers virus informatiques 9 Le théorème de non décidabilité de la détection virale contre bien des slogans outranciers de sociétés commercialisant des antivirus. 11

12 Références [1] Fred Cohen (1985) Computer Viruses [2] Fred Cohen (1994) A Short Course on Computer viruses [3] Eric Filiol (2004) Les virus informatiques : théorie, pratique et applications [4] Article Wikipedia sur les Machines de Turing 12

13 Annexe Description succincte, et intuitive des machines de Turing Une machine de Turing M est composée de trois parties Une unité de stockage (ou bande de calcul), qui est de longueur infinie et est divisée en cellules qui contiennent chacune un caractère d un alphabet (fini) donné, dont le vide est un caractère. Le nombre de cellules non vides sera fini. Cette bande permet en début de calcul d apporter les données du calcul à la machine, en cours de calcul de servir d unité de stockage, puis en fin de calcul de donner les données de sortie. Une tête de lecture et d écriture qui se déplace le long de la bande de calcul, en traitant une cellule à la fois, puis se déplace vers la droite ou la gauche. Cette tête permet ainsi de désigner la cellule courante et permet de lire, puis d écrire un nouveau caractère sur la bande, avant de se déplacer. Une fonction de contrôle qui pilote la tête. Cette fonction contient l état de la machine qui est une forme de mémoire de cette machine. Ainsi si S désigne l ensemble fini des états de la machine et I l alphabet, on a que F : S I S I {G, 0, D}. Ainsi la fonction est dans un état donné et la tête lui transmet le caractère lu sur la bande de calcul. La fonction va passer dans un nouvel état, va faire remplacer le caractère contenu dans la cellule de la bande de calcul, et va indiquer à la tête si elle doit rester dans la même position, ou aller sur la cellule de gauche ou de droite. Si bien que la machine M est caractérisée par sa fonction F. Ainsi, si le calcul de la machine de Turing s arrête, Lorsque l on est en situation ou la tête ne bouge plus,et l état non plus tout comme le caractère contenu par la cellule courante. Cette notion de machine de Turing ne semble pas suffisante pour décrire le fonctionnement des ordinateurs actuels, car une machine correspond à une seule fonction à priori. Ainsi nous allons définir la notion de machine de Turing universelle. Définition Une machine de Turing universelle U est une machine de Turing qui, sur des données d entrée décrivant d une part une machine de Turing M donnée, et d autre part une donnée d entrée x pour cette machine, simule l action de M sur x, autrement dit calcule M(x). On note U(M; x) = M(x). Une telle machine peut émuler l action de toute autre machine sur une donnée. Nous ne développerons pas les techniques de représentation d une telle machine M sur la bande de calcul, mais nous supposerons que cela est possible. 13

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

LES DECIMALES DE π BERNARD EGGER

LES DECIMALES DE π BERNARD EGGER LES DECIMALES DE π BERNARD EGGER La génération de suites de nombres pseudo aléatoires est un enjeu essentiel pour la simulation. Si comme le dit B Ycard dans le cours écrit pour le logiciel SEL, «Paradoxalement,

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines virtuelles Cours 1 : Introduction Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une

Plus en détail

RÈGLE N 1 : SAUVEGARDEZ VOS DONNÉES

RÈGLE N 1 : SAUVEGARDEZ VOS DONNÉES LE GUIDE RÈGLE N 1 : SAUVEGARDEZ VOS DONNÉES On ne le répétera jamais assez : sans protection, les virus, vers et autres chevaux de Troie peuvent s inviter en moins d une seconde sur votre PC. Même si

Plus en détail

À propos des matrices échelonnées

À propos des matrices échelonnées À propos des matrices échelonnées Antoine Ducros appendice au cours de Géométrie affine et euclidienne dispensé à l Université Paris 6 Année universitaire 2011-2012 Introduction Soit k un corps, soit E

Plus en détail

Texte Agrégation limitée par diffusion interne

Texte Agrégation limitée par diffusion interne Page n 1. Texte Agrégation limitée par diffusion interne 1 Le phénomène observé Un fût de déchets radioactifs est enterré secrètement dans le Cantal. Au bout de quelques années, il devient poreux et laisse

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Utilisez Toucan portable pour vos sauvegardes

Utilisez Toucan portable pour vos sauvegardes Utilisez Toucan portable pour vos sauvegardes Préambule Toucan est un logiciel libre et gratuit, permettant de réaliser des sauvegardes ou synchronisation de vos données. Il est possible d automatiser

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Suites numériques 3. 1 Convergence et limite d une suite

Suites numériques 3. 1 Convergence et limite d une suite Suites numériques 3 1 Convergence et limite d une suite Nous savons que les termes de certaines suites s approchent de plus en plus d une certaine valeur quand n augmente : par exemple, les nombres u n

Plus en détail

Chapitre 1. L algorithme génétique

Chapitre 1. L algorithme génétique Chapitre 1 L algorithme génétique L algorithme génétique (AG) est un algorithme de recherche basé sur les mécanismes de la sélection naturelle et de la génétique. Il combine une stratégie de survie des

Plus en détail

Chapitre 2. Eléments pour comprendre un énoncé

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

Transmission d informations sur le réseau électrique

Transmission d informations sur le réseau électrique Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en

Plus en détail

Modèles et simulations informatiques des problèmes de coopération entre agents

Modèles et simulations informatiques des problèmes de coopération entre agents Modèles et simulations informatiques des problèmes de coopération entre agents Bruno Beaufils LIFL Axe CIM Équipe SMAC Laboratoire d'informatique Plan 1. Motivations 2. Dilemme itéré du prisonnier 3. Simulations

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/ Calculabilité Cours 3 : Problèmes non-calculables http://www.irisa.fr/lande/pichardie/l3/log/ Problèmes et classes de décidabilité Problèmes et classes de décidabilité Nous nous intéressons aux problèmes

Plus en détail

Leçon 6. Savoir compter

Leçon 6. Savoir compter Leçon 6. Savoir compter Cette leçon est une introduction aux questions de dénombrements. Il s agit, d une part, de compter certains objets mathématiques (éléments, parties, applications,...) et, d autre

Plus en détail

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/)

Proposition d activité utilisant l application. Tripatouille. (http://www.malgouyres.fr/tripatouille/) IREM Clermont-Ferrand Algorithmique au lycée Malika More malika.more@u-clermont1.fr 28 janvier 2011 Proposition d activité utilisant l application Tripatouille (http://www.malgouyres.fr/tripatouille/)

Plus en détail

Théorie de l information : historique

Théorie de l information : historique Théorie de l information : historique Développée dans les années quarante par Claude Shannon. Objectif : maximiser la quantité d information pouvant être transmise par un canal de communication imparfait.

Plus en détail

Premier programme VBA : syntaxe, édition, compilation

Premier programme VBA : syntaxe, édition, compilation 1 Premier programme VBA : syntaxe, édition, compilation Le langage VBA (Visual Basic for Applications) permet de concevoir des programmes selon une syntaxe qui lui est propre, puis d éditer et d exécuter

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

Représentation des nombres entiers et réels. en binaire en mémoire

Représentation des nombres entiers et réels. en binaire en mémoire L3 Mag1 Phys. fond., cours C 15-16 Rep. des nbs. en binaire 25-09-05 23 :06 :02 page 1 1 Nombres entiers 1.1 Représentation binaire Représentation des nombres entiers et réels Tout entier positif n peut

Plus en détail

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list =

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2) Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter

Plus en détail

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP)

Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Rapport du Jury du Concours 2010 Épreuve Pratique d Algorithmique et de Programmation (EPAP) Loris Marchal, Guillaume Melquion, Frédéric Tronel 21 juin 2011 Remarques générales à propos de l épreuve Organisation

Plus en détail

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Notions de sécurités en informatique

Notions de sécurités en informatique Notions de sécurités en informatique Bonjour à tous, voici un article, vous proposant les bases de la sécurité informatique. La sécurité informatique : Vaste sujet, car en matière de sécurité informatique

Plus en détail

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Table des matières. Introduction....3 Mesures et incertitudes en sciences physiques

Plus en détail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

Problèmes de Mathématiques Filtres et ultrafiltres

Problèmes de Mathématiques Filtres et ultrafiltres Énoncé Soit E un ensemble non vide. On dit qu un sous-ensemble F de P(E) est un filtre sur E si (P 0 ) F. (P 1 ) (X, Y ) F 2, X Y F. (P 2 ) X F, Y P(E) : X Y Y F. (P 3 ) / F. Première Partie 1. Que dire

Plus en détail

Désinfection de Downadup

Désinfection de Downadup Désinfection de Downadup Historique des versions de documentations N de version Eléments modifiés Date Rédacteur 1.0 Version Initial 15/03/2010 BOURGINE Christopher 1 BitDefender propose un outil de désinfection

Plus en détail

λ-calcul et typage Qu est-ce qu une fonction?

λ-calcul et typage Qu est-ce qu une fonction? λ-calcul et typage Nicolas Barnier, Pascal Brisset ENAC Avril 2009 Nicolas Barnier, Pascal Brisset (ENAC) λ-calcul et typage Avril 2009 1 / 1 Qu est-ce qu une fonction? Classiquement Pas de notation uniforme/standard

Plus en détail

Le jeu de Marienbad. 1 Écriture binaire d un entier

Le jeu de Marienbad. 1 Écriture binaire d un entier MPSI Option Informatique Année 2002, Quatrième TP Caml Vcent Simonet (http://cristal.ria.fr/~simonet/) Le jeu de Marienbad Dans le film d Ala Resnais «L année dernière à Marienbad» (1961), l un des personnages,

Plus en détail

TP1 - Prise en main de l environnement Unix.

TP1 - Prise en main de l environnement Unix. Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents

Plus en détail

Les automates. Fabrice EUDES, Pascal EVRARD, Philippe MARQUET, François RECHER & Yann SECQ

Les automates. Fabrice EUDES, Pascal EVRARD, Philippe MARQUET, François RECHER & Yann SECQ Les automates Fabrice EUDES, Pascal EVRARD, Philippe MARQUET, François RECHER & Yann SECQ Avril 2015 Retour sur l île et le barman Deux problèmes similaires: Des îles, des bateaux et un trésor à trouver

Plus en détail

CH.8 Décidabilité. Propriétés des langages récursifs : Fermés par complémentation, union et intersection. oui. non. oui M 1. non. oui M 2.

CH.8 Décidabilité. Propriétés des langages récursifs : Fermés par complémentation, union et intersection. oui. non. oui M 1. non. oui M 2. CH.8 Décidabilité 8.1 Les langages récursifs 8.2 La machine de Turing universelle 8.3 Des problèmes de langages indécidables 8.4 D'autres problèmes indécidables Automates ch8 1 8.1 Les langages récursifs

Plus en détail

Projet Cryptographie L'algorithme de chiffrement Solitaire

Projet Cryptographie L'algorithme de chiffrement Solitaire Projet Cryptographie L'algorithme de chiffrement Solitaire Contenu Présentation de l algorithme de chiffrement solitaire:... 3 Mise en œuvre... 7 Code source... 8 Squelette... 8 Accueil.php... 8 Crypter.php...

Plus en détail

Formules d inclusion-exclusion

Formules d inclusion-exclusion Université de Rouen L1 M.I.EEA 2011 2012 Mathématiques discrètes Formules d inclusion-exclusion Je présente ici une correction détaillée de l Exercice 5 de la Feuille d exercices 1, en reprenant le problème

Plus en détail

Introduction à l Algorithmique

Introduction à l Algorithmique Introduction à l Algorithmique N. Jacon 1 Définition et exemples Un algorithme est une procédure de calcul qui prend en entier une valeur ou un ensemble de valeurs et qui donne en sortie une valeur ou

Plus en détail

Rapport Technique No. GIDE-01-2013. Soyons un peu logiques! par. Jean-Marc BERNARD GIDE GIDE

Rapport Technique No. GIDE-01-2013. Soyons un peu logiques! par. Jean-Marc BERNARD GIDE <jeanmarc@gide.net> GIDE Rapport Technique No. -01-2013 Soyons un peu logiques! par Jean-Marc BERNARD 17 rue La Noue Bras de Fer 44200 Nantes, France 28 février 2014 Soyons un peu logiques! Jean-Marc BERNARD

Plus en détail

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques : MTH EN JEN 2013-2014 Elèves de seconde, première et terminale scientifiques : Lycée Michel Montaigne : HERITEL ôme T S POLLOZE Hélène 1 S SOK Sophie 1 S Eteindre Lycée Sud Médoc : ROSIO Gauthier 2 nd PELGE

Plus en détail

CONSEILS POUR LA REDACTION DU RAPPORT DE RECHERCHE. Information importante : Ces conseils ne sont pas exhaustifs!

CONSEILS POUR LA REDACTION DU RAPPORT DE RECHERCHE. Information importante : Ces conseils ne sont pas exhaustifs! CONSEILS POUR LA REDACTION DU RAPPORT DE RECHERCHE Information importante : Ces conseils ne sont pas exhaustifs! Conseils généraux : Entre 25 et 60 pages (hormis références, annexes, résumé) Format d un

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

Travaux dirigés n o 6

Travaux dirigés n o 6 Travaux dirigés n o 6 Lycée Kléber MPSI, Option Info 2014/2015 Exercice 1 (Indexation d un arbre binaire) Ecrire une fonction Caml indexation : ( f, n) arbre_binaire -> (string,string) arbre_binaire qui

Plus en détail

LeCroy. Recherche de défauts sur circuits logiques à l aide d oscilloscopes numériques

LeCroy. Recherche de défauts sur circuits logiques à l aide d oscilloscopes numériques LeCroy Recherche de défauts sur circuits logiques à l aide d oscilloscopes numériques Avec la constante évolution industrielle, les ingénieurs d études doivent aujourd hui caractériser en permanence de

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Jean-Pierre Lovinfosse. En finir. avec les virus. Groupe Eyrolles,2004 ISBN 2-7464-0496-6

Jean-Pierre Lovinfosse. En finir. avec les virus. Groupe Eyrolles,2004 ISBN 2-7464-0496-6 Jean-Pierre Lovinfosse En finir avec les virus Groupe Eyrolles,2004 ISBN 2-7464-0496-6 Introduction............................................ 7 Chapitre 1 : Historique...................................

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Comme déjà précisé dans les premiers chapitres de ce cours, il n existe pas de type chaîne de caractères prédéfinit en C. Il existe deux façons pour déclarer une chaîne de caractères

Plus en détail

Épreuve pratique de mathématiques Printemps 2009. Descriptifs. (Page vide)

Épreuve pratique de mathématiques Printemps 2009. Descriptifs. (Page vide) Épreuve pratique de mathématiques Printemps 2009 Descriptifs (Page vide) Sujet 001 Épreuve pratique de mathématiques Descriptif Étude d une fonction dépendant d un paramètre Étant donné une fonction dépendant

Plus en détail

Faits techniques et retour d'expérience d'une cellule d'expertise dans la lutte contre le code malveillant. EdelWeb / Groupe ON-X

Faits techniques et retour d'expérience d'une cellule d'expertise dans la lutte contre le code malveillant. EdelWeb / Groupe ON-X 1 OSSIR 2007/11/12 Faits techniques et retour d'expérience d'une cellule d'expertise Jérémy Lebourdais Mickaël Dewaele jeremy.lebourdais (à) edelweb.fr mickael.dewaele (à) edelweb.fr EdelWeb / Groupe ON-X

Plus en détail

UEO11 Cours/TDn 2 Algorithmique : bases - 2007-2008. 3- Algorithmique...1 3.1 Définition : algorithmique...1. Critère algorithmique élémentaire

UEO11 Cours/TDn 2 Algorithmique : bases - 2007-2008. 3- Algorithmique...1 3.1 Définition : algorithmique...1. Critère algorithmique élémentaire UEO11 Cours/TDn 2 Algorithmique : bases - 2007-2008 Table des matières 3- Algorithmique...1 3.1 Définition : algorithmique...1 Critère algorithmique élémentaire...1 3.2 De l algorithme au programme...2

Plus en détail

Image d un intervalle par une fonction continue

Image d un intervalle par une fonction continue DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction

Plus en détail

CRYPTOGRAPHIE. Chiffrement asymétrique. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie

CRYPTOGRAPHIE. Chiffrement asymétrique. E. Bresson. Emmanuel.Bresson@sgdn.gouv.fr. SGDN/DCSSI Laboratoire de cryptographie CRYPTOGRAPHIE Chiffrement asymétrique E. Bresson SGDN/DCSSI Laboratoire de cryptographie Emmanuel.Bresson@sgdn.gouv.fr I. CHIFFREMENT ASYMÉTRIQUE I.1. CHIFFREMENT À CLÉ PUBLIQUE Organisation de la section

Plus en détail

ULYSSE EST DANS LA PLACE!

ULYSSE EST DANS LA PLACE! LE GUIDE ULYSSE EST DANS LA PLACE! Cheval de Troie. Programme discret, généralement inclus dans un logiciel anodin (jeu, utilitaire), contenant une portion de code malveillant qui contourne certains dispositifs

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Analyse et programmation 1

Analyse et programmation 1 Analyse et programmation Aperçu du fonctionnement de l ordinateur Fonctionnement de l ordinateur Codage de l information Bus d échange d information CPU Exécution d un programme par la CPU Gestion des

Plus en détail

Consignes pour les travaux d actualité Premier quadrimestre

Consignes pour les travaux d actualité Premier quadrimestre Consignes pour les travaux d actualité Premier quadrimestre Principes de base Durant le premier semestre, vous serez amenés à remettre un travail effectué en groupe. Le but de celui-ci est de s intéresser

Plus en détail

UNIVERSITE D ORLEANS SL01MA11, Groupes 1 et 5 Département de Mathématiques 2009-2010. N. El Hage Hassan S EXPRIMER EN MATHÉMATIQUES

UNIVERSITE D ORLEANS SL01MA11, Groupes 1 et 5 Département de Mathématiques 2009-2010. N. El Hage Hassan S EXPRIMER EN MATHÉMATIQUES UNIVERSITE D ORLEANS SL01MA11, Groupes 1 et 5 Département de Mathématiques 2009-2010 N. El Hage Hassan S EXPRIMER EN MATHÉMATIQUES 1 Les énoncés La plupart des phrases que l on rencontre dans un livre

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Marches, permutations et arbres binaires aléatoires

Marches, permutations et arbres binaires aléatoires Marches, permutations et arbres binaires aléatoires Épreuve pratique d algorithmique et de programmation Concours commun des Écoles Normales Supérieures Durée de l épreuve: 4 heures Cœfficient: 4 Juillet

Plus en détail

Algorithmes (2) Premiers programmes sur calculatrice. Programmation sur calculatrice TI. codage

Algorithmes (2) Premiers programmes sur calculatrice. Programmation sur calculatrice TI. codage Objectifs : lgorithmes () Premiers programmes sur calculatrice - passer de la notion d algorithme à la notion de programme - aborder la notion de langage de programmation - s initier à la programmation

Plus en détail

INF601 : Algorithme et Structure de données

INF601 : Algorithme et Structure de données Cours 2 : TDA Liste B. Jacob IC2/LIUM 15 février 2010 Plan 1 Définition du TDA Liste 2 Réalisation du TDA Liste 3 Type de stockage des éléments 4 Recherche d un élément Dans une liste non triée Dans une

Plus en détail

Xi Ingénierie. La performance technologique au service de votre e-commerce. Comment exploiter les cookies sur vos applications web en toute légalité?

Xi Ingénierie. La performance technologique au service de votre e-commerce. Comment exploiter les cookies sur vos applications web en toute légalité? Xi Ingénierie La performance technologique au service de votre e-commerce Comment exploiter les cookies sur vos applications web en toute légalité? Copyright 2012 Xi Ingénierie Toute reproduction ou diffusion

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

TUTORIEL Qualit Eval. Introduction :

TUTORIEL Qualit Eval. Introduction : TUTORIEL Qualit Eval Introduction : Qualit Eval est à la fois un logiciel et un référentiel d évaluation de la qualité des prestations en établissements pour Personnes Agées. Notre outil a été spécifiquement

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Architectures Logicielles et Matérielles Travaux Dirigés Circuits

Architectures Logicielles et Matérielles Travaux Dirigés Circuits UNIVERSITE Joseph FOURIER, Grenoble U.F.R. d Informatique et Maths. Appliquées Architectures Logicielles et Matérielles Travaux Dirigés Circuits Rappel : dessins des portes logiques. Déroulement envisagé

Plus en détail

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population.

Première STMG1 2014-2015 progression. - 1. Séquence : Proportion d une sous population dans une population. Première STMG1 2014-2015 progression. - 1 Table des matières Fil rouge. 3 Axes du programme. 3 Séquence : Proportion d une sous population dans une population. 3 Information chiffrée : connaître et exploiter

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Mode d emploi de la clef USB de l I.P.I. Philosophie de la clef USB

Mode d emploi de la clef USB de l I.P.I. Philosophie de la clef USB Mode d emploi de la clef USB de l I.P.I. Ce mode d emploi est destiné aux étudiant(e)s qui suivent l enseignement de la Phytothérapie Clinique prodigué par l I.P.I. (Institut de Phytothérapie International)

Plus en détail

Convertisseur de monnaies

Convertisseur de monnaies Convertisseur de monnaies La logique algorithmique en première STG Propriétés Intitulé long Formation concernée Matière Notions Présentation Pré-requis Outils Mots-clés Auteur(es) Version 1.0 Description

Plus en détail

Tolérance aux pannes

Tolérance aux pannes Tolérance aux pannes Arnaud Labourel Université de Provence 15 mars 2012 Arnaud Labourel (Université de Provence) Tolérance aux pannes 15 mars 2012 1 / 55 Présentation Tolérances aux pannes Pannes Définition

Plus en détail

PROGRAMME DE LANGUES VIVANTES DE LA VOIE PROFESSIONNELLE

PROGRAMME DE LANGUES VIVANTES DE LA VOIE PROFESSIONNELLE PROGRAMME DE LANGUES VIVANTES DE LA VOIE PROFESSIONNELLE Proposition d aide à la mise en œuvre pédagogique Domaine : SE CULTIVER ET SE DIVERTIR Programme National de pilotage Séminaire «Mise en œuvre pédagogique

Plus en détail

Programmation en VBA

Programmation en VBA Programmation en VBA Présentation de Visual Basic Visual Basic : Basic : dérivé du langage Basic (Biginner s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l interface

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Ligne de commande Linux avancée et scriptage bash (Linux 201)

Ligne de commande Linux avancée et scriptage bash (Linux 201) Ligne de commande Linux avancée et scriptage bash (Linux 201) laurent.duchesne@calculquebec.ca maxime.boissonneault@calculquebec.ca Université Laval - Septembre 2014 1 2 Se connecter à Colosse ssh colosse.calculquebec.ca

Plus en détail

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34 Capacité d un canal Second Théorème de Shannon Théorie de l information 1/34 Plan du cours 1. Canaux discrets sans mémoire, exemples ; 2. Capacité ; 3. Canaux symétriques ; 4. Codage de canal ; 5. Second

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Les types énumérés On peut aussi définir des types qui ont un nombre fini de valeurs (ex: jours de la semaine, couleurs primaires, etc.)

Plus en détail

Jeux à plusieurs et coalitions

Jeux à plusieurs et coalitions Jeux à plusieurs et coalitions Épreuve pratique d algorithmique et de programmation Concours commun des écoles normales supérieures Durée de l épreuve: 3 heures 30 minutes Juillet 2005 Important. Lorsque

Plus en détail

Programmation en VBA

Programmation en VBA Programmation en VBA Présentation de Visual Basic Visual Basic : Basic : dérivé du langage Basic (Biginner s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l interface

Plus en détail

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France. La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of

Plus en détail

LES PUISSANCES EN 4 E. Parcours d études et de recherche autour des puissances en classe de 4 e

LES PUISSANCES EN 4 E. Parcours d études et de recherche autour des puissances en classe de 4 e LES PUISSANCES EN 4 E Parcours d études et de recherche autour des puissances en classe de 4 e PARCOURS SUR LES PUISSANCES : 2 ACTIVITÉS Situation sur les bactéries issue de la SVT Travail en 2 parties

Plus en détail