Assignments

Grace Days

You may use up to 7 grace days (in total) over the course of the semester for the assignments. That is you can submit your solutions without any penalty if you have free grace days left. Any additional unapproved late submission will be punished (1 day late: 20% off, 2 days late: 40% off). No submission after 2 days will be accepted (regardless of grace days used!).

Assignment 0: Getting Started with Unix and C

This assignment aims at making sure you familiarize yourself with basic C fundamentals and building simple C programs as well as basic Git commands and working through Github classroom.

Assignment 1: Strings in C

The goal of this assignment is to become more familiar with Strings in C language.

Assignment 2: Heap Management

In this assignment, you will gain experience in using pointers, dynamic arrays and heap management.

Assignment 3: Defusing a Binary Bomb

The purpose of this assignment is to help you to become familiar with x86-64 instruction set and to understand assembly code representations of C programs.

Assignment 4: Buffer Overflow Attacks

The purpose of this assignment is to help you get familiar with how buffer overflow vulnerabilities are formed, found, exploited and protected.