CSCI370 Software Reverse Engineering (3 semester hours)

The discipline of reverse engineering provides the ability to deduce the design of a software component and aid in the analysis of software via decomposition. The course provides a practical foundation for all areas of software security research, including forensics, penetration testing, vulnerability research, exploit development, and malware analysis. Students will be able to use tools to safely perform static and dynamic analysis of software in order to fully understand the software's functionality. Specifically, the course focuses on reverse engineering techniques and software specification recovery, reverse engineering for malware analysis, and communications. The course also provides guidelines for dealing with obfuscated code. (Prerequisites: CSCI311 and CSCI320)