RDTSC hooking sous Linux : théorie et pratique

Mardi 14 juillet 2009

L'architecture x86 possède des subtilités parfois méconnues de beaucoup de développeurs. En effet, il existe une instruction assez spéciale, RDTSC, qui renvoie le nombre de cycles d'horloge depuis le démarrage du processeur. En 2007, un chercheur d'IBM présente au Black Hat une technique de hook basée sur cette instruction. En ...

Conférence NDH 2009 sur GoRing0

Jeudi 14 mai 2009

Je me suis récemment lancé sur un nouveau projet perso, nommé GoRing0. Ce projet est parti d'une question existentielle que je me suis posée concernant les processus, ou plutôt les threads. Sous Linux et Windows, ceux-ci s'exécutent normalement en ring 3 (mode processeur userland), alors que les drivers s'exécutent en ...

Tunnez votre BSOD (Blue Screen Of Death)

Jeudi 30 avril 2009

Tous les développeurs de drivers et les reversers kernel vous le diront : quand on touche au noyau Windows d'un peu trop près, on a le droit à un écran bleu de la mort, ou BSOD (Blue Screen Of Death). C'est justement parce que je me suis pris un tas ...

Problèmes liés aux interruptions

Mardi 21 avril 2009

Dans le cadre de mon stage, je m'intéresse au fonctionnement des interruptions de l'architecture x86. Il s'agit d'un mécanisme complexe mais extrêmement important pour comprendre comment un système d'exploitation arrive à fonctionner. Si j'écris ce post, c'est parce que je me suis pris la tête sur des problèmes qui y ...

Plongeon dans les appels systèmes Windows

Samedi 28 mars 2009

Mon stage m'a donné l'occasion d'analyser en détails comment un appel système est réalisé sous Windows. Si vous vous demandez comment un programme utilisateur (ring 3) fait pour appeler une fonction s'exécutant en mode noyau (ring 0), alors cet article est pour vous. J'y explique toutes les étapes de la ...

Stage chez Thomson R&D

Mercredi 25 mars 2009

J'ai commencé mon stage il y a maintenant une dizaine de jours chez Thomson R&D à Cesson-Sévigné. Comme prévu, mon stage a pour sujets principaux le reverse-engineering et le développement de drivers.  Pour être plus précis, le but du stage est de réaliser un conteneur sécurisé de données. Autrement dit, ...