## Introduction
This is an **advanced laboratory** course on **cybersecurity** with a focus on **software reverse engineering**. Students will learn the fundamentals of software reverse engineering to conduct software audits, identify malicious code, and find vulnerabilities in software.
* Time: **Wednesday**/**Thursday**: 5:00pm - 7:00pm
* Location: [AVW 2446](https://clarknet.eng.umd.edu/computer-labs/avw-2446) (A.V. Williams 2446)
### Staff
* Instructor: Prof. Yonghwi Kwon (yongkwon@umd.edu)
> Office Hours: Thursday 3:30pm to 5:00pm (or by appointments) (at IRB 4246/AVW 2446, DM for the location)
* TA: Emery Hamilton
* TA: Nehal Fooda
> Office Hours: By appointments
## Resources
### Ghidra
The class will use ghidra to reverse-engineer various binaries. Please use the following links to install the software.
* [Installing ghidra (Link)](https://yonghwi-kwon.github.io/class/enee459b/data/Installing_ghidra.pdf)
### Intel x64 Instruction Manual
The class will reverse-engineer various x64 binaries, which contain x86-64 instructions.
* [This Intel's manuals provide detailed explanations of all the instructions (Link).](https://yonghwi-kwon.github.io/class/enee459b/data/intel_x64_manual.zip)
### Class Virtual Machine
In addition to their own resources, students will have access to a remote host via `ssh` for completing classwork. All the code you submit for the lab assignments should be executable on the class VM (x86-64 Linux).
* [Please follow the instructions on this link to connect the class VM.](https://yongkwon.notion.site/Connecting-the-Lab-Class-VM-b1c9f473f6254218afddf13cb330618f?pvs=4)
## Grading Policy
We expect to determine grades as follows:
| Components | Percentage |
| -------- | -------- |
| Homework (Lecture homework + **Lab homework**) | 40% |
| **Lab Projects** | **40%** |
| Midterm exams | 20% |
* There are two types of homework assignments: Lecture homework and lab homework assignments.
* Essentially, the lab takes about 40~50% of the total grade.
| Lab Components | Lab Points |
| -------- | -------- |
| Project 1 | 50 pts |
| Project 2 | 50 pts |
| Lab Homework 1 | 25 pts |
| Lab Homework 2 | 15 pts |
| **Total** | **140** pts |
* Extra credits available by solving in-class challenges before its solutions discussed in the class.
* [Extra credit for bomb64 (Total 24)](https://hackmd.io/@yonghwikwon/SJf9uAWfa)