Bypassing SEHOP on Windows 7

Lundi 21 décembre 2009

La protection SEHOP introduite dans Windows Vista et 2008 permet de protéger les applications contre les exploitations de buffer-overflows classiques. Celles-ci consistent en général à écraser non seulement une adresse de retour, mais aussi la structure SEH gérant les exceptions provoquées par l'application, dans le but de rediriger le flux ...

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

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

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

Reversing Linux : Comprendre le rôle des sections PLT et GOT dans l’édition de liens dynamique

Vendredi 25 juillet 2008

J'ai récemment eu la volonté de comprendre plus en détails comment Linux parvient à résoudre les symboles (tels que les fonctions) liés dynamiquement dans les programmes. Ne disposant pas d'Internet et n'ayant pas les sources du noyau sous la main, il a fallu faire avec les moyens du bord : ...