CSC-405 Computer Security

Assignment 4 - Binary ROPing

Assignment 4 is due 4/27/20 on or before 11:59:59pm EDT.


For this homework assignment you will be granted access to a Virtual Machine (VM). The VM will have its own set of login credentials. The server will have several binary challenges to solve. To solve each challenge you must recover a “flag”. All flags will have the following format: flag{abc}. Submit this flag to the web submission server discussed on piazza for points towards your homework grade.


Roping, Return-oriented programming, exercise is another Binary Exploitation exercise which you will be conducting a smash the stack exploit on four very similar programs, but the stack will not be executable. Each level will have a slight twist that increases the difficulty, preventing you from developing a working exploit. In each of the challenge folders there is a program called server, this program will host the vulnerable program on a network port to provide an easier interface. To use server type the following command ./server <port> followed by nc localhost <port>. Your exploit may need to use network sockets to interact with the vulnerable program.

Once you have a working exploit that has provided a privileged shell, very similar to the Binary Exploitation challenges, simply execute cat flag.txt to obtain the flag. Submit this flag for points.

Level Points
Level1 25
Level2 25
Level3 25
Level4 25


You will need to sharpen your Linux hacking toolbelt. You will probably need to become familiar with the following tools to understand the binaries that you want to break:


You will be awarded points based on how many levels are solved. The total number of points that can be obtained from this assignment is 100 points.

Submission Instructions

You will need to submit all source code written for this assignment, and a README. Your README file must contain your name, Unity ID, and a description of how you broke each level. The description is important and will affect how we grade your assignment.

For this submission we are going to use GitHub Classroom. Your submission will be a git repository. If you are not familiar with git here is a quick guide.