PYSA (pour Python Static Analysis) est un prototype de framework d'analyses statiques en python, codé dans le cadre du stage de Master 2 Recherche de Florian Birée, au sein de l'équipe TRACES de l'IRIT.
Il implante des prototypes d'analyses décrites dans mon mémoire Limites de boucles sur le binaire (sources).
PYSA se base sur les analyses d'Otawa, qui est requis pour que PYSA puisse fonctionner. Veuillez noter que PYSA est un prototype expérimental, pour un usage plus poussé des analyses en question, il faudrait les développer proprement dans Otawa.
Pour téléchanger PYSA avec Bazaar :
bzr branch http://code.filyb.info/pysa/
et sous forme d'archives :
- pysa-20120620.tar.gz ;
- looptest.tar.gz (jeu de tests décrit dans le mémoire).
Le dépôt de PYSA contient trois logiciels, tous disponibles selon les termes de la licence LGPL v2.1 :
- bin2sempy, à compiler avec Otawa, qui permet d'obtenir une représentation en instructions sémantiques du binaire ;
- part_clpai, partie C++ du binding permettant à PYSA d'utiliser l'analyse CLP d'Otawa, lui aussi à compiler avec Otawa ;
- mkpysa, le framework python qui permet de lancer les analyses de calcul d'informations de flot de contrôle.