## 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)