Overview

CSCI 1650 covers software exploitation techniques and state-of-the-art mechanisms for hardening software. The course begins with a summary of prevalent software defects, typically found in applications written in memory unsafe languages, like C/C++, and proceeds with studying traditional and modern exploitation techniques, ranging from classical code injection and code reuse up to the latest goodies (e.g., JIT-ROP). For the most part, it focuses on defenses against certain vulnerability classes and the way(s) to bypass them. Students will be introduced to advanced software exploitation techniques and countermeasures, and study (in depth) the boundaries and effectiveness of standard hardening mechanisms, such as address space randomization and stack and heap protections.

Prerequisites

Grading

10% Participation (Ed Discussion)
90% Assignments (CTF-like write-ups)
0% Midterm
0% Final

Acknowledgments

This course would not be possible without the support and assistance of the following people:

Meetings

Instructor

Vasileios (Vasilis) Kemerlis

Teaching Assistants

Zachary Espiritu (HTA)
  • echo z^espirit@cs.brown.edu|tr -d ^
  • Zoom + SignMeUp (Sun. 5PM – 6PM)
  • Zoom + SignMeUp (Fri. 11AM – 12PM)
Andrew Boden (TA)
  • echo @cs.brown.edu|sed 's/^/aboden/'
  • CIT 205 + SignMeUp (Wed. 12PM – 1PM)
  • Zoom + SignMeUp (Fri. 10AM – 11AM)
Andrew Cooke (TA)
  • echo @cs.brown.edu|sed 's/^/acooke1/'
  • CIT 205 + SignMeUp (Sat. 2PM – 3PM)
  • Zoom + SignMeUp (Sun. 3PM – 4PM)
Maura Driscoll (TA)
  • echo m^drisco5@cs.brown.edu|tr -d ^
  • CIT 205 + SignMeUp (Tue. 8PM – 9PM)
  • Zoom + SignMeUp (Thu. 8PM – 9PM)
Ben Givertz (TA)
  • echo b^givertz@cs.brown.edu|tr -d ^
  • CIT 205 + SignMeUp (Mon. 10AM – 11AM)
  • CIT 205 + SignMeUp (Wed. 10AM – 11AM)
Brandon Lee (TA)
  • echo @cs.brown.edu|sed 's/^/blee5/'
  • CIT 205 + SignMeUp (Mon. 8PM – 9PM)
  • Zoom + SignMeUp (Tue. 10PM – 11PM)
Zachary Mothner (TA)
  • echo z^mothner@cs.brown.edu|tr -d ^
  • CIT 205 + SignMeUp (Sun. 6PM – 7PM)
  • CIT 205 + SignMeUp (Wed. 7PM – 8PM)
Ian Rackow (TA)
  • echo @cs.brown.edu|sed 's/^/irackow/'
  • CIT 205 + SignMeUp (Mon. 2PM – 3PM)
  • Zoom + SignMeUp (Wed. 2PM – 3PM)
Daniel Ramirez (TA)
  • echo d^civita1@cs.brown.edu|tr -d ^
  • CIT 205 + SignMeUp (Tue. 4PM – 5PM)
  • Zoom + SignMeUp (Thu. 5PM – 6PM)
Alex Reuter (TA)
  • echo @cs.brown.edu|sed 's/^/areuter/'
  • CIT 205 + SignMeUp (Thu. 3PM – 4PM)
  • Zoom + SignMeUp (Mon. 5PM – 6PM)
Marina Triebenbacher (TA)
  • echo m^trieben@cs.brown.edu|tr -d ^
  • CIT 205 + SignMeUp (Tue. 5PM – 6PM)
  • CIT 205 + SignMeUp (Wed. 7PM – 8PM)

Announcements

12/06/2021 Review Day!
12/01/2021 Lecture 0x17 posted.
11/29/2021 Assignment 0x4 is due today.
11/29/2021 Lecture 0x16 posted.
11/22/2021 Lecture 0x15 posted.
11/17/2021 Assignment 0x4 is due on 11/29/2021.
11/17/2021 Lecture 0x14 posted.
11/15/2021 Lecture 0x13 posted.
11/10/2021 Assignment 0x4 posted.
11/10/2021 Assignment 0x3 is due today.
11/10/2021 Lecture 0x12 posted.
11/08/2021 Lecture 0x11 posted.
11/03/2021 Assignment 0x3 is due on 11/10/2021.
11/03/2021 Lecture 0x10 posted.
11/01/2021 Lecture 0xf posted.
10/27/2021 Assignment 0x3 posted.
10/27/2021 Assignment 0x2 is due today.
10/27/2021 Lecture 0xe posted.
10/25/2021 Lecture 0xd posted.
10/20/2021 Assignment 0x2 is due on 10/27/2021.
10/20/2021 Lecture 0xc posted.
10/18/2021 Lecture 0xb posted.
10/13/2021 Assignment 0x2 posted.
10/13/2021 Assignment 0x1 is due today.
10/13/2021 Lecture 0xa posted.
10/11/2021 No class today.
10/06/2021 Assignment 0x1 is due on 10/13/2021.
10/06/2021 Lecture 0x9 posted.
10/04/2021 Lecture 0x8 posted.
09/29/2021 Assignment 0x1 posted.
09/29/2021 Lecture 0x7 posted.
09/27/2021 Lecture 0x6 posted.
09/22/2021 Lecture 0x5 posted.
09/20/2021 Lecture 0x4 posted.
09/15/2021 Lecture 0x3 posted.
09/13/2021 Lecture 0x2 posted.
09/08/2021 Lecture 0x1 posted.
09/08/2021 Welcome to CSCI 1650!