Le Projet BINSEC. Automatiser l analyse de sécurité au niveau binaire. Airbus group, CEA, IRISA, LORIA, Uni. Joseph Fourier. p.

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

Download "Le Projet BINSEC. Automatiser l analyse de sécurité au niveau binaire. Airbus group, CEA, IRISA, LORIA, Uni. Joseph Fourier. p."

Transcription

1 Le Projet BINSEC Automatiser l analyse de sécurité au niveau binaire Airbus group, CEA, IRISA, LORIA, Uni. Joseph Fourier p. 1/22

2 Introduction Panorama de BINSEC Cadre de travail Projet ANR INS, appel 2012 Axes 1 (sécurité) et 2 (génie logiciel) Projet de recherche fondamentale sur 4 ans ( ) Sujet : Techniques formelles d analyse de sécurité au niveau binaire Mots clés : analyse de code binaire, modèles formels, reconstruction de modèles, détection de malware, analyse de vulnérabilité, code auto-modifiant Partenaires CEA (coordinateur) Airbus group INRIA Bretagne Atlantique Université Joseph Fourier (UJF) - VERIMAG Université de Lorraine (UL) - LORIA p. 2/22

3 Introduction Analyse de sécurité sur du code binaire D importantes analyses de sécurité se font au niveau binaire : détection de vulnérabilité [analyse de crash, génération d exploit ] détection et dissection de malware [dé-obfuscation] Approche classique (ex : analyse de vulnérabilités) haut niveau d expertise, beaucoup d efforts, des outils basiques analyse dymanique : gdb, fuzzing (test semi-aléatoire) analyse statique : objdump, IDA Pro [peu automatisé] p. 3/22

4 Introduction Analyse de sécurité sur du code binaire D importantes analyses de sécurité se font au niveau binaire : détection de vulnérabilité [analyse de crash, génération d exploit ] détection et dissection de malware [dé-obfuscation] Approche classique (ex : analyse de vulnérabilités) haut niveau d expertise, beaucoup d efforts, des outils basiques analyse dymanique : gdb, fuzzing (test semi-aléatoire) analyse statique : objdump, IDA Pro [peu automatisé] but : développer des outils plus avancés motto : étendre les méthodes de validation formelle p. 3/22

5 Introduction Défis : vulnérabilités Des bugs aux vulnérabilités exploitables distinguer entre les bugs critiques pour la sécurité et les autres [deref. de pointeur null VS uaf] [1-byte overflow VS large overflow] définir (formellement) exploitable besoin de nouveaux modèles sémantiques Analyse de crash [travaux préliminaires] input : trace erroné output : est-ce un bug critique? application : prioritisation de bugs p. 4/22

6 Introduction Défis : malware Analyser un code malhonnête reconnaître les malware malgré le polymorphisme besoin de notions robustes (semantiques) de signatures reconnaitre les malwares malgré l obfuscation [prédicats opaques] codes auto-modifiants analyses utilisables plutôt que (strictement) correctes... p. 5/22

7 Introduction Cadre de BINSEC Analyses de sécurité : code binaire, systèmes grand public outillage pauvre, méthodes syntaxiques [gdb, ida pro] applications importantes : vulnérabilités, malware Systèmes grand public allocation dynamique, threads librairies externes, taille++ code venant de C, C++, etc. Propriétés trouver des vulnérabilités évaluer la malignité comprendre le code p. 6/22

8 Introduction Cadre de BINSEC (2) p. 7/22

9 Introduction Cadre de BINSEC (2) Analyses de sécurité sémantiques au niveau binaire un socle commun : modèles et analyses génériques modélisation bas niveau adaptée aux pbs de sécurité reconstruction de structures haut niveau (CFG, pile, etc.) deux domaines applicatifs distincts vulnérabilités [inclu analyse de crash] malware [inclu dé-obscurcissement] p. 7/22

10 Introduction Travail en cours Modèles et analyses génériques au niveau binaire représentation intermédiaire concise [à venir : auto-modification] sémantiques mémoire adaptées à la vérification de code bas niveau analyses : reconstruction de CFG, analyse de pile Analyses de sécurité dédiées vulnérabilité : détection de UaF exploitables, analyse de crash malware : dé-obscurcissement (automodif, préd. opaques, etc.) Plate-forme open-source services de base pour une analyse niveau binaire support du modèle formel générique front-end : chargement, décodage, désassemblage, etc. p. 8/22

11 Focus : sémantique Focus : modélisation Exemple x86 plus de 1,000 instructions. 400 basiques. + flottants, interruptions, mmx nombreux effets de bords décodage compliqué. modes d addressage, préfixes,... p. 9/22

12 Focus : sémantique Focus : modélisation BUT formalisme concis et simple sémantique adaptée aux analyses de sécurité mécanismes de spécification et abstraction Exemple x86 plus de 1,000 instructions. 400 basiques. + flottants, interruptions, mmx nombreux effets de bords décodage compliqué. modes d addressage, préfixes,... p. 9/22

13 Principes Focus : sémantique Représentation intermédiaire variables sur vecteurs de bits + un tableau d octets taille des vecteurs de bits connue statiquement une instruction machine = bloc d instructions DBA [variables tmp] opérations standard sur les vecteurs de bits Instructions lhs := rhs goto addr, goto expr ite(cond)? goto addr : goto addr assume, assert, nondet, malloc, free Expressions e{i.. j}, ext u,s(e,n), e :: k) e {+,,,/ u,s,% u,s,< u,s, u,s,=,, u,s,> u,s} e e {,,,<<,>> u,s} e,!e p. 10/22

14 Principes Focus : sémantique Représentation intermédiaire variables sur vecteurs de bits + un tableau d octets taille des vecteurs de bits connue statiquement une instruction machine = bloc d instructions DBA [variables tmp] opérations standard sur les vecteurs de bits Instructions indépendant d une architecture lhs jeu := d instructions rhs très réduit gotoaucun addr, effet goto de bord expr ite(cond)? modélisation goto bit-precise addr : goto addr assume, hors périmètre assert, : nondet, flottants, malloc, threads free Expressions pas d automodification e{i.. j}, ext u,s(e,n), e :: k) e {+,,,/ u,s,% u,s,< u,s, u,s,=,, u,s,> u,s} e e {,,,<<,>> u,s} e,!e p. 10/22

15 Focus : vulnérabilités Focus : Vulnérabilités UaF (1) Use-after-free (UaF) utilisation d un pointeur dangling sur zone désallouée puis ré-allouée vulnérabilité classique dans les navigateurs Web [firefox, chrome, ie] 1 char login, passwords ; login=(char ) malloc (... ) ; 3 [... ] free ( login ); // login is now a dangling pointer 5 [... ] passwords=(char ) malloc (... ) ; // may re-allocate memory of *login 7 [... ] printf ( %s\n, login ); // security threat : may print the passwords! p. 11/22

16 Focus : vulnérabilités Vulnérabilités UaF (2) Deux difficultés principales propriété de type sûreté [alloc-free-alloc-use] plutôt que simple invariant dépend fortement de l implémentation de malloc et free char login, passwords ; 2 login=(char ) malloc (... ) ; [... ] 4 free ( login ); // login is now a dangling pointer [... ] 6 passwords=(char ) malloc (... ) ; // ansi-c : fresh memory area [... ] 8 printf ( %s\n, login ); // ansi-c : error, yet no particular security threat p. 12/22

17 Focus : vulnérabilités Vulnérabilités UaF (2) Deux difficultés principales propriété de type sûreté [alloc-free-alloc-use] plutôt que simple invariant dépend fortement de l implémentation de malloc et free char login, passwords ; 2 login=(char ) malloc (... ) ; [... ] 4 free ( login ); // login is now a dangling pointer [... ] 6 passwords=(char ) malloc (... ) ; // ansi-c : fresh memory area [... ] 8 printf ( %s\n, login ); // ansi-c : error, yet no particular security threat Quels modèles pour malloc et free? un malloc idéal ne différencie pas entre UaF et simple crash un malloc pessimiste retourne trop de fausses alarmes dans un programme, différentes stratégies d allocation / libération p. 12/22

18 Focus : vulnérabilités Contribution : détection des UaF Objectif = détection de UaF + passage à l échelle Approche en 2 étapes 1. détection de UaF possibles analyse légère sur tout le code analyse statique, allocateurs idéaux morceaux de programmes suspicieux (UaF slices) 2. analyse d exploitabilité ciblée analyse plus lourde, restreinte aux UaF slices exécution concolique, allocateurs bas niveau p. 13/22

19 Focus : vulnérabilités Contribution : détection des UaF Objectif = détection de UaF + passage à l échelle ApprocheAvancement en 2 étapes premier prototype sur un langage DBA-like 1. détection de UaF possibles quelques choix de conception : loop unrolling, procedure analyse inlining légère sur tout le code analyse statique, allocateurs idéaux expérimentations sur des exemples Verisec morceaux de programmes suspicieux (UaF slices) perspectives : étude de cas ProFTPD 2. analyse d exploitabilité ciblée analyse plus lourde, restreinte aux UaF slices exécution concolique, allocateurs bas niveau p. 13/22

20 Focus : malware Focus : malware p. 14/22

21 Focus : malware Focus : malware prédicats opaques, code auto-modifiant, chevauchement d instructions, chiffrement, machines virtuelles, etc. loin d une sémantique assembleur idéale Analyse de programmes protégés. combinaison d analyse dynamique et symbolique (traces) et statique (code). but : prédicats opaques, auto-modification, chevauchement d instructions p. 14/22

22 Focus : platforme Focus : plateforme open-source chargeur ELF, décodeur x86 460/500 instructions : 380/380 simples, 80/120 SIMD, pas de float/system préfixes : op size, addr size, repetition p. 15/22

23 Focus : platforme Focus : plateforme open-source Désassembleur Linéaire / Récursif Linéaire et Récursif Dynamique Simplifications simplification des instructions simplifications intra-blocs simplifications inter-blocs p. 15/22

24 Focus : platforme Focus : plateforme open-source stubs 0xb7fff414: call : 0xb7fff414 { if (nondet() = 0 < 32 >) goto l1 else goto l2; // abstracting a failure condition l1 : eax < 32 >:= 0 < 32 >; // failure, result is NULL goto l3; l2 : eax < 32 > := + 4 < 32 >, <, 4]); assume ((eax modu 4 < 32 >) = 0 < 32 >); l3 : esp < 32 > := esp + 4 < 32 >; - 4 < 32 >, <, 4]; } p. 15/22

25 Focus : platforme Focus : plateforme open-source Blocs de bases pour l analyse Simulation [3 modèles memoires] Analyse statique [reconstruction de CFG correcte/approché] Exécution symbolique [en cours] p. 15/22

26 Focus : platforme Simplification des DBA simplifications des instructions transformation d instructions [ré-écriture locale] simplifications intra-blocs propagation de constantes suppression des tmp redondants simplifications inter-blocs slicing de flags (suppression de variables inactives) p. 16/22

27 Focus : platforme Intra-blocs : suppression de tmp redondants <tmp> t := expr ; // t not redefined ; // x neither used nor defined ; x := expr ; replace each occurrence of t by x x := t // t not used anymore // ( typically : end of block ). Avant simplification Schéma général Après simplification #83 ca 02 or edx, 0x2 <temp>res32 := ( edx or 2<32>); OF := 0<1>; SF := ( res32 {31,31}); ZF := ( res32 = 0<32>); CF := 0<1>; edx := res32 ; goto (0x080554ef,0) #83 ca 02 or edx, 0x2 edx := (edx or 2<32>); OF := 0<1>; SF := (edx{31,31}); ZF := (edx = 0<32>); CF := 0<1>; goto (0x080554ef,0) Avant simplification Après simplification p. 17/22

28 Focus : platforme Inter-blocs : flag slicing # 31 ed xor ebp, ebp <tmp> res32 := 0<32>; OF := 0<1>; SF := 0<1>; ZF := 1<1>; CF := 0<1>; ebp := 0<32>; #0f 85 7c jnz 0x805637c if (!ZF) goto L1 else goto L2 L1: #83 e3 fa and ebx, 0 xfffffffa ebx := (ebx and 0 xfffffffa ); OF := 0<1>; SF := ( res32 {31,31}); ZF := ( res32 = 0<32>); CF := 0<1>; L2: #85 ff test edi, edi <tmp> res32 := edi ; OF := 0<1>; SF := ( res32 {31,31}); ZF := ( res32 = 0<32>); CF := 0<1>; # 31 ed xor ebp, ebp ZF := 1<1>; ebp := 0<32>; #0f 85 7c jnz 0x805637c if (!ZF) goto L1 else goto L2 L1: #83 e3 fa and ebx, 0 xfffffffa ebx := (ebx and 0 xfffffffa ); L2: #85 ff test edi, edi <tmp> res32 := edi ; OF := 0<1>; SF := ( res32 {31,31}); ZF := ( res32 = 0<32>); CF := 0<1>; Avant simplification Après simplification p. 18/22

29 Focus : platforme Exemples program native DBA opt (DBA) loc loc loc KO loc time red bash 166K 558K 5 402K 10.65m 27.95% cat K 0 18K 16.62s 20.55% echo K s 22.38% less 23K 80K 5 56K 89.31s 29.03% ls 18K 63K 6 45K 83.42s 27.38% mkdir K 5 18K 23.65s 27.08% netstat 16K 50K 3 41K 68.48s 17.43% ps K 0 28K 47.90s 21.38% pwd K s 21.47% rm K 16 23K 31.13s 22.52% sed K 0 24K 37.50s 24.24% tar 64K 212K 7 159K 5.2m 25.26% touch K 0 19K 30.02s 25.75% uname K s 21.68% ir vs asm reduction ir vs asm (no simpl) dba instr tmp assign flag assign (simpl) DBA 3.3x 24.00% 21.89% 73.17% 2.5x (function-level) p. 19/22

30 Focus : platforme Analyse statique (début) Quelques nouveautés à l étude compromis précision / passage à l échelle / utilisabilité mode clos : restriction a priori sur les cibles de jmp eax mode dégradé : si jmp eax évalue à, garder anciennes valeurs calculées (unsound plutôt que fail) [inspiré de J. Kinder] p. 20/22

31 Focus : platforme Exécution symbolique (début) chemin formule entrée de test calcul de teinte spécification des politiques de C/S p. 21/22

32 Conclusion Conclusion Analyse formelle de code bas niveau pour la sécurité Problèmes de base et centrés vuln. / malware détection de UaF exploitables déobfuscation analyse de crash Plate-forme open source [début!] IR, simplification, simulation services basiques de SA et DSE Upcoming events : 2015, LOCAS 2015 p. 22/22

Élaboration d une représentation intermédiaire pour l exécution concolique et le marquage de données sous Windows

Élaboration d une représentation intermédiaire pour l exécution concolique et le marquage de données sous Windows Élaboration d une représentation intermédiaire pour l exécution concolique et le marquage de données sous Windows Sébastien LECOMTE cyberaware@laposte.net SSTIC 06 juin 2014 Plan 1 Introduction 2 Représentation

Plus en détail

SSTIC 2009. Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

SSTIC 2009. Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques... Désobfuscation automatique de binaires Et autres idyles bucoliques... Alexandre Gazet Sogeti / ESEC R&D alexandre.gazet(at)sogeti.com Yoann Guillot Sogeti / ESEC R&D yoann.guillot(at)sogeti.com SSTIC 2009

Plus en détail

Logiciel de base. Première année ENSIMAG

Logiciel de base. Première année ENSIMAG Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert

Plus en détail

Analyse de sécurité de logiciels système par typage statique

Analyse de sécurité de logiciels système par typage statique Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction

Plus en détail

La famille x86. Eduardo Sanchez Laboratoire de Systèmes Logiques. Ecole Polytechnique Fédérale de Lausanne

La famille x86. Eduardo Sanchez Laboratoire de Systèmes Logiques. Ecole Polytechnique Fédérale de Lausanne La famille x86 Laboratoire de Systèmes Logiques Désavantages de l architecture x86 Très vieille architecture: basée sur le 8080 (commercialisé en 1974, 6 000 transistors et 8 registres) Le premier 8086

Plus en détail

Shikata Deshita. Romain LESTEVEN

Shikata Deshita. Romain LESTEVEN Shikata Deshita Romain LESTEVEN 7 août 2015 TABLE DES MATIÈRES TABLE DES MATIÈRES Table des matières 1 Introduction 2 2 Encodage de shellcode 3 3 Shikata Ga Nai 4 3.1 Présentation.............................

Plus en détail

Gene-Auto, Projet ITEA 05018 IDM pour la génération de code critique certifié Validation et Vérification de transformations

Gene-Auto, Projet ITEA 05018 IDM pour la génération de code critique certifié Validation et Vérification de transformations Gene-Auto, Projet ITEA 05018 IDM pour la génération de code critique certifié Validation et Vérification de transformations Journées GDR GPL Transformations de modèles et de programmes 18 janvier 2008

Plus en détail

Modélisation: outillage et intégration

Modélisation: outillage et intégration Modélisation: outillage et intégration Emmanuel Gaudin emmanuel.gaudin@pragmadev.com Un réel besoin Le logiciel double tous les deux ans. Le volume final rend extrêmement difficile de garantir le niveau

Plus en détail

Cours de compilation

Cours de compilation Cours de compilation 1 Introduction Un compilateur est un logiciel de traduction d un langage source vers un langage cible. D ordinaire le langage source est un langage de programmation évolué, comme C++

Plus en détail

Déprotection semi-automatique de binaire

Déprotection semi-automatique de binaire A. Gazet & Y. Guillot Déprotection semi-automatique de binaire 1/49 Déprotection semi-automatique de binaire avec : celui qui fond dans la bouche et pas dans la main. Alexandre Gazet Yoann Guillot A. Gazet

Plus en détail

APRON: Analyse de PRogrammes Numérique

APRON: Analyse de PRogrammes Numérique Introduction APRON: Analyse de PRogrammes Numérique Projet 2004 François Irigoin École des Mines de Paris - Centre de Recherche en Informatique 17 novembre 2004 Introduction Pourquoi? Analyse statique

Plus en détail

Les méthodes formelles dans le cycle de vie. Virginie Wiels ONERA/DTIM Virginie.Wiels@onera.fr

Les méthodes formelles dans le cycle de vie. Virginie Wiels ONERA/DTIM Virginie.Wiels@onera.fr Les méthodes formelles dans le cycle de vie Virginie Wiels ONERA/DTIM Virginie.Wiels@onera.fr Plan Introduction Différentes utilisations possibles Différentes techniques pour différentes propriétés à différents

Plus en détail

FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION. Projet Tutorat Réseau / Sécurité INSA de Lyon 2011

FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION. Projet Tutorat Réseau / Sécurité INSA de Lyon 2011 FAILLES APPLICATIVES INTRODUCTION & EXPLOITATION Projet Tutorat Réseau / Sécurité INSA de Lyon 2011 Lucas Bouillot Arnaud Kleinpeter Gaétan Bouquet Xavier Paquin INTRODUCTION INTRODUCTION Qu est ce qu

Plus en détail

Architecture des ordinateurs TP 3

Architecture des ordinateurs TP 3 Architecture des ordinateurs ESIPE - IR1 TP 3 Objectif de cette séance L objectif de cette séance est d apprendre à utiliser la pile et à écrire des fonctions en assembleur En particulier, nous verrons

Plus en détail

Développement de logiciels par objets avec UML (Unified Modeling Language) Pr. Jean-Marc Jézéquel IRISA - Univ. Rennes I

Développement de logiciels par objets avec UML (Unified Modeling Language) Pr. Jean-Marc Jézéquel IRISA - Univ. Rennes I 1 Développement de logiciels par objets avec UML (Unified Modeling Language) Pr. Jean-Marc Jézéquel IRISA - Univ. Rennes I Campus de Beaulieu F-35042 Rennes Cedex Tel : +33 299 847 192 Fax : +33 299 842

Plus en détail

Département Informatique L3 Mention Informatique Jean-Michel Richer Architecture des Ordinateurs jean-michel.richer@univ-angers.

Département Informatique L3 Mention Informatique Jean-Michel Richer Architecture des Ordinateurs jean-michel.richer@univ-angers. Département Informatique L3 Mention Informatique Jean-Michel Richer Architecture des Ordinateurs jean-michel.richer@univ-angers.fr 2015/2016 Travaux Dirigés 1 Représentation de l information En informatique,

Plus en détail

Techniques et outils de test pour les logiciels réactifs synchrones

Techniques et outils de test pour les logiciels réactifs synchrones Journées Systèmes et Logiciels Critiques Institut IMAG ; 14-16 nombre 2000 Techniques et outils de test pour les logiciels réactifs synchrones Farid Ouabdesselam 1 Méthodes de test : classification générale

Plus en détail

Sécurité de la plate-forme d exécution Java : limites et proposition d améliorations

Sécurité de la plate-forme d exécution Java : limites et proposition d améliorations Sécurité de la plate-forme d exécution Java : limites et proposition d améliorations Guillaume Hiet, Frédéric Guihéry, Goulven Guiheux, David Pichardie, Christian Brunette AMOSSYS-INRIA-SILICOM 10 juin

Plus en détail

Techniques de compilation

Techniques de compilation Département d Informatique Université de Nice Sophia Antipolis Master 1 Informatique Techniques de compilation XI. Générateurs de générateurs de code Jacques Farré email : Jacques.Farre@unice.fr 1 Introduction

Plus en détail

Compromission de carte à puce via la couche protocolaire ISO 7816-3

Compromission de carte à puce via la couche protocolaire ISO 7816-3 Compromission de carte à puce via la couche protocolaire ISO 7816-3 Symposium sur la sécurité des technologies de l'information et des communications, 3 au 5 juin 2015 Guillaume VINET PLAN Sécurité des

Plus en détail

Traduction binaire dynamique de l extension SIMD

Traduction binaire dynamique de l extension SIMD Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu Travaux d études et de recherches Ensimag - Tima SLS 25 mai 2010 Table des matières 1 Introduction 2 Tiny code generator Les helpers

Plus en détail

Utilisation d un compilateur pour évaluer la résistance des obfuscations de programmes C

Utilisation d un compilateur pour évaluer la résistance des obfuscations de programmes C 1 Utilisation d un compilateur pour évaluer la résistance des obfuscations de programmes C Stéphanie Riaud INRIA & DGA-MI Directrice de thèse : Sandrine Blazy 2 L obfuscation *Collberg] : une solution

Plus en détail

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Architecture Doctorant: Directeurs de thèse: Bechir ZALILA

Plus en détail

Optimisation de code

Optimisation de code Optimisation de code Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Optimisation de code 1 / 77 But L optimisation cherche à améliorer

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Vérification formelle d un modèle mémoire pour le langage C

Vérification formelle d un modèle mémoire pour le langage C Vérification formelle d un modèle mémoire pour le langage C Projet ANR ARA SSIA CompCert (http://compcert.inria.fr) Sandrine Blazy, Xavier Leroy CEDRIC-ENSIIE et INRIA Rocquencourt CEA-LIST, 18 mars 2008

Plus en détail

La Rétroconception Application à l analyse logicielle

La Rétroconception Application à l analyse logicielle La Rétroconception Application à l analyse logicielle Serge LEFRANC DGA/DCE/CELAR n 1 Introduction DGA/DCE/CELAR n 2 Introduction 1/2 La rétroconception peut se définir comme l action d extraire une connaissance

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 7 17 décembre 2012 Archi 1/1 Fonctions, suite et fin Archi 2/1 Rappel Forme générale d un sous-programme (fonction) : etiquette sousprogramme: push ebp ; empile la valeur

Plus en détail

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de:

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: C, seconde séance le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: false, c est 0 ( \0 aussi) test d égalité: == pour printf: %d entier, %f flottant, %c caractère,

Plus en détail

Introduction à l analyse de Malwares. Mickaël OHLEN IR3

Introduction à l analyse de Malwares. Mickaël OHLEN IR3 1 Introduction à l analyse de Malwares Mickaël OHLEN IR3 Plan 2 1. Qu est ce qu un malware? 2. Analyse 3. Techniques d obfuscation 4. Démonstration (Analyse de CLogger) 3 1. Qu est ce qu un malware? 2.

Plus en détail

Cours de Test Logiciel

Cours de Test Logiciel S.Bardin Test Logiciel 1/ 22 Cours de Test Logiciel Leçon 3 : Sélection de tests boîte blanche Sébastien Bardin CEA-LIST, Laboratoire de Sûreté Logicielle Méthodes de sélection Boite Blanche S.Bardin Test

Plus en détail

INF4420: Éléments de Sécurité Informatique

INF4420: Éléments de Sécurité Informatique : Éléments de Module II : Sécurité OS et des logiciels José M. Fernandez M-3109 340-4711 poste 5433 Module II Aperçu Semaine 5 Sécurité dans les systèmes d'exploitation (SE) Contrôle d'accès dans les SE

Plus en détail

Logiciel de Base : examen de première session

Logiciel de Base : examen de première session Logiciel de Base : examen de première session ENSIMAG 1A Année scolaire 2008 2009 Consignes générales : Durée : 2h. Tous documents et calculatrices autorisés. Le barème est donné à titre indicatif. Les

Plus en détail

Instructions assembleur

Instructions assembleur Instructions assembleur 0001011011110110 0001011101101101 10001001 Instruction vue par le programmeur assembleur ou instruction élémentaire cible d'un compilateur Réalise une modification de l'état interne

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Portage de l architecture sécurisée CryptoPage sur un microprocesseur x86

Portage de l architecture sécurisée CryptoPage sur un microprocesseur x86 Portage de l architecture sécurisée CryptoPage sur un microprocesseur x86 Guillaume Duc Ronan Keryell Département Informatique École Nationale Supérieure des Télécommunications de Bretagne Symposium en

Plus en détail

Correction de programmes : Logique de Hoare

Correction de programmes : Logique de Hoare 16 juillet 2009 Logique et informatique Vis-à-vis de l informatique la logique a au moins 2 rôles : 1 Externe et théorique (fondements de l informatique - Électif en S4) : Logique comme méta-informatique

Plus en détail

Cours de Test Logiciel

Cours de Test Logiciel S.Bardin Test Logiciel 1/ 31 Cours de Test Logiciel Leçon 4 : Tests de régression Sébastien Bardin CEA-LIST, Laboratoire de Sûreté Logicielle sebastien.bardin@cea.fr http://sebastien.bardin.free.fr Tests

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Principes de la programmation impérative

Principes de la programmation impérative Séquence d instructions Variables et types Types élaborés Procédures, arguments Gestion de la mémoire Langage compilé, interprété Principes de la programmation impérative Séquence d instructions Variables

Plus en détail

Rapport de TER: Analyse de pointeur dans LLVM

Rapport de TER: Analyse de pointeur dans LLVM Rapport de TER: Analyse de pointeur dans LLVM Aurélien CHEMIER Janvier-Février 2014 Résumé Les optimisations réalisées à l intérieur d un compilateur, pour améliorer l efficacité du code généré, ont besoin

Plus en détail

Introduction à Fortran 90

Introduction à Fortran 90 Introduction à Fortran 90 Nicolas Kielbasiewicz 19 mars 2008 Fortran pour FORmula TRANslator est comme son nom l indique dédié au calcul scientifique car très performant de ce point de vue. Fortran 77

Plus en détail

SDL: 20 ans de programmation basée modèle

SDL: 20 ans de programmation basée modèle SDL: 20 ans de programmation basée modèle Emmanuel Gaudin emmanuel.gaudin @ pragmadev.com Principes MDE, MDA et MDD: Approche orienté modèle PIM: Platform Independant Model PDM: Platform Definition Model

Plus en détail

Objectifs. Architecture des Ordinateurs Partie III : Liens avec le système d exploitation. Au sommaire... Schéma général d un compilateur (1/8)

Objectifs. Architecture des Ordinateurs Partie III : Liens avec le système d exploitation. Au sommaire... Schéma général d un compilateur (1/8) Architecture des Ordinateurs Partie III : Liens avec le système d exploitation 2. Génération de code David Simplot simplot@fil.univ-lille1.fr Objectifs Voir la génération de code ainsi que les mécanismes

Plus en détail

GELE5343 Chapitre 2 : Révision de la programmation en C

GELE5343 Chapitre 2 : Révision de la programmation en C GELE5343 Chapitre 2 : Révision de la programmation en C Gabriel Cormier, Ph.D., ing. Université de Moncton Hiver 2013 Gabriel Cormier (UdeM) GELE5343 Chapitre 2 Hiver 2013 1 / 49 Introduction Contenu 1

Plus en détail

Travail d étude Les techniques de protection du logiciel

Travail d étude Les techniques de protection du logiciel Travail d étude Les techniques de protection du logiciel Julien Burle Présenté par: Térence Scalabre Licence Informatique Comment et pourquoi protéger son logiciel? Tout d abord intéressons-nous aux raisons

Plus en détail

GlobalScape Secure FTP Server 3.0.2 Buffer Overflow

GlobalScape Secure FTP Server 3.0.2 Buffer Overflow GlobalScape Secure FTP Server 3.0.2 Buffer Overflow muts@whitehat.co.il Traduction française: jerome[at]athias.fr http://www.athias.fr/jerome/doc/ Qu est-ce que le Serveur FTP Sécurisé GlobalScape?...

Plus en détail

ACI Sécurité ALIDECS:

ACI Sécurité ALIDECS: ACI Sécurité ALIDECS: Langages et Atelier Integrés pour le Développement de Composants Embarqués Sûrs Réunion de démarrage LIP6, 21 et 22 octobre 2004 Marc Pouzet 1 Page web http://www-verimag.imag.fr/synchrone/alidecs/

Plus en détail

Analyse de la démographie des objets dans les systèmes Java temps-réel

Analyse de la démographie des objets dans les systèmes Java temps-réel Analyse de la démographie des objets dans les systèmes Java temps-réel Nicolas BERTHIER Laboratoire VERIMAG Responsables du stage : Christophe RIPPERT et Guillaume SALAGNAC le 29 septembre 26 1 Introduction

Plus en détail

nulles dans un langage à objets

nulles dans un langage à objets Prévention de déréférencement de références nulles dans un langage à objets Jean-Sébastien Gélinas, Étienne M. Gagnon, Jean Privat Université du Québec à Montréal Langages et Modèles à Objets Nancy 27

Plus en détail

Introduction aux Machines Virtuelles avec VMKit

Introduction aux Machines Virtuelles avec VMKit Introduction aux Machines Virtuelles avec Ingénieur :, Responsables : Gaël Thomas, Gilles Müller EQUIPE REGAL LIP6 INRIA (Paris/France) un substrat de machine virtuelle : a substrate for Managed Runtime

Plus en détail

Architecture des ordinateurs TD 1

Architecture des ordinateurs TD 1 Architecture des ordinateurs TD 1 ENSIMAG 1 re année April 29, 2008 Imprimer pour chaque étudiant le listing des instructions (page 36 de la doc, ou page 2 du chapitre 7). Pas la peine de tout imprimer.

Plus en détail

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion

GenDbg : un débogueur générique. Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion GenDbg : un débogueur générique Didier Eymery Jean-Marie Borello Jean-Marie Fraygefond Odile Eymery Philippe Bion 2008 Qui sommes nous? Centre d électronique de l Armement (CELAR) Maîtrise et protection

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

Castle in the Skype. Fabrice DESCLAUX

Castle in the Skype. Fabrice DESCLAUX Fabrice DESCLAUX Castle in the Skype 1/31 Castle in the Skype Fabrice DESCLAUX serpilliere(at)rstack.org / fabrice.desclaux(at)eads.net EADS Corporate Research Center DCR/STI/C SSI Lab Suresnes, FRANCE

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Types et langages de programmation. Algorithmique et Programmation Unisciel/K.Zampieri

Types et langages de programmation. Algorithmique et Programmation Unisciel/K.Zampieri Types et langages de programmation Algorithmique et Programmation Unisciel/K.Zampieri 1 Généalogie partielle des langages de programmation FORTRAN BASIC PL/1 PROLOG ALGOL60 COBOL C PASCAL ADA MODULA-2

Plus en détail

Structure d un programme

Structure d un programme Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé

Plus en détail

1.1 Remote Procedure Call (RPC)

1.1 Remote Procedure Call (RPC) 1.1 Remote Procedure Call (RPC) Le modèle Client-Serveur est un modèle simple à utiliser pour la structuration des systèmes répartis. Mais ce modèle s appuie sur des communications de type entrée/sortie

Plus en détail

ASSEMBLAGE ET ÉDITION DES LIENS

ASSEMBLAGE ET ÉDITION DES LIENS ASSEMBLAGE ET ÉDITION DES LIENS Mewtow 11 novembre 2015 Table des matières 1 Introduction 5 2 La chaine d assemblage 7 2.1 Résolution des symboles.............................. 7 2.2 Relocation.....................................

Plus en détail

Programmation assembleur sur l architecture x86

Programmation assembleur sur l architecture x86 Mini-projet système : développement d un noyau de système d exploitation Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Programmation assembleur sur l architecture x86

Plus en détail

Résultats des projets CARROLL. Bilan et perspectives. Validation et Vérification

Résultats des projets CARROLL. Bilan et perspectives. Validation et Vérification Résultats des projets CARROLL Bilan et perspectives Validation et Vérification Paul Le Guernic, INRIA Workshop CARROLL 23 septembre 2005 Contexte Validation & Vérification dans CARROLL Perspectives Contexte

Plus en détail

Désassemblage et détection de logiciels malveillants auto-modifiants

Désassemblage et détection de logiciels malveillants auto-modifiants École doctorale IAEM Lorraine Désassemblage et détection de logiciels malveillants auto-modifiants THÈSE présentée et soutenue publiquement le 23/02/205 pour l obtention du Doctorat de l Université de

Plus en détail

Sujet d examen 1. Pratique du C. Novembre 2009

Sujet d examen 1. Pratique du C. Novembre 2009 Durée 1 h 30 Documents autorisés Sujet d examen 1 Pratique du C Novembre 2009 Introduction Écrivez lisiblement et n hésitez pas à commenter votre code en langage C. Vous ne pouvez utiliser que les fonctions

Plus en détail

Obfuscation d applications écrites en Python

Obfuscation d applications écrites en Python Obfuscation d applications écrites en Python python-pack Ninon EYROLLES neyrolles@quarkslab.com Serge GUELTON sguelton@quarkslab.com Qu est-ce que l obfuscation? 1 Qu est-ce que l obfuscation? 1 Pourquoi

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

Structures de données

Structures de données 1 de 52 Algorithmique Structures de données Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 52 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

Performances et optimisations

Performances et optimisations Ecole Doctorale MathIf Performances et optimisations Violaine Louvet 1 1 ICJ - CNRS Année 2009-2010 Objectifs de ce cours Performances Déterminer les parties du code les plus coûteuses en temps. Déterminer

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Analyse Sémantique. Arthur Garnier

Analyse Sémantique. Arthur Garnier Analyse Sémantique Arthur Garnier 1 Résumé source -> Analyse Syntaxique (AST) -> Analyse sémantique (AST + TDS) -> Optimisations -> Prod. de code -> Assembleur Une table des symboles par région (fonction,

Plus en détail

Qualité logicielle, tests, débogage

Qualité logicielle, tests, débogage Qualité logicielle, tests, débogage A. Accro aux tests? Une introduction au test logiciel................ 4 Pourquoi le test logiciel? Des tests, pour gagner du temps! Pour aller plus loin Les objectifs

Plus en détail

Noyau d'un système d'exploitation INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2)

Noyau d'un système d'exploitation INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2) INF2610 Chapitre 7 : Gestion de la mémoire (annexe 2) Département de génie informatique et génie logiciel Hiver 2014 Exemple 1 : Espace virtuel d un processus Où seront stockées les données des variables

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

Compte rendu TP No3 : «Analyse dynamique de programme»

Compte rendu TP No3 : «Analyse dynamique de programme» LO20 : Vérification, validation et sûreté de fonctionnement http://www.genie logiciel.utc.fr/lo20/ Compte rendu TP No3 : «Analyse dynamique de programme» Le second TP concerne l'analyse dynamique de programme.

Plus en détail

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales

Plus en détail

Outils d analyse de performance pour le HPC

Outils d analyse de performance pour le HPC Outils d analyse de performance pour le HPC François Trahay Master MOPS Décembre 2013 Plan 1 Introduction.................................................................... 3 2 Outils de profiling..............................................................10

Plus en détail

Thème 9 : Introduction à l'optimisation de code

Thème 9 : Introduction à l'optimisation de code Compilation : théorie, techniques et outils Thème 9 : Introduction à l'optimisation de code HABIB ABDULRAB (INSTITUT NATIONAL DES SCIENCES APPLIQUÉES DE ROUEN) CLAUDE MOULIN (UNIVERSITÉ DE TECHNOLOGIE

Plus en détail

Résolution générique à la volée de systèmes d équations booléennes et applications

Résolution générique à la volée de systèmes d équations booléennes et applications Résolution générique à la volée de systèmes d équations booléennes et applications Radu Mateescu INRIA Rhône-Alpes / VASY Plan Introduction Systèmes d équations booléennes d alternance 1 Algorithmes de

Plus en détail

Programmation assembleur : aperçu

Programmation assembleur : aperçu Assembleur : Younès EL AMRANI. 1 Programmation assembleur : aperçu Programmation en assembleur : NASM Module M14 Semestre 4 Printemps 2010 Equipe pédagogique : Younès El Amrani, Abdelhakim El Imrani, Faissal

Plus en détail

Paradigme de programmation Impératif

Paradigme de programmation Impératif Paradigme de programmation Impératif La programmation impérative est caractérisée par, la programmation avec un état et des commandes qui modifient l état : Programmation impérative Procédurale = Programmation

Plus en détail

Systèmes répartis : les Remote Procedure Calls p.1/25

Systèmes répartis : les Remote Procedure Calls p.1/25 Systèmes répartis : les Remote Procedure Calls Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Systèmes répartis : les Remote Procedure Calls p.1/25 Les Remote Procedure Calls

Plus en détail

Le «thread local storage» et son utilisation

Le «thread local storage» et son utilisation Résumé Les allocations mémoire sont généralement plus coûteuses que d ordinaire en environnement multi-thread. En effet, la majorité des algorithmes d allocation en usage dans les systèmes d exploitation

Plus en détail

Programmation en assembleur Gnu sur des microprocesseurs de la gamme Intel (du 80386 au Pentium-Pro) ENSIMAG. Première année

Programmation en assembleur Gnu sur des microprocesseurs de la gamme Intel (du 80386 au Pentium-Pro) ENSIMAG. Première année Programmation en assembleur Gnu sur des microprocesseurs de la gamme Intel (du 80386 au Pentium-Pro) ENSIMAG Première année Année 2009 X. Rousset de Pina Sommaire 1. Introduction......1 2. L architecture

Plus en détail

L utilitaire "make" et son inséparable Makefile

L utilitaire make et son inséparable Makefile L utilitaire "make" et son inséparable Makefile Compilation et exécution Programme source Analyse lexicale (scaning) Optimisation du code Programme abstrait (optimisé) Génération du code Séquence d unités

Plus en détail

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali 3. Langage Python 3 2 a. Introduction Présentation du langage Python : Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l imposer) une approche modulaire et orientée objet

Plus en détail

DUT Informatique Architecture des ordinateurs Année 2012/2013. - Aucun document autorisé - Calculatrices interdites - Durée : 2 heures -

DUT Informatique Architecture des ordinateurs Année 2012/2013. - Aucun document autorisé - Calculatrices interdites - Durée : 2 heures - DUT Informatique Architecture des ordinateurs Année 2012/2013 - Aucun document autorisé - Calculatrices interdites - Durée : 2 heures - NOM, prénom : Dans tous les exercices, vous pouvez utiliser les fonctions

Plus en détail

Trouver kernel32.dll

Trouver kernel32.dll Trouver kernel32.dll Jerome Athias http://www.athias.fr Du fait que parler directement au kernel n est pas une option, une solution alternative est nécessaire. La seule autre manière de parler au noyau

Plus en détail

Organisation des données et structures de stockage

Organisation des données et structures de stockage ING2 - ING3 Nvx 2009-2010 Organisation des données et structures de stockage I. Stockage de l information en C Ce chapitre rappelle brièvement et complète certaines notions de base vues en première année

Plus en détail

Contrôle Architecture des microprocesseurs Durée 2 heures

Contrôle Architecture des microprocesseurs Durée 2 heures Contrôle Architecture des microprocesseurs Durée 2 heures Tous les documents personnels (cours, TD, TP) sont autorisés. La machine à calculer est autorisée. La qualité de la présentation sera prise en

Plus en détail

Stuxnet et Duqu : une histoire de codes malveillants mutants

Stuxnet et Duqu : une histoire de codes malveillants mutants Stuxnet et Duqu : une histoire de codes malveillants mutants Jean-Yves Marion LORIA Université de Lorraine Jean-Yves.Marion@loria.fr Laboratoire de Haute Sécurité (LHS) 1 Stuxnet Ingénierie Sociale Communication

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Évaluation de Performances par Simulation : introduction générale et présentation du logiciel QNAP2

Évaluation de Performances par Simulation : introduction générale et présentation du logiciel QNAP2 Évaluation de Performances par Simulation : introduction générale et présentation du logiciel QNAP2 Nicolas NAVET INRIA/TRIO http://www.loria.fr/~nnavet La simulation? Simuler, c est expérimenter sur un

Plus en détail

L assembleur x86 32 bits. Plan. Plan. Architecture des ordinateurs. L excellent PC Assembly Language de Paul A. Carter http ://www.drpaulcarter.

L assembleur x86 32 bits. Plan. Plan. Architecture des ordinateurs. L excellent PC Assembly Language de Paul A. Carter http ://www.drpaulcarter. Généralité Langage Assembleur Programmation assembleur Généralité Langage Assembleur Programmation assembleur Références L assembleur x86 32 bits Architecture des ordinateurs Guillaume Blin IGM-LabInfo

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Assembleur x86. P. Ezéquel

Assembleur x86. P. Ezéquel Assembleur x86 P. Ezéquel 1 TABLE DES MATIÈRES 2 Table des matières 1 Introduction 3 2 Anatomie du x86 3 2.1 Registres généraux.......................... 4 2.2 Registres de base de segments....................

Plus en détail

CAHIER DES CHARGES D IMPLANTATION

CAHIER DES CHARGES D IMPLANTATION CAHIER DES CHARGES D IMPLANTATION Tableau de diffusion du document Document : Cahier des Charges d Implantation EVRP Version 6 Etabli par DCSI Vérifié par Validé par Destinataires Pour information Création

Plus en détail

La rétroconception : application à l analyse logicielle

La rétroconception : application à l analyse logicielle La rétroconception : application à l analyse logicielle Serge Lefranc Centre d Électronique de l Armement Bruz cedex F-35174, France serge.lefranc@dga.defense.gouv.fr Résumé Cet article a pour but de présenter

Plus en détail

1. Les fondements de l informatique 13

1. Les fondements de l informatique 13 Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

Plus en détail

OPTIMISATION ET FIABILISATION D UNITEX. ou du labo à l iphone...

OPTIMISATION ET FIABILISATION D UNITEX. ou du labo à l iphone... OPTIMISATION ET FIABILISATION D UNITEX ou du labo à l iphone... FRANÇOIS LIGER Co-fondateur et CEO GILLES VOLLANT Co-fondateur et développeur ANASTASIA YANNACOPOULOU Co-fondatrice et linguiste en chef

Plus en détail

Méthodes de test. Mihaela Sighireanu

Méthodes de test. Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/methtest/ Partie I 1 Propriétés 2 Un peu de génie logiciel de test 3 Eléments Problèmes Point

Plus en détail