CS/CYS 496 Software Reverse Engineering (Spring 2026)

This course is designed to provide students with an understanding of Software Reverse Engineering (SRE) techniques, emphasizing hands-on lab exercises. The discipline of reverse engineering plays a crucial role in deducing the design of software components, understanding how software works, recovering software specifications, discovering data used by software, and aiding in the analysis of software through disassembly and decompilation. This skill is particularly essential in the cyber operations field for tasks such as malware analysis and auditing closed- source software.

Instructor:

Chad Williams

Term: Spring 2026


Credits: 3

Extended description:

Course learning outcomes
Program objectives and program learning outcomes are supported by the following course learning outcomes achieved by students upon a successful completion of this course students will have the ability to:

  • CLO-1: Use static and dynamic analysis tools, including fuzzing, to safely identify vulnerabilities and fully understand the functionality of software of unknown origin and obfuscated malware in a controlled environment.
  • CLO-2: Recognize and interpret common C programming constructs when analyzing software in assembly language.
  • CLO-3: Safely patch and modify binary software to alter its functionality without access to source code.
  • CLO-4: Reverse engineer network traffic to document and uncover custom communications protocols.
  • CLO-5: Document reverse engineering findings of software of unknown origin and malware in a clear and comprehensive manner.