Retro-ingenierie avec radare2



Documents pareils
ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team

Sauvegarde des données au LAAS

Catalogue des stages Ercom 2013

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

Cours 1 : La compilation

Debian en milieu professionnel. This document is under the GNU Free Documentation License.

Compilation (INF 564)

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

Annexe : La Programmation Informatique

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

«Le malware en 2005 Unix, Linux et autres plates-formes»

Systèmes en réseau : Linux 1ère partie : Introduction

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

Virtualisation Vserver et OpenVz en entreprise

Chapitre 2 : Abstraction et Virtualisation

SAP BO Mobile SAP BI Septembre /09/2014 Integrated Business intelligence 1

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Programmation Orientée Objet

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Rappels d architecture

Initiation à la sécurité

Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

La sécurité des ordiphones : mythe ou réalité?

Présentation OpenVZ. Marc SCHAEFER. 9 janvier 2009

Cours 1 : Qu est-ce que la programmation?

Systèmes Embarqués Libres

Chapitre I Notions de base et outils de travail

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

Installation pas à pas de libre Office (suite Bureautique gratuite)

CESI Bases de données

GPA770 Microélectronique appliquée Exercices série A

AutoForm plus R6 : Besoins systèmes

C2I. Ou réapprendre ce que l on connait. Florimond GUENIAT Première semaine Cours C2I l IUT de Sceaux C2I 1 / 21. florimond.gueniat@limsi.

ASR3. Chap. 1 Notion de système d'exploitation

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

Virtualisation logicielle De la machine réelle à la machine virtuelle abstraite

Présentation du cours

Évaluation et implémentation des langages

Environnements et Outils de Développement Cours 1 Introduction

Processus d Informatisation

Dive Center Manager. Outil de gestion clients pour Centre de plongée

Qu est-ce qu un outil de travail collaboratif Google Drive?

GANTTPROJECT. Julien TENDERO

Concept de machine virtuelle

Architecture des ordinateurs Introduction à l informatique

Catalogue des formations 2014 #CYBERSECURITY

Optimisation de logiciels de modélisation sur centre de calcul

Configuration système requise

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Curriculum Vitae 1 er février 2008

L'automatisation open source pour SI complexes

WPKG Gestion de paquets pour Windows

Android. Présentation d Android. Florent Garin

Extensions, Documentation, Tutoriels, Astuces

Vulgarisation Java EE Java EE, c est quoi?

Introduction et contexte L I S. Jean Arlat EDF. Electricité de France technicatome. LAAS et LIS THOMSON-CSF

Éléments de programmation et introduction à Java

Hudson Serveur d Intégration Continue. Adrien Lecharpentier IR3 Ingénieurs2000, Université de Marne la Vallée

I Maintenance informatique et bureautique

Vidyo : une maquette pour la visioconférence sur le poste de travail

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

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

BUREAU VIRTUEL. Utilisation de l application sur ipad. Guide utilisateur. Sciences Po Utilisation du bureau virtuel sur ipad 1 / 6

Virtual Box Mettez un PC dans votre... PC

Thème 3 Conception et vérification d architectures de systèmes sur puce

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

GUIDE D UTILISATION DU LOGICIEL DE TELE-MAINTENANCE. TEAM VIEWER Version 7.

FORMATION PROFESSIONNELLE AU HACKING

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Utilisation des ressources informatiques de l N7 à distance

Guide d installation JMap 5.0

Découverte des Logiciels Libres. Gilles Dequen

1. Mise en œuvre du Cegid Web Access Server en https

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

Supervision système et réseau avec Zabbix. Anne Facq Centre de Recherche Paul Pascal 17 avril 2008

ARCHITECTURE ET SYSTÈMES D'EXPLOITATIONS

PPE 1 PRISE EN MAIN DE VMWARE VSPHERE 5.5 & CONFIGURATION D UNE MACHINE VIRTUELLE

TD/TP 1 Introduction au SDK d Android

Une tasse de café fumante est

Zabbix. Solution de supervision libre. par ALIXEN

Manuel de System Monitor

Introduction à l informatique en BCPST

Notice d Installation et d utilisation d une liaison Bluetooth avec un PDA ipaq.

Introduction aux buffer overflow, CS335

Programmation Mobile Android Master CCI

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Compte-rendu Black Hat et Defcon

Introduction aux antivirus et présentation de ClamAV

Audio & Web Conferencing Cisco WebEx Orange Business Services

CH.3 SYSTÈMES D'EXPLOITATION

Resolution limit in community detection

µrv : Realité Virtuelle

Compilation croisée sous Linux et Windows

Mise en œuvre d un poste virtuel

Transcription:

Retro-ingenierie avec radare2 Parce que l assembleur, c est sympathique. Julien (jvoisin) Voisin PSES 2014 26 juin 2014

whoami Julien (jvoisin) Voisin Reverseur Contributeur à radare2 Étudiant Fatigué

whoami Julien (jvoisin) Voisin Reverseur Contributeur à radare2 Étudiant Fatigué

whoami Julien (jvoisin) Voisin Reverseur Contributeur à radare2 Étudiant Fatigué

whoami Julien (jvoisin) Voisin Reverseur Contributeur à radare2 Étudiant Fatigué

Petit sondage Linux Compilateur C Assembleur Rétro-ingénierie Exploit

Petit sondage Linux Compilateur C Assembleur Rétro-ingénierie Exploit

Petit sondage Linux Compilateur C Assembleur Rétro-ingénierie Exploit

Petit sondage Linux Compilateur C Assembleur Rétro-ingénierie Exploit

Petit sondage Linux Compilateur C Assembleur Rétro-ingénierie Exploit

Petit sondage Linux Compilateur C Assembleur Rétro-ingénierie Exploit

Plan La rétro-ingénierie, c est quoi? Légalité Comment on fait en pratique?

Qu est-ce que la rétro-ingénierie? La rétro-ingénierie consiste à étudier un objet pour en déterminer son fonctionnement interne.

Qu est-ce que la rétro-ingénierie? La rétro-ingénierie consiste à étudier un objet logiciel pour en déterminer son fonctionnement interne.

Pour faire quoi? Espionnage industriel Cracking Création d exploits Analyse de malwares Inter-opérabilité Pour le fun Peu importe la couleur du chapeau.

Pour faire quoi? Espionnage industriel Cracking Création d exploits Analyse de malwares Inter-opérabilité Pour le fun Peu importe la couleur du chapeau.

Pour faire quoi? Espionnage industriel Cracking Création d exploits Analyse de malwares Inter-opérabilité Pour le fun Peu importe la couleur du chapeau.

Pour faire quoi? Espionnage industriel Cracking Création d exploits Analyse de malwares Inter-opérabilité Pour le fun Peu importe la couleur du chapeau.

Pour faire quoi? Espionnage industriel Cracking Création d exploits Analyse de malwares Inter-opérabilité Pour le fun Peu importe la couleur du chapeau.

Pour faire quoi? Espionnage industriel Cracking Création d exploits Analyse de malwares Inter-opérabilité Pour le fun Peu importe la couleur du chapeau.

Pour faire quoi? Espionnage industriel Cracking Création d exploits Analyse de malwares Inter-opérabilité Pour le fun Peu importe la couleur du chapeau.

C est quoi un programme? - code source - ordinateur - programmeur programme

Code source

Assembleur

C est quoi un processeur? FIGURE : Processeur

Comment ça marche un programme?

Où sont les zéros et les uns? 11101000 10000000 01001001 00000000 74 40 24 80 je 0x42 ; and al, 0x80 Binaire

Où sont les zéros et les uns? 11101000 10000000 01001001 00000000 74 40 24 80 je 0x42 ; and al, 0x80 Hexadécimal

Où sont les zéros et les uns? 11101000 10000000 01001001 00000000 74 40 24 80 je 0x42 ; and al, 0x80 Mnémonique

Une transformation à sens unique La compilation n est pas bijective.

Une transformation à sens unique La compilation n est pas inversible.

Plan La rétro-ingénierie, c est quoi? Légalité Comment on fait en pratique?

Est-ce bien légal? Article L122-6-1 La reproduction du code du logiciel ou la traduction de la forme de ce code n est pas soumise à l autorisation de l auteur [...] pour obtenir les informations nécessaires à l interopérabilité d un logiciel

Mouaif On peut faire de la rétro-ingénierie pour : Corriger des bugs Interopérabilité Observer/tester/étudier Reproduction et traduction du code sous conditions On peut tout faire sous couvert de recherche, ou de sécurité.

Plan La rétro-ingénierie, c est quoi? Légalité Comment on fait en pratique?

Deux approches Analyse statique Analyse dynamique

IDA

OllyDBG

Radare2

Historique Radare vient de fêter son 8e anniversaire (2006) Re-écrit en 2010 Originellement un éditeur hexadécimal 450.000 lignes de code 5000 eme commit hier! 10 contributeurs actifs

Historique Radare vient de fêter son 8e anniversaire (2006) Re-écrit en 2010 Originellement un éditeur hexadécimal 450.000 lignes de code 5000 eme commit hier! 10 contributeurs actifs

Historique Radare vient de fêter son 8e anniversaire (2006) Re-écrit en 2010 Originellement un éditeur hexadécimal 450.000 lignes de code 5000 eme commit hier! 10 contributeurs actifs

Historique Radare vient de fêter son 8e anniversaire (2006) Re-écrit en 2010 Originellement un éditeur hexadécimal 450.000 lignes de code 5000 eme commit hier! 10 contributeurs actifs

Historique Radare vient de fêter son 8e anniversaire (2006) Re-écrit en 2010 Originellement un éditeur hexadécimal 450.000 lignes de code 5000 eme commit hier! 10 contributeurs actifs

Historique Radare vient de fêter son 8e anniversaire (2006) Re-écrit en 2010 Originellement un éditeur hexadécimal 450.000 lignes de code 5000 eme commit hier! 10 contributeurs actifs

Bindiff

Analyse

Graphes

Mais aussi Assembleur Hexedit Debugger Shellcodes

Ça tourne sur quoi? Windows GNU/Linux MacOS Android iphone BSD Solaris Haiku

Architectures i8080 8051 x86 avr arc arm c55x+ dalvik ebc nios2 powerpc z80 psosvm m68k whitespace brainfuck malbolge msil gb java sparc mips snes dcpu16 csr

Démo Ok, mais comment on s en sert?