Calendrier des semaines
| # | Date | Cours | Lecture recommandée | Évaluation |
|---|---|---|---|---|
| 1 | 2026-01-13 | 00-intro | How to Read a Paper, Keshav, 2007 | |
| 2 | 2026-01-20 | 01-lint | Finding Bugs is Easy, Homeyer and Pugh, 2004 | |
| 3 | 2026-01-27 | 02-dataflow | Constant Propagation with Conditional Branches, Wegman and Zadeck, 1991 | |
| 4 | 2026-02-03 | 03-fuzzing | AFL: Technical Details, Zalewski | |
| 5 | 2026-02-10 | 04-symex | KLEE, Cadar et al., 2008 | Devoir 1 |
| 6 | 2026-02-17 | 05-infoflow | ORBS and the Limits of Static Slicing, Binkley et al., 2015 | |
| 7 | 2026-02-24 | 06-dataflow2 | ||
| - | 2026-03-03 | relâche | ||
| 8 | 2026-03-10 | 07-absint | Abstracting Abstract Machines, Van Horn and Might, 2010 | Devoir 2 |
| 9 | 2026-03-17 | révisions | Choix d’article, outil, et projet | |
| 10 | 2026-03-24 | |||
| 11 | 2026-03-31 | intra | Examen intra | |
| 12 | 2026-04-07 | présentations d’article | Présentation d’article | |
| 13 | 2026-04-14 | présentations d’outil | Présentation d’outil | |
| 14 | 2026-04-21 | présentation d’invité + 08-advanced | ||
| 15 | 2026-04-28 | présentation de projets | Projet de session |
Évaluation
| Évaluation | Pondération | Échéance |
|---|---|---|
| Devoir 1 | 7.5% | Semaine 5 |
| Devoir 2 | 7.5% | Semaine 8 |
| Examen intra | 25% | Semaine 10 |
| Présentation d’article | 15% | Semaine 12 |
| Présentation d’outil | 15% | Semaine 13 |
| Projet de session | 30% | Semaine 15 |
La matière de l’intra porte sur le contenu des chapitres 0 à 7. Des exercices de révisions sont disponibles, ainsi que les solutions.
Pour l’examen, vous pouvez venir avec deux pages de notes (format lettre, recto-verso, donc 4 faces) manuscrites comme aide mémoire.
Contenu du cours
- Chapitre 0 : Introduction à l’analyse de programmes
- Chapitre 1 : Analyse par filtrage d’arbre syntaxique (linters)
- Chapitre 2 : Analyse de flot de donnée : concepts fondamentaux (dataflow)
- Chapitre 3 : Fuzzing
- Chapitre 4 : Exécution symbolique
- Chapitre 5 : Analyse de flot d’information (taint analysis, slicing)
- Chapitre 6 : Analyse de flot de donnée : concepts avancés
- Chapitre 7 : Interprétation abstraite
- Chapitre 8 : Éléments avancés d’analyse de programmes (sujet à choisir)
Références
- The Fuzzing Book: Tools and Techniques for Generating Software Tests, Zeller, A., Gopinath, R., Böhme, M., Fraser, G., & Holler, C.
- Static program analysis, Møller, A., & Schwartzbach, M. I.
- Program Analysis, cours de Michael Pradel de 2020-2021.