--- title: 'Homework Assignments' tags: enee459b-fall23 --- ## Homework 1. Access The `access` executable provided in this HW is a piece of software used for granting access to a turnstile. It provides simple user authentication using standard username/password combinations. Unfortunately, the company that developed the software inserted a backdoor to allow unfettered access to all the organizations that use the physical access control system. * [Download the `access` and `passwd` files](https://yonghwi-kwon.github.io/class/enee459b/data/access.zip) * `access` is a binary executable file and `passwd` is a text file. * Obtain the binary in the class VM server ```=csh $ mkdir hw1 $ cd hw1 $ wget https://yonghwi-kwon.github.io/class/enee459b/data/access.zip $ unzip access.zip $ rm access.zip ``` * [Full Homework Description](https://yonghwi-kwon.github.io/class/enee459b/data/HW1.pdf) ## Homework 2. Data Structures You have been provided a simple utility (`re-hw2`) that was written by a past co-worker, but nobody is quite sure what it does! It seems to be saving a binary file. What is it doing, and what format is the binary file in? * [Download the `re-hw2` binary](https://yonghwi-kwon.github.io/class/enee459b/data/re-hw2) * Obtain the binary in the class VM server ```=csh $ mkdir hw2 $ cd hw2 $ cp /class/re-hw2/* ./ ``` * [Full Homework Description](https://yonghwi-kwon.github.io/class/enee459b/data/HW2.pdf) ## Take home activity: bomb64 The binary is a software bomb that if you could not provide the correct secret input, it will explode. Specifically, the binary has 6 phases where each phase expects a secret input. There is also a secret phase (hence total 7 phases). Can you figure all the expected inputs? * [**Watch this video for the detailed introduction**](https://umd.instructure.com/courses/1399733/files/folder/Recordings?preview=88279593) * **Deadlines** * **Phase 1-3**: March 4th 9:00 am (before the lab). * **Phase 4-5**: March 11th, 9:00 am (before the lab). * **Phase 6 and Secret**: March 25th, 9:00 am (before the lab). * **Note for collaboration/cheating**: All assignmemts (homework, projects, and extra-credit challenges) should be done individually. You can discuss technical details of how to use disassembler, debugger, and decompilers (e.g., ghidra), but you are not allowed to share your answers. * [Download the `bomb64` binary](https://yonghwi-kwon.github.io/class/enee459b/data/bomb64) * Download the binary ```=csh $ mkdir bomb64 $ cd bomb64 $ wget https://yonghwi-kwon.github.io/class/enee459b/data/bomb64 $ chmod +x bomb64 ``` * After you download, make sure you download the correct version by checking its `md5sum`. Run `echo "64a13b226de05c074a5a961fe73cf99b bomb64" | md5sum -c -` (including the last `-` after `-c`). ```=csh $ echo "64a13b226de05c074a5a961fe73cf99b bomb64" | md5sum -c - bomb64: OK ``` * If you see `bomb64: OK`, then you are good to go. * If you see `bomb64: FAILED` and `md5sum: WARNING: 1 computed checksum did NOT match`, you have downloaded a wrong version. If so, please contact me to get the right version. * [Extra Credit Assignments](https://hackmd.io/@yonghwikwon/SJf9uAWfa)