Lab 3: Bomb

Introduction

The nefarious Dr. Evil has planted a slew of "binary bombs" on our machines. A binary bomb is a program that consists of a sequence of phases. Each phase expects you to type a particular string on standard in (stdin). If you type the correct string, then the phase is defused and the bomb proceeds to the next phase. Otherwise, the bomb explodes by printing "BOOM!!!" and then terminating. The bomb is defused when every phase has been defused. There are too many bombs for us to deal with, so we are giving each group a bomb to defuse. Your mission, which you have no choice but to accept, is to defuse your bomb before the due date. Good luck, and welcome to the bomb squad!

Getting Started

Each two-person team will attempt to defuse their own personalized bomb. Each bomb is a Linux binary executable file that has been compiled from a C program. To obtain your team's bomb, one (and only one) of the team members should follow these steps to acquire a bomb:

  1. Connect to wilkes (e.g., using VS Code) and open a terminal
  2. Create a directory for your lab files (e.g., using the command mkdir lab3), and enter that directory (e.g., using cd lab3). See a screenshot of these steps.
  3. Enter the command links http://wilkes:15213 and then press enter. This will bring up a little web form inside the terminal where you can enter your user ids and email. You can use your keyboard's up/down/left/right keys to move around the form. Then press "Submit". See screenshot.
  4. If you see a pop-up asking about an "Unknown Type", you can select "Save".
  5. Another pop-up will ask you about the "Download" and shows you the filename of your bomb. Select Ok.
  6. Press the 'q' key on your keyboard to exit Links, and confirm "Yes" that you want to exit if prompted.
  7. Back in the terminal, confirm your downloaded bomb is in your directory with the command ls. Note that your bomb has a number, e.g., bomb3. See screenshot.
  8. Give the command: tar -xvf bombk.tar, replacing the k with your bomb's number. This will create a directory called ./bombk with the following files:
    • README: Identifies the bomb and its owners.
    • bomb: The executable binary bomb.
    • bomb.c: Source file with the bomb's main routine and a friendly greeting from Dr. Evil

If you make any kind of mistake requesting a bomb (such as neglecting to save it or typing the wrong group members), simply request another one. Likewise, if for some reason you request multiple bombs, this is not a problem. Choose one bomb to work on and delete the rest.

Now you are ready to follow the instructions in the writeup for this lab.

Due Date and Submission

Due: Friday October 4th, 9:35am.

There is no explicit hand-in, see the scoreboard.

However, it's a good idea to keep track of your solutions to each phase (one answer per line in a text file), as described in the writeup.