Contexte
Postuler
Python est aujourd'hui un des langages les plus utilisés pour la programmation et de nombreux outils sont développés avec celui-ci. Étant un langage interprété de haut-niveau la conversion du bytecode Python au langage en lui-même est faite très facilement. Lors du déploiement d'un outil écrit en Python il peut être important de complexifier l'accès au code original par différentes méthodes d'obfuscation.
SujetVous devrez étudier les différentes techniques d’obfuscation applicables à tous les niveaux de python (sources, bytecode, interpréteur,…) et développer un outil capable d’appliquer ces techniques à un projet complet.
Le stage sera découpé en plusieurs étapes:
- Etat de l’art des techniques d’obfuscation applicables a Python et CPython
- Preuves de Concepts des techniques d’obfuscation intéressantes pour chaque niveau
- Développement d’un outil d’obfuscation de projet
- Langages : Python2.7 / C
- CPython internals
- Notions d’obfuscation
- Durée du stage : 6 mois environ
- Profil idéal : stage de fin d’étude
- https://docs.python.org/2/library/dis.html
- https://github.com/Mysterie/uncompyle2
- http://blog.quarkslab.com/building-an-obfuscated-python-interpreter-we-need-more-opcodes.html