Course Overview
This course is aimed at people interested in software security, reverse engineering, and low-level software. Students explore the foundations of software security, including important vulnerabilities and the attacks that exploit them — such as buffer overflows, SQL injection, and session hijacking — and the defenses that prevent or mitigate them, including advanced testing and program-analysis techniques.
Expected Background
- Basic programming and systematic debugging skills.
- Working proficiency in C (pointers, arrays, loops, functions, memory behavior).
- Comfort with Unix/Linux, the shell, and
gdbor comparable tools. - Familiarity with Intel x86/IA-32 assembly and basic computer architecture.
- Basic web/networking concepts (HTML, HTTP, TCP, client/server).
Prerequisites: CSC 231 or CSC 242; and CSC 302.
Textbook & Tools
Required textbook: None. Reference books:
- Bryant & O’Hallaron, Computer Systems: A Programmer’s Perspective, 3rd Ed.
- Kaspersky, Hacker Disassembling Uncovered, 2nd Ed.
- Eilam, Reversing: Secrets of Reverse Engineering, 1st Ed.
Scripting in Python / pwntools. Hands-on work uses the WolfCTF browser-terminal environment.
Slides & Schedule
| # | Date | Topic | Slides | Supporting Materials |
|---|---|---|---|---|
| 1 | Aug 25, 2026 | Introduction; software-security model; the AI moment in security; classic overflow | Class01.pdf | Syllabus (PDF) · Lecture video: Introduction |
| 2 | Sep 1, 2026 | Software-security model (CIA, vulnerabilities); IA-32/x86 registers; byte ordering | Class02.pdf | Lecture video: IA-32 registers & byte ordering · little_endian.c · WolfCTF portal guide |
| 3 | Sep 3, 2026 | x86 assembly (mov, arithmetic, cmp/jmp); the stack (push/pop, call/ret, frames); gdb workflow | Class03.pdf | Lecture video: x86 assembly · asmreview.asm · asmreview2.asm · WolfCTF portal guide · Quiz 1 next class. |
| 4 | Sep 8, 2026 | Calling conventions (cdecl); stack frames; prologue / epilogue in detail; frame construction in gdb | Class04.pdf | Lecture video: stack & stack frame · stack_frame.c (the StackFrame.c on the slides) · stack.asm · stack.py · Quiz 1 (first 12 min: registers, byte order, reading x86) |
| 5 | Sep 10, 2026 | Reading compiler-generated code; frame inspection in gdb (info frame, bt, finish); hands-on binary analysis | Class05.pdf | Lecture video: stack frame · stack_frame.c · stack.asm · stack.py · Bring your laptop; WolfCTF browser terminal for the in-class GDB practice · Lab 1 is live — due Thu Sep 24, 11:59 PM Eastern. Report & D2L guide. |
| Lab 1 | Sep 11, 2026 | Stack and Stack Frame — GDB + GEF analysis in WolfCTF | Lab 1 handout | Open Lab 1 in WolfCTF · Required report & D2L guide Due Thu Sep 24, 2026, 11:59 PM Eastern · 5 points · Individual PDF report |
| 6 | Sep 15, 2026 | System calls: user/kernel boundary; Linux i386 ABI; write and execve; tracing with strace and GDB + GEF | Class06.pdf | Editable slides (PPTX) · Week 4 classroom code · Build & GEF instructions Run the demos in your WolfCTF terminal. Adapted from ss2024 Chapter 6. Continue Lab 1; due Sep 24. |
| 7 | Sep 17, 2026 | Shellcode: position-independent code; jump–call–pop; extracting bytes; memory permissions and GEF tracing | Class07.pdf | Editable slides (PPTX) · Week 4 classroom code · Build & GEF instructions Run the demos in your WolfCTF terminal. Adapted from ss2024 Chapter 6. Continue Lab 1; due Sep 24. |
Assignments & Deadlines
| Assignment | Released | Due (Eastern Time) | Points | Materials |
|---|---|---|---|---|
| Lab 1 — Stack and Stack Frame Individual GDB + GEF analysis in WolfCTF | Sep 11, 2026 | Thu Sep 24, 2026 11:59 PM | 5 | Instructions Handout PDF Open lab |
Start here: Sign in to WolfCTF and open the browser terminal.
Answer Q1–Q5 with evidence from your own session. Submit Lastname_Firstname_Lab1.pdf through D2L.
Read before writing: Report structure, page format, screenshots/diagrams, rubric, and D2L instructions · Download report outline.
Tutorials & Supporting Materials
- Lecture videos are linked per class in the schedule above (MoozLab).
- Example code from each class is linked in its schedule row.
- WolfCTF portal guide — account setup, browser terminal, saving evidence, and troubleshooting. Portal: portal.wolfctf.com.
- How to write a lab report and submit to D2L — required sections, formatting, screenshots, diagrams, grading, and submission confirmation.
- Lab 1 report outline · Lab 1 instructions · lab1.c.