
Delve into Windows-focused reverse engineering with static and dynamic analysis tools, networking investigations, and a guided virtual environment, emphasizing why techniques work and when to apply them.
Explore how malware detects virtual environments, why researchers use sandboxes, and practical hardening tips to make virtual machines less detectable, including VMware config tweaks and removing shared features.
Play with few VM detection tools and understand how they work.
Make your virtual machine resilient against being detected, using WMI and Registry tricks.
Explore anti-vm and anti-debug techniques by examining sample3.exe in IDA Pro, using text and binary searches, ASCII view, and overlay handling to reveal vmware strings.
Examine debugger detection using the process environment block and the being debugged flag, and demonstrate manual bypass and phantom plugin-based hiding techniques.
Monitor process activity using Process Explorer and Process Hacker to spot malware indicators, inspect connections, threads, and disk I/O, and perform memory dumps for analysis.
Demonstrate how a crypter conceals malware by disguising a legitimate Notepad, manipulating memory, and evading static checks, using Process Explorer and dumps to uncover a backdoor.
Monitor registry and file system changes caused by unknown samples using Process Monitor, RegShot, FolderChangesView, and FileActivityWatch; learn filtering, snapshots, and real-time monitoring.
Observe how FolderChangesView and FileActivityView monitor file and folder activity, analyzing a keylogger sample and related prefetch and ETL files, including Total Commander and system PID 4 access.
Learn static analysis and practical techniques to monitor and redirect network traffic for malware analysis, using ApateDNS, FakeNet-NG, Wireshark, Burp Suite, Proxifier, and Fiddler.
Analyze the sample inside and outside Sandboxie with md5, Strings, ExeinfoPE, and Exe2Aut to reveal an AutoIt v3 executable; note Sandboxie process checks and obfuscated strings, plus an extracted image.
Analyze ransomware behavior inside a sandbox, observe registry changes and file encryption, and examine ECB mode weaknesses using Process Explorer and Windows Registry Recovery tool.
Explore static analysis of portable executable files and key PE header fields. Learn about entry point, image base, RVA/VA, sections, and use PEView and ExeInfoPE to detect packers.
Practice static analysis of a PE file by inspecting the PE header, import table, and sections to detect packing indicators such as UPX using tools like PEview.
Explore core topics in reverse engineering and malware analysis, from building a hardened environment to monitoring processes, file systems, registry, and network traffic, plus Windows PE header analysis.
The aim of this course is to cover the essentials techniques and tools for reverse engineering and malware analysis. As the title suggests, we will cover only the Windows environment in this class, since it is by far the most used and abused. We try to provide a complete picture for the starting reverse engineer but in the same time relevant for the more advanced analysts.
There are always multiple ways to do a task. We will insist more on "Why?"s instead of "How?"s since we consider that it's more important to understand WHAT we're trying to achieve and WHY.
There are no pre-requisites for this class other that a Windows virtual machine and the will to learn. All the tools discussed here are freely available online. Analyses are demonstrated on a Windows 8.1 virtual machine.
Don't worry! Neither professional programming experience nor assembly language knowledge are required to benefit from the course. If you know these already, it would be helpful when we’ll look at identifying encryption algorithms and bypass anti-virtualisation checks. The concepts will be explained clearly and additional resources will be recommended.
Some programming experience will definitely be beneficial, however, the focus will be mostly on understanding the technique, the tools and their most useful features. When needed, source code written in C or Python will be provided.
To get the most out of this course, we recommended to try all the exercises and assignments that follow the lectures and whenever a concept or idea is not fully explained or clearly understood, either reach out with questions on the Q&A section or consult online resources.