Σε αυτό το μάθημα θα καλύψουμε προηγμένα θέματα ανάλυσης προγραμμάτων - από στατική και δυναμική ανάλυση για ασφάλεια μέχρι τεχνικές μεταγλωττιστών για βελτιστοποιήσεις. Το μάθημα προαπαιτεί γερό υπόβαθρο σε προγραμματισμό. Το μάθημα είναι σεμιναριακού χαρακτήρα, ιδιαίτερα απαιτητικό και απαιτεί ενεργή συμμετοχή.
Ερωτήσεις για διαδικαστικά, το μάθημα, διαφάνειες και εργασίες αποκλειστικά στο Slack. Στείλτε μου email για την εγγραφή στο μάθημα με το GitHub id σου.
Για την ενεργή συμμετοχή σου στο μάθημα, θα χρειαστείς:
Διαλέξεις
Ημερομηνία | Περιεχόμενο Μαθήματος | Class Reading |
---|---|---|
02/17 | Class Registration and Introduction | |
02/24 | Introduction to Fuzzing | (1) Art and Science of Fuzzing (2) Attention is All You Need |
03/04 | Harnessing Fundamentals | (1) Fudge: Fuzz Driver Generation at Scale (2) Utopia: Automatic Generation of Fuzz Driver using Unit Tests |
03/11 | Fuzzing with AFL++ | (1) Angora: Efficient fuzzing by principled search (2) Everything is good for something: Counterexample-guided directed fuzzing via likely invariant inference |
03/18 | Introduction to LLVM and Dataflow | Project Discussion |
04/01 | Static Single Assignment | (1) SoK: Demystifying Binary Lifters Through the Lens of Downstream Applications (2) Scalable Validation of Binary Lifters |
04/08 | Introduction to SMT Solvers | (1) Satisfiability modulo theories: An appetizer (2) Validating SMT Solvers for Correctness and Performance via Grammar-Based Enumeration |
Paper Sources
https://github.com/wcventure/FuzzingPaper