Amphithéâtre 4, EPITA, 24 rue Pasteur, 94276 Le Kremlin-Bicêtre.
Transports en commun : métro 7 (station Porte d'Italie), bus 47/125/131/185/186 (station Roger Salengro-Fontainebleau).
Les DSP sont des processeurs spécialisés dans le traitement de signaux de tous types : Software Defined Radio, mixage et filtrage audio, téléphonie (baseband), etc. De ce fait, ils contiennent de nombreuses fonctionnalités originales, telle que de la parallélisation au niveau de l’exécution d’une instruction ou la présence de nombreux registres spécialisés. Cette conférence parlera du reverse engineering de code pour ce type de processeur, des techniques utilisées pour l’analyser, et de l’implémentation d’un émulateur reproduisant les fonctionnalités du DSP. Slides Video Youtube
Lors du debugging d’un programme, on est souvent amené à faire des choses automatisables, comme afficher les différents éléments d’une liste chaînée, compter un certain nombre d’événements, … GDB permettait déjà de créer des scripts avec un langage dédié, mais depuis la version 7, il est possible de scripter GDB en Python. Nous verrons un bref aperçu de l’API disponible, de la mise en place d’un script et de quelques exemples. Slides Video Youtube
Les debuggers de programmes natifs comme GDB ou DBX reçoivent des
informations du compilateur qu’il faut habituellement générer
explicitement (option -g
, …). Ces informations permettent,
depuis un certain état du processus, de faire le lien avec les sources
du programme, et ainsi retrouver les lignes de code exécutées, les
fonctions appelées, la valeur et le type des variables disponibles, et
bien d’autres. DWARF est un format utilisé par les compilateurs pour
passer de telles informations : nous verrons quelles formes prennent
les informations de debugging et leur utilisation par les
debuggers. Slides
Video
Youtube
Pour pouvoir communiquer avec le réseau local ou Internet, la première étape pour un système d’exploitation est d’interagir avec le contrôleur ethernet de la machine. Le développement d’un driver permettant la communication avec un tel contrôleur sera présenté en prenant pour exemple le contrôleur e1000 d’Intel et en présentant les particuliarités du développement d’un driver pour un composants connecté par bus PCI. Slides Video Youtube
Souvent, lorsqu'on est amené à étudier des logiciels, des jeux ou mêmes des malwares, on ne peut pas faire du reverse engineering sur les exécutables directement. La plupart du temps, ceux-ci sont compressés ou chiffrés avec le code pour décompresser ou déchiffrer au sein d'eux-même, et tout ce processus se fait de façon transparente aux yeux de l'utilisateur.
Nous verrons ce que ce sont ces packer, les choses a connaître pour les déjoueur, ce qu'est la reconstruction d'imports, la redirection d'api, les stolen bytes, les nanomites ou encore d'autres methodes utilisées par ces protections pour faire perdre du temps aux personnes qui ont envie d'étudier les executables en question. Slides Video Youtube
Depuis des décénies, des chercheurs et programmeurs implémentent des logiciels dans le but de résoudre le problème de satisfaisabilité d’une formule booléenne (généralement appelé SAT) : chercher un ensemble de valeurs possibles pour les variables d’une formule afin que cette formule soit vraie. Ce problème n’a pas de solution rapide dans le cas général : il s’agit d’un problème NP-complet. De nombreuses simplifications peuvent cependant être utilisées pour le rendre rapide dans les cas usuels. SAT a de nombreuses applications en sécurité, de l’analyse statique de code à la recherche de préimages d’une fonction de hachage. Nous verrons pendant cette conférence comment réduire une recherche de préimage à la résolution de SAT sur une formule représentant une fonction de hachage, et quelques outils permettant de simplifier l’écriture de cette formule. Slides Video Youtube
L’exploitation logicielle ne cesse d’augmenter de nos jours : Java, Flash, et Adobe Reader sont actuellement les vecteurs d’attaque les plus utilisés, mais est-ce que ce sont les seuls ?
Les serveurs de jeux sont eux aussi vulnérables, et étant donné la population de joueurs sur Terre, serait-il intéressant d’étudier certains de ces logiciels pour trouver des vulnerabilités ?
Durant cette conférence nous parlerons d’outils developpés pour aider à la recherche de vulnérabilités ainsi que de leur exploitation. Slides Video Youtube
Après une présentation du fonctionnement de l'USB, nous nous intéresserons aux Human Interface Devices, et plus particulièrement au clavier, dans le but de réaliser un keylogger. Slides Video Youtube