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

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

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

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

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

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

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

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

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 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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

Qualité du logiciel: Méthodes de test

Qualité du logiciel: Méthodes de test Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution

Plus en détail

L assembleur avec GCC

L assembleur avec GCC L assembleur avec GCC informaticienzero 27/09/2014 Connaissez-vous les fonctions inline? On les utilise pour optimiser un code, puisque l appel de la fonction est remplacé par le corps de la fonction elle-même.

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

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

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch Informatique III: Programmation en C++ Lundi 24 Octobre 2005 Chargé de cours François Fleuret francois.fleuret@epfl.ch Assistant Mathieu Salzmann mathieu.salzmann@epfl.ch Assistants étudiants Ali Al-Shabibi

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

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

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

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

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

Titre de la thèse Reconstruction du graphe de contrôle de flot des programmes malveillants par des outils combinant analyse statique et dynamique.

Titre de la thèse Reconstruction du graphe de contrôle de flot des programmes malveillants par des outils combinant analyse statique et dynamique. Ecole doctorale : IAEM 0077 Unité et équipe : Loria UMR 7503, département 2 Méthode Formelle. Nom de l encadrant : Jean- Yves Marion, Professeur Université de Lorraine et Guillaume Bonfante, maître de

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

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

graphelf : un outil d aide à la compréhension de fichiers ELF

graphelf : un outil d aide à la compréhension de fichiers ELF Université Paris 8 Département d Informatique 2 rue de la liberté 93526 Saint-Denis Cedex 02 Mémoire de DEA DEA Intelligence Artificielle et Optimisation Combinatoire Paris 8 - Paris 13 graphelf : un outil

Plus en détail

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.

Plan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB. global Outils de développement et compilation IDE, GCC/Clang, ASAN, perf, valgrind, GDB Timothée Ravier LIFO, INSA-CVL, LIPN 1 re année cycle ingénieur STI 2013 2014 1 / 36 Objectifs des outils présentés

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

J.-M Friedt. FEMTO-ST/département temps-fréquence. jmfriedt@femto-st.fr. transparents à jmfriedt.free.fr. 19 janvier 2015

J.-M Friedt. FEMTO-ST/département temps-fréquence. jmfriedt@femto-st.fr. transparents à jmfriedt.free.fr. 19 janvier 2015 Informatique FEMTO-ST/département temps-fréquence jmfriedt@femto-st.fr transparents à jmfriedt.free.fr 19 janvier 2015 1 / 15 16 séances Plan des cours 1 C pour microcontroleurs : volatile, tailles de

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

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

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

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

Debugging Session : Anti-Anti-ptrace() or Fooling The Debugger Fooler

Debugging Session : Anti-Anti-ptrace() or Fooling The Debugger Fooler Debugging Session : Anti-Anti-ptrace() or Fooling The Debugger Fooler DarKPhoeniX - [French Reverse Engineering Team] 30 août 2005 Contents 1 Introduction 1 2 Exemple de binaire protégé 2 3 Contourner

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

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

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

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

Désobfuscation automatique de binaire - The Barbarian Sublimation

Désobfuscation automatique de binaire - The Barbarian Sublimation Désobfuscation automatique de binaire - The Barbarian Sublimation Yoann Guillot, Alexandre Gazet Sogeti - ESEC Résumé Ce papier présente l état de notre recherche dans le domaine de l automatisation du

Plus en détail

Résumé Génération de code Le code intermédiaire

Résumé Génération de code Le code intermédiaire Résumé Analyse INFO0004 Structure des langages de programmation Génération de code ; liaison et exécution Justus H. Piater Programmation Analyse Compilation Liaison fichier texte Analyse lexicale flux

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

Édition de liens. 1 Programme unique. Ensimag 1A Apprentissage. 1.1 Listing d assemblage. offset codop. .section.rodata

Édition de liens. 1 Programme unique. Ensimag 1A Apprentissage. 1.1 Listing d assemblage. offset codop. .section.rodata Édition de liens Ensimag 1A Apprentissage 2010 1 Programme unique 1.1 Listing d assemblage offset codop.section.rodata 25 73 20 25 sortie:.asciz "%s %s %c%c%c%c%c%c%c %s%c %s%c\n" 73 20 25 63 25 63 25

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

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

Assembleur x86. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr

Assembleur x86. Eric Cariou. Université de Pau et des Pays de l'adour Département Informatique. Eric.Cariou@univ-pau.fr Assembleur x86 Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Niveaux de programmation Du plus bas niveau (1) au plus abstrait (6) 1) Impulsions

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

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

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

Unité d enseignement Systèmes d exploitation Unix : Mise en œuvre du noyau Unix 1-ière Année Informatique et Mathématiques Appliquées

Unité d enseignement Systèmes d exploitation Unix : Mise en œuvre du noyau Unix 1-ière Année Informatique et Mathématiques Appliquées Unité d enseignement Systèmes d exploitation Unix : Mise en œuvre du noyau Unix 1-ière Année Informatique et Mathématiques Appliquées 1 Présentation générale TD-TP : Mémoire virtuelle 21 mai 2013 Le système

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

Systèmes d'exploitation

Systèmes d'exploitation Systèmes d'exploitation Fonctionnement interne Jeudi 27 mai et mardi 1er Juin Thomas Petazzoni Lolut - http://lolut.utbm.info Linux Magazine Série complète sur la construction d'un OS simple : SOS. A partir

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

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique 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

Conception et exploitation des processeurs

Conception et exploitation des processeurs Chargés de cours : Frédéric Pétrot et Sébastien Viardot Année universitaire 2011-2012 Structure du cours C1 C2 C3 au VHDL aux langages d'assemblage pour les ISA x86 et MIPS Conventions pour les appels

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

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

Shellcodes sous Linux dans les processeurs de 32 bits x86

Shellcodes sous Linux dans les processeurs de 32 bits x86 Shellcodes sous Linux dans les processeurs de 32 bits x86 بسم الله الرحمان الرحيم و الصلة و السلم على سيدنا محمد و آله و صحبه paper par: opt!x hacker(aidi youssef) optix@9.cn sommaire: 0x01:présentation

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

Programmation - Introduction

Programmation - Introduction Programmation - Introduction Objectifs : Apprendre à raisonner à partir d algorithmes. Traduire ces raisonnements en programmes informatiques. Outils : Langage de programmation Python. Editeur de texte

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

Processeur JAP. Le langage JAVA

Processeur JAP. Le langage JAVA Processeur JAP Ce document présente les dernières nouveautés concernant le processeur JAVA de la société AED. Il commence par un rappel sur les caractéristiques du processeur actuel, puis présente les

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

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

Initiation au langage d assemblage x86

Initiation au langage d assemblage x86 Initiation au langage d assemblage x86 Emmanuel Saracco Easter-eggs.com esaracco@easter-eggs.com esaracco@free.fr Initiation au langage d assemblage x86 par Emmanuel Saracco Copyright 2002, 2003, 2004

Plus en détail

Vers un outil d analyse de l empreinte mémoire d un code de calcul scientifique.

Vers un outil d analyse de l empreinte mémoire d un code de calcul scientifique. Vers un outil d analyse de l empreinte mémoire d un code de calcul scientifique. Ameziane NAIT ABDELAZIZ Département informatique, filière PRCD Maître de stage : Bruno LATHUILIERE Tuteur : Brice GOGLIN

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

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Systèmes de fichiers. Didier Verna

Systèmes de fichiers. Didier Verna 1/23 de fichiers didier@lrde.epita.fr http://www.lrde.epita.fr/ didier 2/23 Table des matières 1 2 Structure des fichiers 3 Structure des répertoires 4 Protection et sécurité 4/23 Répondre aux problèmes

Plus en détail

Programmation en assembleur

Programmation en assembleur Programmation en assembleur Architecture des Ordinateurs Module M14 Semestre 4 Printemps 2008 Coordinateur du module M14: Younès EL Amrani Formats d'opérandes en assembleur IA32 Modes d'adressage Type

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

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

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Controle de haut niveau Concurrence et parallélisme

Controle de haut niveau Concurrence et parallélisme Controle de haut niveau Concurrence et parallélisme Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2012/2013 Semaine 5 Exceptions Exceptions Deux visions des

Plus en détail

Obfuscation, la bête noir des reversers

Obfuscation, la bête noir des reversers Obfuscation, la bête noir des reversers Squallsurf Decembre 2008 Sous licence Creative Commons CC-BY-SA Contents 1 Introduction 2 2 Le polymorphisme, ou le chiffrement par l aléatoire 3 2.1 Introduction

Plus en détail

Bus de terrain. Thèmes abordés 25.03.2015

Bus de terrain. Thèmes abordés 25.03.2015 Bus de terrain Un protocole répandu et facile à implémenter 1 Thèmes abordés Présentation Historique caractéristique de MODBUS MODBUS Implantation dans le marché Exemples d appareils, exemples de logiciels

Plus en détail

Architecture de Processeur

Architecture de Processeur Mise à jour: Février 2012 Architecture et Programmation [Archi/Lycée] Architecture logicielle Applications 2 Nicolas Bredèche Maître de Conférences Université Paris-Sud bredeche@lri.fr Ressources bibliographiques

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs (2 ème partie : assembleur 80x86) Vincent Vidal IUT Lens Architecture des ordinateurs p. 1 Organisation Durée : 8 semaines. Cours 1h, TP 3h Intervenants TP : Coste, Loukil,

Plus en détail

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu Travaux d études et de recherches Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu Étudiant : Luc Michel Encadrants : Frédéric Pétrot Nicolas Fournel 23 mai 2010 TABLE DES MATIÈRES

Plus en détail

Analyse de programme

Analyse de programme Analyse de programme À quoi ça sert? Comment ça marche? Bertrand Jeannet et Alain Girault INRIA Rhône-Alpes 25 janvier 2012 A. Girault et B. Jeannet (INRIA) Analyse de programme 25 janvier 2012 1 / 41

Plus en détail

Projet 1 ENS Lyon L3IF

Projet 1 ENS Lyon L3IF Projet 1 ENS Lyon L3IF Génération de code Sébastien Briais 8 janvier 2008 Dans cette partie, vous allez devoir implémenter le générateur de code pour l émulateur DLX risc-emu. À rendre pour le 18 janvier

Plus en détail

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155) Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155) F. Pellegrini Université Bordeaux 1 Ce document est copiable et distribuable librement et gratuitement à

Plus en détail