courses

Final Project: Malware Analysis Report

Due Date: 2026-06-12 23:59:59

All Students

Introduction

You will perform a complete, end-to-end analysis of an unknown malware sample and produce a professional-grade analysis report. This project synthesizes all of the skills developed during the term: triage, static analysis, dynamic analysis, anti-analysis bypass, malware classification, shellcode analysis, and automated analysis via fuzzing and symbolic execution.

The sample set is described in the below table. Find your assigned family using the last digit of your university ID number. Quakbot is unassigned and available as an extra credit family — perform the same full analysis on it for additional credit.

Family Type Assigned SHA256 Link
WannaCry Ransomworm 0, 1 521acfa745e99821f387a1ab22b991a4813c2f93a0a92978f3742fc9ceac2efd bazaar.abuse.ch
MimiKatz Credential dumper 2, 3 f56b6877b0bb45a7ac23e785142fec6b7b24e5ccead9f26fb5aa294223fdd8aa bazaar.abuse.ch
Emotet Banking trojan/loader 4, 5 251037ceebfbacd419b663ebcf0e01ec80a2c46dbfc85f66492c8585b481fb8c bazaar.abuse.ch
TrickBot Banking trojan 6, 7 12898ccc6a9cf84dda412ea2bc17de58de6742ffae8392a84294fb7f95fcde27 bazaar.abuse.ch
Gootkit Rootkit/banker 8, 9 566d48c7acb52cbe910bccc646d70a026ee25924cdb5751d3526864df49c69bb bazaar.abuse.ch
Quakbot Banking trojan 29ca6ec9910beb1243a1c556c593a987dd990a0b996618443bb6c61703ee6d2a bazaar.abuse.ch

What You Must Do

Perform a thorough analysis of your assigned sample using all techniques covered in the course:

  1. Triage — file type, hash, packing detection, VirusTotal check
  2. Static analysis — PE/ELF structure, imports/exports, string extraction (including FLOSS), IDA Classroom and Cutter disassembly and decompilation
  3. Dynamic analysisstrace/ltrace, Wireshark network capture, sandbox submission (Any.run or Hybrid Analysis)
  4. Anti-analysis — identify any techniques present and document your bypass approach
  5. Classification — determine the malware family/type and justify with evidence
  6. IOC extraction — compile a complete list of indicators of compromise
  7. YARA rule — write a detection rule for your sample
  8. Shellcode (if applicable) — if the sample contains or drops shellcode, analyze it: identify the position-independence mechanism, resolve the API hashing or name-matching routine, and document what the shellcode does
  9. Automated analysis (optional, extra credit) — apply AFL++ or angr to the sample or an associated dropper; document what the automated tool found that manual analysis did not

What to Turn In

Submit via your GitLab repo in a directory called final/. The primary deliverable is final/final.md, a professional malware analysis report with the following sections:

Include all supporting screenshots within the final/ directory, referenced from the markdown.

Grading Criteria

Graduate Students (CS 592)

Additional Requirements

In addition to the full analysis above, graduate students must also complete one of the following:

Option A: Comparative Analysis

Obtain a second sample from the same malware family as your assigned sample (use MalwareBazaar or a similar public repository). Perform triage and basic static analysis on the second sample and write a 1–2 page comparison:

Submit this as final/final-592.md.

Option B: Threat Intelligence Report

Research the threat actor or campaign associated with your malware sample. Using only public sources (threat intelligence reports, academic papers, vendor blogs), write a 2–3 page threat intelligence summary covering:

Submit this as final/final-510.md with a bibliography of all sources.

Option C: Automated Analysis

Apply fuzzing and symbolic execution to a component of your assigned malware or its associated dropper/loader:

Submit this as final/final-510.md including your AFL++ crash inputs and angr solve scripts.