Partagez sur
STAGE Packer across multiple stages of the compilation pipeline
Date de mise à jour de l’offre
QUARKSLAB :
Sécurité Informatique
Description de la mission
Écrire un packer qui interagit correctement avec d'autres obfuscations est loin d'être facile. Où l'emballage doit-il être fait? Dans la représentation intermédiaire du compilateur? Avant les obfuscations? Ensuite? Si c'est fait trop tôt, le code compressé ne bénéficiera pas d'autres obfuscations. Si c'est fait trop tard, le code peut être trop obscur pour identifier un seul morceau de code pour l'emballage. Dans le premier scénario, il suffit à l'attaquant de collecter des traces du code lors de l'exécution pour récupérer le code non obscurci, tandis que dans le dernier, l'application entière doit être compressée en une seule pièce, ce qui entraîne un gros impact sur les performances.
Une meilleure approche consiste à étendre la stratégie d'emballage sur plusieurs niveaux, en effectuant une partie du travail dans la représentation intermédiaire et une autre partie dans le code binaire. Cela permet d'injecter le code de décompression suffisamment tôt, afin qu'il puisse être obscurci avec le code de l'utilisateur, et d'injecter des espaces réservés qui seront ensuite remplis par une transformation ultérieure directement sur le code binaire.
L'objectif de ce stage est de faire une première mise en œuvre de cette stratégie, et d'explorer quelques améliorations à cette protection.
Une meilleure approche consiste à étendre la stratégie d'emballage sur plusieurs niveaux, en effectuant une partie du travail dans la représentation intermédiaire et une autre partie dans le code binaire. Cela permet d'injecter le code de décompression suffisamment tôt, afin qu'il puisse être obscurci avec le code de l'utilisateur, et d'injecter des espaces réservés qui seront ensuite remplis par une transformation ultérieure directement sur le code binaire.
L'objectif de ce stage est de faire une première mise en œuvre de cette stratégie, et d'explorer quelques améliorations à cette protection.
Profil recherché
Programmation C ++
Intérêt de bas niveau et des systèmes
La connaissance des composants internes de LLVM est un plus!
Intérêt de bas niveau et des systèmes
La connaissance des composants internes de LLVM est un plus!
Niveau de qualification requis
Bac + 3
Les offres de stage ou de contrat sont définies par les recruteurs eux-mêmes.
En sa qualité d’hébergeur dans le cadre du dispositif des « 100 000 stages », la Région Île-de-France est soumise à un régime de responsabilité atténuée prévu aux articles 6.I.2 et suivants de la loi n°2204-575 du 21 juin 2004 sur la confiance dans l’économie numérique.
La Région Île-de-France ne saurait être tenue responsable du contenu des offres.
Néanmoins, si vous détectez une offre frauduleuse, abusive ou discriminatoire vous pouvez la signaler
en cliquant sur ce lien.
-
EmployeurQUARKSLAB
-
Secteur d’activité de la structureEmploi - Economie - Innovation - Numérique
-
Effectif de la structureDe 51 à 250 salariés
-
Site internet de la structurehttps://quarkslab.com
-
Type de stage ou contratStage pour lycéens et étudiants en formation initiale
-
Date prévisionnelle de démarrage
-
Durée du stage ou contratPlus de 4 mois et jusqu'à 6 mois
-
Le stage est-il rémunéré ?Oui
-
Niveau de qualification requis
Bac + 3 -
Lieu du stage13 Rue Saint-ambroise
75011 PARIS 11E ARRONDISSEMENT -
Accès et transportsMetro 9 & 11