May 31, 2024  
2023-2024 Course Catalog 
    
2023-2024 Course Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

CFI 2201 - Malware Analysis Fundamentals & Malicious Code Analysis

Credits: 3
Hours/Week: Lecture 2 Lab 2
Internship hours per week 0
Course Description: This course presents the key tools and techniques malware analysts use to examine malicious programs by exploring Windows malware in two phases. Behavioral analysis focuses on the program’s interactions with its environment, such as the registry, the network, and the file system. Code analysis focuses on the specimen’s code and makes use of disassembler and debugger tools such as IDA Pro and OllyDbg. This course covers how to patch malicious executables to change their functionality during the analysis without recompiling them and redirect network traffic in the lab to better interact with malware.
MnTC Goals
None

Prerequisite(s): CFI 1065  and CFI 1205  with grades of C or higher or instructor consent.
Corequisite(s): None
Recommendation: None

Major Content
  1. Configuring the malware analysis lab
  2. x86 Intel assembly language primer
  3. Handling anti-disassembling techniques
  4. Identifying key x86 assembly logic structures with a disassembler
  5. Patterns of common malware characteristics at the Windows API level (DLL injection, hooking, keylogging, sniffing, etc.)
  6. Assembling the toolkit for malware forensics
  7. Performing behavioral analysis of malicious Windows executables
  8. Performing static and dynamic code analysis of malicious Windows executables
  9. Additional learning resources for reverse-engineering malware
  10. Reinforcing the dynamic analysis concepts learned in 610.1
  11. Patching compiled malicious Windows executables
  12. Analyzing packed malicious executable files
  13. Intercepting network connections in the malware lab
  14. Analyzing Web browser malware implemented in JavaScript and Flash
  15. Core concepts for reverse-engineering malware at the code level

Learning Outcomes
At the end of this course, students will be able to:

  1. analyze encrypted binaries.
  2. discover heap overflows.
  3. discover stack overflows.
  4. explain hashing functions.
  5. identify malware communication channels.
  6. monitor registry changes.
  7. analyze the use of Thwart anti-debugger code.
  8. explain System vs. Code Level reversing.
  9. explain conditional branching statements.
  10. demonstrate uses of IDA Pro with hostile code.
  11. identify malware variables.

Minnesota Transfer Curriculum (MnTC): Goals and Competencies
Competency Goals (MnTC Goals 1-6)
None
Theme Goals (MnTC Goals 7-10)
None


Courses and Registration



Add to Portfolio (opens a new window)