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

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

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

Transcription

1 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

2 . Gazet, Y. Guillot Désobfuscation automatique de binaires 2/27 Plan (s) 1 (s) 2 3

3 Point de départ (s) Nécessité d automatisation Nous avons déjà : Processeur filtrant Parcours du graphe de contrôle (CFG) Application de règles de réécriture Modification à la volée du CFG Analyse manuelle du code obfusqué Recherche manuelle de motifs Pénible Peu générique Éventuellement inefficace : ex résistance au polymorphisme. Gazet, Y. Guillot Désobfuscation automatique de binaires 3/27

4 Nouvelle approche (s) Besoins Conservation de la sémantique Réécriture du code dans une forme plus simple Élimination du code mort etc. Les compilateurs le font déjà : l optimisation Notre critère d optimisation : la concision du code. Gazet, Y. Guillot Désobfuscation automatique de binaires 4/27

5 Présentation de la cible (s) La cible Une protection à base de virtualisation Massivement obfusquée (difficulté d analyse + polymorphisme) Approche proposée Greffe d un module d optimisation sur le module du parcours de graphes. Gazet, Y. Guillot Désobfuscation automatique de binaires 5/27

6 . Gazet, Y. Guillot Désobfuscation automatique de binaires 6/27 Constant propagation (s) c f h mov al, 12h 67h mov c l, 46h 69h xor c l, a l c f h mov al, 12h 67h mov c l, 46h 69h xor c l, 12h Fig.: Propagation de 12h à travers al.

7 . Gazet, Y. Guillot Désobfuscation automatique de binaires 7/27 Constant folding (s) c f h mov al, 12h 67h mov c l, 46h 69h xor c l, 12h c f h mov al, 67h mov c l, 12h 54h Fig.: Réduction de cl.

8 Operation folding (s) 4 f h add al, 7f h 51h add al, b l 53h add al, 70h 4 f h add al, 11h 51h add al, b l Fig.: Réduction de l opération add.. Gazet, Y. Guillot Désobfuscation automatique de binaires 8/27

9 . Gazet, Y. Guillot Désobfuscation automatique de binaires 9/27 Démo (s) Optimisation d un handler

10 . Gazet, Y. Guillot Désobfuscation automatique de binaires 10/27 Analyse sémantique des handlers (s) Méthode code binding de l objet disassembler Exemple de handler optimisé l o d s d x o r eax, ebx add eax, 859 f c f a e h sub ebx, eax push eax Sémantique (binding) dword p t r [ esp ] := ( dword p t r [ e s i ] ˆ ebx )+859 f c f a e h eax := ( dword p t r [ e s i ] ˆ ebx )+859 f c f a e h ebx := ebx+ (dword p t r [ e s i ] ˆ ebx ) 859 f c f a e h e s i := e s i +4 esp := esp 4

11 Au commencement (s) 2ème projection de Futamura Étant donnnés deux langages L a et L b, il est possible de trouver un compilateur de L b vers L a, si on connaît un interpréteur de L b écrit en L a Comment?. Gazet, Y. Guillot Désobfuscation automatique de binaires 11/27

12 . Gazet, Y. Guillot Désobfuscation automatique de binaires 12/27 Du statique au (presque) dynamique (s) Binding contextualisé : dword p t r [ esp ] := 0 c h eax := 0 c h ebx := 4000 f d 8 c h e s i := c2h esp := esp 4 Assembleur généré : push 0c h Suivi du flot d exécution du bytecode

13 . Gazet, Y. Guillot Désobfuscation automatique de binaires 13/27 Démo (s) Exécution symbolique et génération assembleur

14 Interprétation du résultat (s) L intégralité du bytecode a été compilée en asm Ia32 natif Des références au contexte de l interpréteur Proche d un automate à pile module d optimisation + abstraction. Gazet, Y. Guillot Désobfuscation automatique de binaires 14/27

15 Injection d abstraction (s) Extension du processeur I a 3 2 : : Reg. i t o s [ 3 2 ]. c o n c a t ( %w[ v i r t e a x ] ) I a 3 2 : : Reg. i t o s [ 1 6 ]. c o n c a t ( %w[ v i r t a x ] ) I a 3 2 : : Reg. i t o s [ 8 ]. c o n c a t ( %w[ v i r t a l ] ) I a 3 2 : : Reg. s t o i. c l e a r I a 3 2 : : Reg. i t o s. each { sz, hh hh. e a c h w i t h i n d e x { r, i I a 3 2 : : Reg. s t o i [ r ] = [ i, s z ] } } I a 3 2 : : Reg : : Sym. r e p l a c e I a 3 2 : : Reg. i t o s [ 3 2 ]. map { s s. to sym }. Gazet, Y. Guillot Désobfuscation automatique de binaires 15/27

16 . Gazet, Y. Guillot Désobfuscation automatique de binaires 16/27 Démo (s) Chunk optimisé avec registres virtuels

17 Phase finale (s) Injections des registres virtuels Optimisation Expression du code en registres virtuels uniquement Registres virtuels remappés sur les registres natifs Compilation et édition des liens. Gazet, Y. Guillot Désobfuscation automatique de binaires 17/27

18 . Gazet, Y. Guillot Désobfuscation automatique de binaires 18/27 Démo (s) Code dévirtualisé, mappé dans le binaire original

19 (s) 1/2 (s) Méthodes d optimisation (règles de réécriture) Très efficaces Implementation limitée localité des optimisations manque d une représentation intermédiaire inadaptée aux obfuscations du flot de contrôle L évaluation partielle ou spécialisation Pré-calcul de tous les éléments statiques : Mouvements de données dans le code obfusqué Application de l interpréteur au bytecode Approche générique Relativement coûteux en temps de calcul. Gazet, Y. Guillot Désobfuscation automatique de binaires 19/27

20 (s) 2/2 (s) Intégration et réutilisation du désobfuscateur Le code actuel est à l état de prototype En cours d intégration au framework sous forme d un plugin propre Utilisable sur tout code x86, avec des parties cross-platforme. Gazet, Y. Guillot Désobfuscation automatique de binaires 20/27

21 . Gazet, Y. Guillot Désobfuscation automatique de binaires 21/27 Plan 1 2 3

22 . Gazet, Y. Guillot Désobfuscation automatique de binaires 22/27 Interface arch-spécifique réduite Meilleure expressivité du code Représentation plus simple des boucles Sémantique plus simple à manipuler

23 : limitations. Gazet, Y. Guillot Désobfuscation automatique de binaires 23/27 Des constructions assembleur sont difficiles à transcrire en C rol, ror jmp eax Nécessité que le code soit formatté correctement Fonction/sous-fonctions ABIs/Conventions d appels On peut imaginer des moyens de s en accomoder

24 . Gazet, Y. Guillot Désobfuscation automatique de binaires 24/27 Démo

25 . Gazet, Y. Guillot Désobfuscation automatique de binaires 25/27 Plan 1 2 3

26 N oubliez pas. Gazet, Y. Guillot Désobfuscation automatique de binaires 26/27 Metasm https://metasm.cr0.org/ Blog

27 . Gazet, Y. Guillot Désobfuscation automatique de binaires 27/27 Merci pour votre attention. Des questions?

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

Déprotection semi-automatique de binaire

Dé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étail

Déprotection semi-automatique de binaire

Déprotection semi-automatique de binaire Déprotection semi-automatique de binaire Yoann Guillot & 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é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

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

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

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

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

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

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

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

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

Virtualisation Logicielle

Virtualisation Logicielle Virtualisation Virtualisation Logicielle Gaël Thomas gael.thomas@lip6.fr Principe d un système d exploitation Unifier l accès au matériel Diminuer le travail de développement des applications Couche d

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

É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

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

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

QUELQUES CONCEPTS INTRODUCTIFS

QUELQUES CONCEPTS INTRODUCTIFS ESIEE Unité d'informatique IN101 Albin Morelle (et Denis Bureau) QUELQUES CONCEPTS INTRODUCTIFS 1- ARCHITECTURE ET FONCTIONNEMENT D UN ORDINATEUR Processeur Mémoire centrale Clavier Unité d échange BUS

Plus en détail

Compilation. Introduction à la compilation. Termes Phases d'un compilateur Importance des grammaires Méthodes d'analyse. Termes. Termes.

Compilation. Introduction à la compilation. Termes Phases d'un compilateur Importance des grammaires Méthodes d'analyse. Termes. Termes. Compilation Enseignants : Stéphane Talbot Miguel Tomasena Volume horaire : 10.5 C / 12 TD / 12 TP langage source Traduction langage cible Contenu : Introduction à la compilation Analyse Lexicale Analyse

Plus en détail

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Modularité GCC : 4 millions de lignes de code Noyau

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

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

É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

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

Le Projet BINSEC. Automatiser l analyse de sécurité au niveau binaire. Airbus group, CEA, IRISA, LORIA, Uni. Joseph Fourier. p. Le Projet BINSEC Automatiser l analyse de sécurité au niveau binaire Airbus group, CEA, IRISA, LORIA, Uni. Joseph Fourier p. 1/22 Introduction Panorama de BINSEC Cadre de travail Projet ANR INS, appel

Plus en détail

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation Java EE Java EE, c est quoi? Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards

Plus en détail

Chapitre 2 : Abstraction et Virtualisation

Chapitre 2 : Abstraction et Virtualisation Virtualisation et Cloud Computing Chapitre 2 : Abstraction et Virtualisation Objectifs Présenter la notion de niveaux d abstraction séparés par des interfaces bien définies Description des avantages et

Plus en détail

ERESI : 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 : 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étail

AVERTISSEMENT. D'autre part, toute contrefaçon, plagiat, reproduction encourt une poursuite pénale. LIENS

AVERTISSEMENT. 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étail

Chapitre 1 Introduction aux compilateurs (et aux interpréteurs)

Chapitre 1 Introduction aux compilateurs (et aux interpréteurs) Chapitre 1 Introduction aux compilateurs (et aux interpréteurs) Jean Privat Université du Québec à Montréal INF5000 Théorie et construction des compilateurs Automne 2013 Jean Privat (UQAM) 01 Introduction

Plus en détail

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96 Assembleur i8086 Philippe Preux IUT Informatique du Littoral Année universitaire 95 96 1 Avertissement Ce document décrit le langage d assemblage étudié et utilisé dans le cadre des TP d architecture.

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

Notions de langage machine

Notions de langage machine Notions de langage machine 18 décembre 2009 Rappels et introduction Architecture de Van Neumann : Processeur = UC + UAL Mémoire interne au processeur = les registres (soit seulement l accumulateur, soit

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

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Assembleur. 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é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

Vérification formelle de la plate-forme Java Card

Vé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étail

Portage et optimisation d applications de traitement d images sur architecture Kalray Mppa-Manycore Journées de la Compilation

Portage et optimisation d applications de traitement d images sur architecture Kalray Mppa-Manycore Journées de la Compilation Portage et optimisation d applications traitement d images sur architecture Kalray Mppa-Manycore Journées la Compilation Pierre Guillou Centre recherche en informatique Mines ParisTech 4 décembre 2013

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

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion Vérification de logiciels par analyse statique Contexte et motivations Les techniques envisagées Evolution des processus Conclusion Contexte et motivations Specification Design architecture Revues and

Plus en détail

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge

Introduction. Les performances d une machine sont liées au: 1. nombre d instructions. 2. temps de cycle horloge Introduction Les performances d une machine sont liées au: 1. nombre d instructions 2. temps de cycle horloge 3. nombre de cycle horloge par instructions. C est: le compilateur et l architecture du jeu

Plus en détail

Table des matières. Avant-propos... Préface... XIII. Remerciements...

Table 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étail

Immersive and Collaborative Data Visualization Using Virtual Reality Platforms

Immersive and Collaborative Data Visualization Using Virtual Reality Platforms Immersive and Collaborative Data Visualization Using Virtual Reality Platforms 2014 IEEE International Conference on Big Data http://arxiv.org/pdf/1410.7670 Cet article a été soumis très récemment et propose

Plus en détail

Architecture des Ordinateurs et Systèmes d Exploitation

Architecture des Ordinateurs et Systèmes d Exploitation Architecture des Ordinateurs et Systèmes d Exploitation Cours n 5 Le langage assembleur (2): Pile, Procédures. Les Interruptions 3ème année L assembleur 8086 : la pile = structure de «rangement» de données

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

Playing with ptrace() for fun and profit

Playing with ptrace() for fun and profit sous GNU/Linux nicolas.bareil@eads.net EADS Corporate Research Center - DCR/STI/C SSI Lab SSTIC 2006 Il était une fois... Sous UNIX, ptrace() est le seul moyen de debuggage. User-space, Interface rigide

Plus en détail

Profiling. École d Automne Informatique Scientifique 3 Décembre 2008. Profiling. Romaric DAVID. Plan. Introduction. Profiling

Profiling. École d Automne Informatique Scientifique 3 Décembre 2008. Profiling. Romaric DAVID. Plan. Introduction. Profiling École d Automne Informatique Scientifique 3 Décembre 2008 s de programmes Objectifs du cours Ce cours vous présentera les outils d analyse de vos programmes. En particulier, vous pourrez : Traquer des

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

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

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 AIDE À L EXPLOITATION

D AIDE À L EXPLOITATION SYSTÈMES D AIDE À L EXPLOITATION P.MARSAUD Juin 2011 UN PEU DE VOCABULAIRE.. L Informatique Industrielle à développé au fil des années de son existence son propre vocabulaire issu de ses métiers et fonctions

Plus en détail

Formula Negator, Outil de négation de formule.

Formula 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étail

LES TONTONS FLEXEURS

LES TONTONS FLEXEURS LES TONTONS FLEXEURS LES TONTONS FLEXEURS Engagez vous qu ils disaient http://groups.adobe.com/group/504 LES TONTONS FLEXEURS Et choisissez le menu de notre prochain rendez-vous - Workflow Designer Flash

Plus en détail

Vulnérabilité Microsoft Windows GDI (MS07-017) De l analyse à l exploitation

Vulnérabilité Microsoft Windows GDI (MS07-017) De l analyse à l exploitation Vulnérabilité Microsoft Windows GDI (MS07-017) De l analyse à l exploitation 1 Introduction Un process devant utiliser des objets ou des fonctions liés à l'affichage a à sa disposition une bibliothèque

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

Cours 1 : La compilation

Cours 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étail

Les rootkits navigateurs

Les rootkits navigateurs Sogeti/ESEC Les rootkits navigateurs 1/52 Les rootkits navigateurs Christophe Devaux - christophe.devaux@sogeti.com Julien Lenoir - julien.lenoir@sogeti.com Sogeti ESEC Sogeti/ESEC Les rootkits navigateurs

Plus en détail

EXCEL & XLCubed 10 raisons d en faire l assise de votre Managed Self-Service BI

EXCEL & XLCubed 10 raisons d en faire l assise de votre Managed Self-Service BI EXCEL & XLCubed 10 raisons d en faire l assise de votre Managed Self-Service BI Préambule Excel au centre de la solution Si vous manipulez des rapports et tableaux de bord en somme des données - vous connaissez

Plus en détail

Architecture des ordinateurs

Architecture 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étail

Recompilation dynamique de codes binaires hostiles

Recompilation dynamique de codes binaires hostiles Recompilation dynamique de codes binaires hostiles Sébastien Josse DGA Maîtrise de l Information Résumé Les malware sont de plus en plus difficiles à analyser, par utilisation des outils conventionnels

Plus en détail

III - PROGRAMMATION EN ASSEMBLEUR

III - PROGRAMMATION EN ASSEMBLEUR III - PROGRAMMATION EN ASSEMBLEUR 3.1 Introduction à la programmation en assembleur Pour programmer un ordinateur on utilise généralement des langages dits évolués ou de haut niveau : C, C++, Java, Basic,

Plus en détail

Initiation à la programmation. L'essentiel de la programmation en shell, perl, php et C++

Initiation à la programmation. L'essentiel de la programmation en shell, perl, php et C++ Initiation à la programmation L'essentiel de la programmation en shell, perl, php et C++ Communiquer avec sa machine Les langages de programmation sont d'abord destinés aux humains et non aux machines.

Plus en détail

CM2 L architecture MIPS32

CM2 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étail

Projet TE 334, nouvel exemple n 7E

Projet TE 334, nouvel exemple n 7E Annex 24, page 1 Projet TE 334, nouvel exemple n 7E Niveau/Catégories CL 2a, 2a1, 2b4, 2c AL 2a, 2a1, 2b4, 2c Documents Il s agit d un exemple artificiel. Brève description de l exemple artificiel Le système

Plus en détail

Initiation à la sécurité

Initiation à 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étail

Machines virtuelles Cours 1 : Introduction

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

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Croisière au cœur d un OS Étape 6 : Multitâche et changement de contexte

Croisière au cœur d un OS Étape 6 : Multitâche et changement de contexte Croisière au cœur d un OS Étape 6 : Multitâche et changement de contexte Résumé Allocateur de pages physiques 4 Pagination 4Go Au cours de cet article et du suivant, nous vous proposons la mise en place

Plus en détail

Java - la plateforme

Java - la plateforme Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)

Plus en détail

DECLARATION DES PERFORMANCES N 1

DECLARATION DES PERFORMANCES N 1 DECLARATION DES PERFORMANCES N 1 Résistance mécanique C18 EN 1912 : 2012 + EN 338 :2009 DECLARATION DES PERFORMANCES N 2 Résistance mécanique C24 EN 1912 : 2012 + EN 338 :2009 DECLARATION DES PERFORMANCES

Plus en détail

Gestion 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 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étail

Solution du challenge SSTIC 2013. Emilien Girault ANSSI/COSSI/DTO/BAI 06/06/13

Solution du challenge SSTIC 2013. Emilien Girault ANSSI/COSSI/DTO/BAI 06/06/13 Solution du challenge SSTIC 2013 Emilien Girault ANSSI/COSSI/DTO/BAI 06/06/13 Plan Analyse d une capture réseau Détermination des canaux cachés Déchiffrement de l archive Etude d un FPGA Déduction du jeu

Plus en détail

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants : GIF-3002 SMI et Architecture du microprocesseur Ce cours discute de l impact du design du microprocesseur sur le système entier. Il présente d abord l architecture du cœur ARM Cortex M3. Ensuite, le cours

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

Plus en détail

Les ordinateurs dispositifs électroniques fonctionnant sur la principe de création, transmission et conversion d impulses électriques

Les ordinateurs dispositifs électroniques fonctionnant sur la principe de création, transmission et conversion d impulses électriques Les ordinateurs dispositifs électroniques fonctionnant sur la principe de création, transmission et conversion d impulses électriques Les informations traitées par l ordinateur (nombres, instructions,

Plus en détail

avec nos solutions spécialisées pour la microfinance et ses institutions coopératives Big Data

avec nos solutions spécialisées pour la microfinance et ses institutions coopératives Big Data avec nos solutions spécialisées pour la microfinance et ses institutions coopératives Big Data Historique de Big data Jusqu à l avènement d Internet et surtout du Web 2.0 il n y avait pas tant de données

Plus en détail

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

DU 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étail

Triton : Framework d exécution concolique et d analyses en runtime

Triton : 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étail

Versus Etude Technologique

Versus Etude Technologique VS Versus Etude Technologique 1 VS Contents Introduction... 3 Présentation des technologies... 3 Phonegap... 3... 3 Pour quels besoins?... 4 Comment ça fonctionne? Les models... 4 Phonegap... 5... 6 Comparatif...

Plus en détail

CH.3 SYSTÈMES D'EXPLOITATION

CH.3 SYSTÈMES D'EXPLOITATION CH.3 SYSTÈMES D'EXPLOITATION 3.1 Un historique 3.2 Une vue générale 3.3 Les principaux aspects Info S4 ch3 1 3.1 Un historique Quatre générations. Préhistoire 1944 1950 ENIAC (1944) militaire : 20000 tubes,

Plus en détail

Code Intermédiaire. Linéarisation Canonisation.

Code Intermédiaire. Linéarisation Canonisation. 2 2 2 s 2 2 s Code Intermédiaire Génération de Code Linéarisation Canonisation. Didier Rémy Octobre 2000 http://cristal.inria.fr/ remy/poly/compil/3/ http://w3.edu.polytechnique.fr/profs/informatique/didier.remy/compil/3/

Plus en détail

Le contournement de produits de sécurité

Le contournement de produits de sécurité Le contournement de produits de sécurité Jean-Baptiste Bédrune Sogeti / ESEC jean-baptiste.bedrune(at)sogeti.com Yoann Guillot Sogeti / ESEC yoann.guillot(at)sogeti.com Roadmap J.B. Bédrune & Y. Guillot

Plus en détail

Méthodologie de programmation en assembleur. Philippe Preux

Méthodologie de programmation en assembleur. Philippe Preux Méthodologie de programmation en assembleur Philippe Preux 24 novembre 1997 Table des matières 1 Introduction 3 2 Méthodologie 4 2.1 Méthodologie............................................. 4 2.2 Aperçu

Plus en détail

Collaborer lors du développement d'un projet informatique

Collaborer lors du développement d'un projet informatique Collaborer lors du développement d'un projet informatique Georges Gouriten georges.gouriten@telecom-paristech.fr PESTO Web Mining 10 octobre 2012 Dans le cadre du PESTO Plus généralement Organisation

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

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

Audit d applications.net Le cas Microsoft OCS 2007 (R1 et R2)

Audit d applications.net Le cas Microsoft OCS 2007 (R1 et R2) Audit d applications.net Le cas Microsoft OCS 2007 (R1 et R2) SSTIC 2010 Nicolas RUFF EADS Innovation Works nicolas.ruff (à) eads.net Préambule Qui suis-je? Un «chercheur» en sécurité Audit de systèmes,

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception 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étail

Architecture Constellio

Architecture Constellio Architecture Constellio Date : 12 novembre 2013 Version 3.0 Contact : Nicolas Bélisle nicolas.belisle@doculibre.com 5146555185 1 Table des matières Table des matières... 2 Présentation générale... 4 Couche

Plus en détail

L enseignement de méthodes agiles dans un contexte d apprentissage actif

L enseignement de méthodes agiles dans un contexte d apprentissage actif L enseignement de méthodes agiles dans un contexte d apprentissage actif Ruben González-Rubio Eugène Morin Balkrishna Sharma Gukhool Groupe ɛ X it C1-3019 Département de génie électrique et de génie informatique

Plus en détail

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

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

Plus en détail

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java Université Catholique de Louvain Faculté des Sciences Appliquées Département d Ingénierie Informatique Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

Plus en détail

Utilisation du Cloud StratusLab dans le cadre d application astroparticule à l APC

Utilisation du Cloud StratusLab dans le cadre d application astroparticule à l APC dans le cadre d application astroparticule à l Cécile Cavet & Michèle Detournay s Centre François Arago (FACe), Laboratoire, Université Paris Diderot LabEx UnivEarthS 28 Mai 2013 Plan 1 2 3 4 s s s Origine

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

Le cloud computing au service des applications cartographiques à haute disponibilité

Le cloud computing au service des applications cartographiques à haute disponibilité Le cloud computing au service des applications cartographiques à haute disponibilité Claude Philipona Les Rencontres de SIG-la-Lettre, Mai 2010 camptocamp SA / www.camptocamp.com / info@camptocamp.com

Plus en détail

Etude technologique sur Corss-platform Mobil

Etude technologique sur Corss-platform Mobil Etude technologique sur Corss-platform Mobil ADAPTION DES INTERFACES À L ENVIRONNEMENT Date : 11/11/2014 Student : Lifeng TAO I. Introduction RhoMobile RhoMobile est le conteneur de l'application mobile

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 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étail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Plus en détail

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java RN2-Programmation Orientée Objet - JAVA CH 1 à la POO et Java Licence Professionnelle 2006 Agnès Guerraz INRIA Rhône-Alpes agnes.guerraz@inria.fr LP UPMF, Grenoble Septembre 2006 Ce cours reprend en grande

Plus en détail