Le Projet BINSEC. Automatiser l analyse de sécurité au niveau binaire. Airbus group, CEA, IRISA, LORIA, Uni. Joseph Fourier. p.
|
|
- Madeleine Bruneau
- il y a 8 ans
- Total affichages :
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 > := malloc(@[esp + 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
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étailLogiciel 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étailAnalyse 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étailProgrammation 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étailGrandes 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étailArchitecture 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étail1. 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étailStructure 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étailDé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étailConventions 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étailQualité 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étailRé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étailBrefs 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étailIntroduction 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étailPlan 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étailGlobalScape 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étailArchitecture 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étailTriton : Framework d exécution concolique et d analyses en runtime
Triton : Framework d exécution concolique et d analyses en runtime Jonathan Salwan et Florent Saudel jsalwan@quarkslab.com florent.saudel@etu.u-bordeaux.fr Quarkslab, Université de Bordeaux Résumé Triton
Plus en détailEPREUVE 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étailLaboratoire de Haute Sécurité. Télescope réseau et sécurité des réseaux
Laboratoire de Haute Sécurité Télescope réseau et sécurité des réseaux Frédéric Beck (SED) & Olivier Festor (Madynes) CLUSIR Est - 15 Décembre 2011 Inria : Institut de recherche en sciences du numérique
Plus en détailCompilation (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étailGestion mémoire et Représentation intermédiaire
Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,
Plus en détailFormula Negator, Outil de négation de formule.
Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente
Plus en détailTraduction 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étailUE 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étailCours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Plus en détailRTDS G3. Emmanuel Gaudin emmanuel.gaudin@pragmadev.com
RTDS G3 Emmanuel Gaudin emmanuel.gaudin@pragmadev.com PragmaDev Dédiée au développement d un AGL pour le développement des applications temps réel et embarquées. Réseau de partenaires: Formations, Service,
Plus en détailSYSTÈME DE GESTION DE FICHIERS
SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S
Plus en détailGenDbg : 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étailIntroduction à 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étailConditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.
Proposition de stage de BAC+4 ou BAC+5 Pro ou Recherche Etude comparative des outils de vérification d'algorithmes parallèles Logiciels (LSL), localisé à Palaiseau (Essonne), développe les outils d'aide
Plus en détailIFT2245 - Systèmes d exploitation - TP n 1-20%
IFT2245 - Systèmes d exploitation - TP n 1-20% DIRO - Université de Montréal Nicolas Rous et Dorian Gomez Disponible : 14/02/2013 - Remise : 28/03/2013 au début de la démo LISEZ TOUT LE DOCUMENT AVANT
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailDépartement informatique de l université d Angers
Département informatique de l université d Angers Amélioration d'un logiciel d'émulation du fonctionnement d'un microprocesseur x8 6 SCHAEFFER Florian ROUSSEAUX Billy L3 Informatique Responsable du projet:
Plus en détailUE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Plus en détailÉ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étailConcept de machine virtuelle
Concept de machine virtuelle Chap. 5: Machine virtuelle Alain Sandoz Semestre été 2007 1 Introduction: Java Virtual Machine Machine Virtuelle Java: qu est-ce que c est? c est la spécification d une machine
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailAVERTISSEMENT. D'autre part, toute contrefaçon, plagiat, reproduction encourt une poursuite pénale. LIENS
AVERTISSEMENT Ce document est le fruit d'un long travail approuvé par le jury de soutenance et mis à disposition de l'ensemble de la communauté universitaire élargie. Il est soumis à la propriété intellectuelle
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détailOCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Plus en détailDG-ADAJ: Une plateforme Desktop Grid
DG-ADAJ: Une plateforme pour Desktop Grid Olejnik Richard, Bernard Toursel Université des Sciences et Technologies de Lille Laboratoire d Informatique Fondamentale de Lille (LIFL UMR CNRS 8022) Bât M3
Plus en détailSurveillance et maintenance prédictive : évaluation de la latence de fautes. Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG)
Surveillance et maintenance prédictive : évaluation de la latence de fautes Zineb SIMEU-ABAZI Univ. Joseph Fourier, LAG) SURVEILLANCE Analyser une situation et fournir des indicateurs! Détection de symptômes!
Plus en détailProgrammation système I Les entrées/sorties
Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les
Plus en détailSYSTÈME DE GESTION DE FICHIERS SGF - DISQUE
SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur
Plus en détailDéprotection semi-automatique de binaire
Déprotection semi-automatique de binaire Yoann Guillot et Alexandre Gazet Sogeti - ESEC Résumé Que ce soit sur des binaires malicieux ou non, les protections dont le but est de freiner la rétro-ingénierie
Plus en détailAttaques applicatives
Attaques applicatives Attaques applicatives Exploitation d une mauvaise programmation des applications Ne touche pas le serveur lui-même mais son utilisation/ configuration Surtout populaire pour les sites
Plus en détailConception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique
Plus en détailMachines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40
Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut
Plus en détailIntroduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Plus en détailExpression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
Plus en détailLa 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étailIntroduction 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étailLes techniques de protection du logiciel
Travail d'études Licence Informatique 2003-2004 Les techniques de protection du logiciel Julien BURLE Térence SCALABRE Encadré par Mr Pierre CRESCENZO Travail d'étude: Les techniques de protection du logiciel
Plus en détailAnalyse de Programmes Malveillants par Abstraction de Comportements
Analyse de Programmes Malveillants par Abstraction de Comportements Philippe Beaucamps To cite this version: Philippe Beaucamps. Analyse de Programmes Malveillants par Abstraction de Comportements. Logic
Plus en détailERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team http://www.eresi-project.org
ERESI : une plate-forme d'analyse binaire au niveau noyau The ERESI team http://www.eresi-project.org ERESI: quelques rappels 7 années de développement Plusieurs contributeurs 5 logiciels, 14 bibliothèques
Plus en détailInitiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
Plus en détailTransmission d informations sur le réseau électrique
Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en
Plus en détailopenarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de
openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de itemis France 2009 All rights reserved 1 Itemis en quelques mots Spécialisé dans l
Plus en détailAssembleur. Faculté I&C, André Maurer, Claude Petitpierre
Assembleur Faculté I&C, André Maurer, Claude Petitpierre INTRODUCTION Logiciel utilisé Faculté I&C, André Maurer, Claude Petitpierre MEMOIRE Mémoire Faculté I&C, André Maurer, Claude Petitpierre Mémoire
Plus en détailCM2 L architecture MIPS32
CM2 L architecture MIPS32 Olivier Marchetti (CM-TD-TP) Alexandre Brière (TD-TP) Laboratoire d informatique de Paris 6 Pôle SoC UPMC Année 2014-2015 Instructions MIPS Contrôle Données en MIPS E/S en MIPS
Plus en détailDerrière toi Une machine virtuelle!
Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936
Plus en détailDébogage de code* Mardi 13 décembre 2011. Romaric DAVID david@unistra.fr Université de Strasbourg - Direction Informatique Pôle HPC. hpc.unistra.
Débogage de code* Mardi 13 décembre 2011 Romaric DAVID david@unistra.fr Université de Strasbourg - Direction Informatique Pôle HPC *ou l'art de chercher la petite bête Plan Introduction Débogage, quelques
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détail4. Initiation à l'assembleur
4. Initiation à l'assembleur 142 143 1. Introduction Pour mieux comprendre la structure interne d'un ordinateur, nous aborderons la langage d'assemblage d'un processeur contemporain, le Pentium III d'intel.
Plus en détailKoinKoin. Système d exploitation à architecture basée micro-noyau. Antoine Castaing Nicolas Clermont Damien Laniel
KoinKoin Système d exploitation à architecture basée micro-noyau Antoine Castaing Nicolas Clermont Damien Laniel 30 juillet 2006 Free Documentation License Copyright (c) 2005 Nicolas Clermont / Antoine
Plus en détailDU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION
145 NOTION DE PROGRAMMATION 1/ Complétons notre microprocesseur Nous avons, dans les leçons précédentes décrit un microprocesseur théorique, cependant il s inspire du 6800, premier microprocesseur conçu
Plus en détailGénie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
Plus en détailAnalyse statique de code dans un cycle de développement Web Retour d'expérience
Analyse statique de code dans un cycle de développement Web Retour d'expérience Laurent Butti et Olivier Moretti Orange France prenom.nom@orange.com Agenda Introduction Notre contexte L (in)sécurité des
Plus en détailArchitecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Plus en détailCours de Système : Gestion de Fichiers
Cours de Système : Gestion de Fichiers Bertrand Le cun et Emmanuel Hyon bertrand.le cun{at}u-paris10.fr et Emmanuel.Hyon{at}u-paris10.fr Université Paris Ouest Nanterre 25 octobre 2011 B.L.C. & E.H. (UPO)
Plus en détailReprésentation des Nombres
Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...
Plus en détailInitiation à la sécurité
Initiation à la sécurité UE Systèmes informatiques 12 septembre 2011 Julien Raeis - http://raeis.iiens.net/ Présentation Ingénieur IIE 2005 Carrière dans la sécurité des systèmes Consultant en sécurité
Plus en détailGestion hybride de la mémoire dynamique dans les systèmes Java temps-réel
Gestion hybride de la mémoire dynamique dans les systèmes Java temps-réel Nicolas Berthier Stage de Magistère M encadré par Christophe Rippert et Guillaume Salagnac Laboratoire Vérimag Septembre 007 Résumé
Plus en détailINFO-F-404 : Techniques avancées de systèmes d exploitation
Nikita Veshchikov e-mail : nikita.veshchikov@ulb.ac.be téléphone : 02/650.58.56 bureau : 2N8.213 URL : http://student.ulb.ac.be/~nveshchi/ INFO-F-404 : Techniques avancées de systèmes d exploitation Table
Plus en détail1 Description générale de VISFIELD
Guide d utilisation du logiciel VISFIELD Yann FRAIGNEAU LIMSI-CNRS, Bâtiment 508, BP 133 F-91403 Orsay cedex, France 11 décembre 2012 1 Description générale de VISFIELD VISFIELD est un programme écrit
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailUne bibliothèque de templates pour CUDA
Une bibliothèque de templates pour CUDA Sylvain Collange, Marc Daumas et David Defour Montpellier, 16 octobre 2008 Types de parallèlisme de données Données indépendantes n threads pour n jeux de données
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Plus en détailExécutif temps réel Pierre-Yves Duval (cppm)
Exécutif temps réel Pierre-Yves Duval (cppm) Ecole d informatique temps réel - La Londes les Maures 7-11 Octobre 2002 Plan Exécutif Tâches Evénements et synchronisation Partage de ressources Communications
Plus en détailTable des matières. Avant-propos... Préface... XIII. Remerciements...
Avant-propos... XI Préface... XIII Remerciements... XV Introduction... XVII Pourquoi faire un pentest?... XVII Pourquoi Metasploit?... XVII Un bref historique de Metasploit.... XVIII À propos de ce livre...
Plus en détailChap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
Plus en détailPerl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria.
Perl Console Votre compagnon pour développer en Perl Les Journées du Perl 2007 16, 17 novembre, Lyon Alexis Sukrieh Plan Pourquoi une console? Le modèle «Read-Eval-Print-Loop» Dépendances
Plus en détailLes attaques par corruption de mémoire Synopsis Mickael Deloison 22/10/2008
Les attaques par corruption de mémoire Synopsis Ce document traite des failles permettant des attaques par corruption de mémoire, les attaques par buffer overflow (dépassement de buffer) étant les plus
Plus en détailLinux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre 2010 http://www.loligrub.be
Linux et le Shell Francois BAYART Atelier du samedi 20 Novembre 2010 http://www.loligrub.be 1 Le «système» 2 FHS http://fr.wikipedia.org/wiki/filesystem_hierarchy_standard Filesystem Hierarchy Standard
Plus en détailVérification formelle de la plate-forme Java Card
Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations
Plus en détailLangage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes
Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition
Plus en détailCours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
Plus en détailAutomatisation de l administration système
Automatisation de l administration système Plan Problèmatique : trop de systèmes, trop de solutions Typage des solutions Puppet : gestion de configuration de systèmes Capistrano : déploiement d applications
Plus en détailIntroduction au Système d Exploitation Unix/Linux
1 iere partie: Système de Gestion de Fichier B. Jacob IC2/LIUM 17 septembre 2013 Plan 1 Notions de fichier 2 Notions de répertoire 3 Organisation des répertoires 4 Identification d un fichier dans l arborescence
Plus en détailPLAteforme d Observation de l InterNet (PLATON)
PLAteforme d Observation de l InterNet (PLATON) Observatoire de l Internet et de ses Usages Projet plate-forme Initiative soutenue par Inria dans le cadre du consortium Metroscope (http://www.metroscope.eu)
Plus en détailOS Réseaux et Programmation Système - C5
OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailPlan. Rappels sur Netflow v1 v8. Netflow v9. Collecteur UTC «IPFlow» Cisco IOS : Implémentation de Netflow IPv6
Netflow-IPv6 Plan Qu est-ce qu un flux principes de Netflow Rappels sur Netflow v1 v8 Netflow v9 Collecteur UTC «IPFlow» Cisco IOS : Implémentation de Netflow IPv6 2 Qu est-ce qu un flux principes de Netflow
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailSeance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.
Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece
Plus en détailMachines Virtuelles. et bazard autour. Rémi Forax
Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détail