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

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

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

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

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

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

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

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

MC-II1 - Cours n o 1 Langages de programmation Introduction à la POO

MC-II1 - Cours n o 1 Langages de programmation Introduction à la POO MC-II1 - Cours n o 1 Langages de programmation Introduction à la POO Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2012-2013 S. Kramm (IUT Rouen) MCII1 - Cours 1 2012-2013 1 / 36 Sommaire 1 Langages de

Plus en détail

Return Oriented Programming

Return Oriented Programming HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet GS Days 2010 Return Oriented Programming Jean-Baptiste Aviat

Plus en détail

É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

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

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

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

De l ordinateur au processus : rôle d un système

De l ordinateur au processus : rôle d un système De l ordinateur au processus : rôle d un système Introduction aux systèmes d exploitation Gaël Thomas Présentation du cours Contexte du cours : Introduire notre objet d étude : les systèmes d exploitation

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

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

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

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

Assembleur, Compilateur et Éditeur de Liens

Assembleur, Compilateur et Éditeur de Liens Assembleur, Compilateur et Éditeur de Liens Pierre de rosette GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Assembleur et compilateur Langage assembleur Langage compilé

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

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

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

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

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

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

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

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

Projet de Machines Virtuelles

Projet de Machines Virtuelles Projet de Machines Virtuelles Gabriel Kerneis Vendredi 11 mars 2011 1 Introduction Le but de ce sujet est d implémenter la MARS (Memory Array Redcode Simulator), une machine virtuelle utilisée dans le

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

Nouvelle technique d'injection de code

Nouvelle technique d'injection de code Nouvelle technique d'injection de code Damien CAUQUIL L'injection de code dans un processus est une technique connue depuis plusieurs années, et largement utilisée par de nombreux

Plus en détail

Les étapes et les outils de développement des programmes

Les étapes et les outils de développement des programmes Les étapes et les outils de développement des programmes L élaboration d un programme est un travail qui se fait en plusieurs étapes nécessitant divers outils que ce chapitre tente de décrire succinctement.

Plus en détail

I - Introduction à la compilation et à l interprétation

I - Introduction à la compilation et à l interprétation I - Introduction à la compilation et à l interprétation Étienne M. Gagnon et Jean Privat 2009 2013 UQAM Les langages de programmation permettent aux programmeurs d écrire leurs programmes avec une notation

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

Une backdoor chinoise en.net. Nicolas RUFF nicolas.ruff(à)eads.net

Une backdoor chinoise en.net. Nicolas RUFF nicolas.ruff(à)eads.net Une backdoor chinoise en.net Nicolas RUFF nicolas.ruff(à)eads.net Historique??? Attaques ciblées dans la nature 6 décembre 2011 Publication de l'avis de sécurité APSA11-04 http://www.adobe.com/support/security/advisories/apsa11-04.html

Plus en détail

Malwares Identification, analyse et éradication

Malwares Identification, analyse et éradication Identification d'un malware 1. Présentation des malwares par familles 7 1.1 Introduction 7 1.2 Backdoor 8 1.3 Ransomware 9 1.4 Voleur 10 1.5 Rootkit 10 2. Scénario d'infection 12 2.1 Introduction 12 2.2

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

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

FSAB 1402 - Suggestions de lecture

FSAB 1402 - Suggestions de lecture FSAB 1402 - Suggestions de lecture 2006 Concepts, techniques and models of computer programming Cours 1 - Intro Chapitre 1 (sections 1.1, 1.2, 1.3, pages 1-3) Introduction aux concepts de base Chapitre

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

Architecture matérielle et logicielle

Architecture matérielle et logicielle Architecture matérielle et logicielle Contents I Le Cours 2 1 Généralités 2 2 Micro-processeur 2 3 Mémoire 2 4 Performances 3 II TPs 3 1 Création d un exécutable : 3 2 Les bibliothèques 3 3 Codage de l

Plus en détail

Sommaire. Introduction à la compilation. Notion de compilation. Notion de compilation. Notion de compilation. Notion de compilation

Sommaire. Introduction à la compilation. Notion de compilation. Notion de compilation. Notion de compilation. Notion de compilation Introduction à la compilation A. DARGHAM Faculté des Sciences Oujda Sommaire Environnement d un compilateur Schéma global d un compilateur Caractéristiques d un bon compilateur Définition Un compilateur

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

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

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

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

É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

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

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

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

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

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

Structure en couches des systèmes informatiques

Structure en couches des systèmes informatiques Structure en couches des systèmes informatiques Vue simplifiée d un système informatique Ce que le simple utilisateur perçoit «à première vue» d un système informatique : Le boîtier (tour, desktop ou portable)

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

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

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

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

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation.

Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Mode d emploi pour la P-machine utilisée lors des TPs et des projets du cours INFO010 Théorie des langages et de la compilation. Sébastien COLLETTE et Gilles GEERAERTS 1 Introduction Ce document décrit

Plus en détail

Bogues ou piégeages des processeurs : quelles conséquences

Bogues ou piégeages des processeurs : quelles conséquences Bogues ou piégeages des processeurs : quelles conséquences sur la sécurité? Loïc Duflot DCSSI 51 bd. De la Tour Maubourg 75700 Paris Cedex 07 France Résumé Dans cet article, nous présentons les conséquences

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

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

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

Techniques d obfuscation de code : chiffrer du clair avec du clair

Techniques d obfuscation de code : chiffrer du clair avec du clair Techniques d obfuscation de code : chiffrer du clair avec du clair La plupart des infections informatiques (vers, virus, chevaux de Troie, etc.) utilisent désormais le chiffrement pour changer de peau.

Plus en détail

UTILISATION DU FRAMEWORK TRITON POUR L ANALYSE DE CODE OBFUSQUÉ

UTILISATION DU FRAMEWORK TRITON POUR L ANALYSE DE CODE OBFUSQUÉ UTILISATION DU FRAMEWORK TRITON POUR L ANALYSE DE CODE OBFUSQUÉ Jonathan Salwan (@JonathanSalwan) & Romain Thomas (@rh0main) Équipe Triton de Quarkslab mots-clés : ANALYSE BINAIRE DYNAMIQUE / EXÉCUTION

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

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

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

Plus en détail

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget Julien Forget Université Lille 1 École Polytechnique Universitaire de Lille Cité Scientifique 59655 Villeneuve d Ascq GIS 3 2011-2012 1 / 46 Rôle du gestionnaire de mémoire Le gestionnaire de mémoire a

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

Cours POO Programmation Orienté. 2ème Licence Informatique par Said Bachir Université de Ouargla

Cours POO Programmation Orienté. 2ème Licence Informatique par Said Bachir Université de Ouargla Cours POO Programmation Orienté Objet 2ème Licence Informatique par Said Bachir Université de Ouargla Plan de cours 1. Introduction à la Programmation Orienté Objet. 2. Les classes. 3. Héritage et polymorphisme.

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

ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes

ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes On utilise le jeu d instructions ARM. ARCHITECTURE DES ORDINATEURS Corrigé Examen Décembre 2011 3H Tous documents autorisés Les questions sont indépendantes PROGRAMMATION ASSEMBLEUR PREMIERE PARTIE Soit

Plus en détail

Chapitre I. Introduction à la programmation

Chapitre I. Introduction à la programmation Chapitre I Introduction à la programmation Objectif du cours Comprendre ce qu est l algorithmique. Fournir des éléments de bases intervenants en programmation quel que soit le langage employé Variables

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

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

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

Jeux d instructions. Les jeux d instructions

Jeux d instructions. Les jeux d instructions Jeux d instructions Daniel Etiemble de@lri.fr Les jeux d instructions Ensemble des instructions d un processeur Format d instructions Lié au modèle (n,m) Longueur fixe ou longueur variable Accès aux données

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

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

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

CHAPITRE 2 AUTOMATISATION DE L EXPLOITATION DES RÉSULTATS EXPÉRIMENTAUX ET DE SIMULATION

CHAPITRE 2 AUTOMATISATION DE L EXPLOITATION DES RÉSULTATS EXPÉRIMENTAUX ET DE SIMULATION CHAPITRE 2 AUTOMATISATION DE L EXPLOITATION DES RÉSULTATS EXPÉRIMENTAUX ET DE SIMULATION 47 2.1 Objectif Dans le premier chapitre, nous avons présenté la physique des composants à semiconducteur et leurs

Plus en détail

Les processeurs. Les entrées-sorties

Les processeurs. Les entrées-sorties Les entrées-sorties La problématique des entrées sorties est la suivante : - Le processeur va vite, plus vite que des éléments mécaniques tel que l on trouve dans une imprimante, une souris, un clavier.

Plus en détail

Introduction à la Programmation Sylvain Tisserant

Introduction à la Programmation Sylvain Tisserant INFO 1 Introduction à la Programmation Sylvain Tisserant Mes coordonnées Enseignant-Chercheur Professeur au département IRM depuis sa création (ES2I, ESIL, Polytech Marseille) Directeur du département

Plus en détail

Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles

Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles UNIVERSITE Joseph FOURIER, Grenoble Licence de Sciences et technologie - Parcours MIN, INF, BIN et MIN international Examen UE INF241 : Introduction aux Architectures Logicielles et Matérielles Première

Plus en détail

Programme de la licence informatique, université de Caen http://www.info.unicaen.fr

Programme de la licence informatique, université de Caen http://www.info.unicaen.fr Programme de la licence informatique, université de Caen http://www.info.unicaen.fr Unité Systèmes d'information CM : 45h - TD : 60h - TP : 12h - Coeff 2 Systèmes de Gestion de Bases de Données Modéliser

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

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

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

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet CNAM UV 19357 Année 2003-2004 David Delahaye David.Delahaye@cnam.fr Conception et Développement Orientés Objets Cours 1 : Introduction 1 Présentation de la valeur Ce cours s adresse à toute personne ayant

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

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

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

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

Skype (v2.5) Analysis Notes (French) Author: Ouanilo MEDEGAN http://www.oklabs.net

Skype (v2.5) Analysis Notes (French) Author: Ouanilo MEDEGAN http://www.oklabs.net Skype (v2.5) Analysis Notes (French) Author: Ouanilo MEDEGAN http://www.oklabs.net 1 Skype : Problèmes L analyse du protocole skype se heurte à deux principaux problèmes : Un binaire implémentant de nombreuses

Plus en détail

Introduction à l'informatique

Introduction à l'informatique Introduction à l'informatique DEUG Sciences et Technologie Première année Autour de la programmation Catherine Mongenet Pierre Gancarski (supports réalisés par Catherine Mongenet et Pascal Schreck) Rappels

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

Optimisation des shellcodes sous Linux Michał Piotrowski

Optimisation des shellcodes sous Linux Michał Piotrowski Optimisation des shellcodes sous Linux Michał Piotrowski Article publié dans le numéro 5/2005 du magazine hakin9 Tous droits reservés. La copie et la diffusion de l'article sont admises à condition de

Plus en détail

Présentation d'android

Présentation d'android NormandyJUG Présentation d'android Avec l'aimable autorisation de l'auteur original de cette présentation. Florent Garin florent.garin@jugtoulouse.org http://www.docdoku.com Présentation des intervenants

Plus en détail