LoadLibrary : Charger et appeler des fonctions de DLL Windows sous Linux

Par:
fredericmazue

mar, 06/06/2017 - 15:16

Tavis Ormandy est un chercheur en sécurité du Project Zero de Google, qui s'est récemment illustré en compagnie de sa collègue Natalie Silvanivich en découvrant une vulnérabilité de Windows Defender permettant de propager des virus, un comble...

Mais sachant que chez Google on travaille principalement sous Linux, comment Tavis a-t-il fait pour découvrir cette vulnérabilité ? Il l'a fait en envoyant des paramètres malicieux aux fonctions du moteur MsMpEng... sous Linux.

Pour cela il a utilisé un outil qu'il a développé et dont il donne le code sur GitHub : LoadLibrary. Cet outil, comme son nom le suggère, permet de charger des librairies DLL Windows sous Linux pour ensuite invoquer les fonctions de la librairie et récupérer les valeurs retournées. Pour mémoire, LoadLibrary est le nom d'une API Win32 permettant de charger des DLL, d'où le nom de l'outil de Tavis. Cerise sur le gâteau, il est possible de débogueur les fonctions de DLL Windows avec GDB, tout comme on le ferait avec une librairie Linux native. Tavis souligne que LoadLibrary ne vient pas en remplacement de l'émulateur Wine ni en remplacement de Winelib.

Selon Tavis, Linux offre aux développeurs de meilleurs outils que Windows, c'est pourquoi il a jugé utile de développer LoadLibrary, qui lui permet de faire des recherches en sécurité sans quitter sa plate-forme préférée :-) C'est ainsi que sur la page GitHub du projet LoadLibrary, il explique comment charger les librairies de MsMpEng, le moteur d'analyse de l'antivirus Windows Defender de Microsoft.