CSC 472 Software Security

2026-Fall Course Website

Course Overview

Instructor: Si Chen · schen@wcupa.edu

Meeting: Tuesday / Thursday, 2:00 – 3:15 PM · 25 University Ave., Room 158

Term: Fall 2026 (Aug 24 – Dec 12, 2026) · CRN: 34672

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

Prerequisites: CSC 231 or CSC 242; and CSC 302.

Textbook & Tools

Required textbook: None. Reference books:

Scripting in Python / pwntools. Hands-on work uses the WolfCTF browser-terminal environment.

Slides & Schedule

#DateTopicSlidesSupporting Materials
1Aug 25, 2026Introduction; software-security model; the AI moment in security; classic overflow Class01.pdf Syllabus (PDF) · Lecture video: Introduction
2Sep 1, 2026Software-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
3Sep 3, 2026x86 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.
4Sep 8, 2026Calling 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)
5Sep 10, 2026Reading 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 1Sep 11, 2026Stack 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
6Sep 15, 2026System 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.
7Sep 17, 2026Shellcode: 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

AssignmentReleasedDue (Eastern Time)PointsMaterials
Lab 1 — Stack and Stack Frame
Individual GDB + GEF analysis in WolfCTF
Sep 11, 2026Thu 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.

The September 24 deadline and WolfCTF instructions supersede earlier Lab 1 handouts/slides. Working in WolfCTF does not submit a report to D2L.

Tutorials & Supporting Materials