Projet Long

Création de code aléatoire et obfusqué par LLVM

Nature du projet Preuve de concept Description du travail demandé Le but de ce projet long de master est de développer un outil de création de code aléatoire en se basant sur LLVM. Cette chaine de compilation génère du code binaire à partir de code assembleur en utilisant une représentation intermédiaire sous forme d’arbre. Plusieurs projets existent pour manipuler ces représentations tels que l’obfuscateur opensource en C : https://tigress.wtf/transformations.html L’objectif ici sera de pouvoir générer des codes ayant des comportement le plus différent possible : mémoire, branchement, calcul flottant, …

Evaluation de la performance de récupération des compteurs de performance hardware dans les processeurs

Nature du projet Preuve de concept Description du travail demandé Les processeurs récents possèdent des compteurs de performance très efficaces. Il s’agit de registre dans le processeur capables par exemple de compte le nombre de calculs entiers, le nombre de cache miss, … L’objectif de ce projet long est double Faire une campagne d’évaluation de performance des différents outils permettant de lire ces valeurs Programmer une bibliothèque permettant facilement et efficacement d’accéder à ces valeurs Environnement technologique Développement noyau linux Développement C Summary in english

Mise à jours de l'application cartOCampus

Nature du projet Développement logiciel Description du travail demandé L’application cartOCampus permet de se repérer sur le campus de l’université Paul Sabatier. Elle utilise une version ancienne du framework de développement Android. L’objectif de ce projet long est de mettre à jours cette application pour une version plus récente du framework. Il s’agira donc de : Mettre à jours l’application Corriger certains petits défauts Si le temps le permet, finir la version multiplateform (flutter) pour que l’application puisse s’exécuter aussi sur IOS Environnement technologique Développement Android et mobile Summary in english

Visualisation de communication entre processus Python

Nature du projet Preuve de concept Description du travail demandé La communication dans une application multi-processus est quelque chose de compliqué. L’objectif de ce projet long est de faire un outil permettant la visualisation des communications mais aussi de l’état des variables internes des différents processus. On s’intéressera au cas des applications python. L’objectif sera dans l’ordre et en fonction de l’avancement du groupe de Proposer une IHM permettant de visualiser les communications par socket et les variables locales Proposer une surcharge de la bibliothèque standard socket python Idem pour les opérations collectives MPI Idem pour les moniteurs de Hoar Environnement technologique Python, IHM Summary in english

Sonde dans le noyaux Linux : eBPF pour le monitoring système et réseau

Nature du projet Développement logiciel Description du travail demandé Obtenir des informations dans le noyau linux est compliqué et couteux. Ces informations sur la charge du système, le trafic réseau, la gestion de la mémoire, … sont souvent uniquement accessibles au travers de fichiers systèmes. eBPF (Extended Berkeley Packet Filter) est une technologie kernel (lancée dans Linux 4.x) qui permet aux programmes d’être exécuté sans devoir modifier le code source du kernel ni ajouter de modules supplémentaires.