The Windows PC continues to be the primary productivity device in enterprises small and large alike. Due to its ubiquity, the Windows desktop remains the favorite target for attackers to gain initial access into an organization, move laterally, and maintain their foothold. Whether you analyze malware, perform security research, conduct forensic investigations, engage in adversary simulation or prevent it, or build security solutions for Windows, understanding how Windows works internally is critical to be effective at your task. This unique course takes you through a journey of Windows internals as it applies to user-mode execution i.e. applications and services. Everything is examined through the lens of security both from an offense and defense perspective. For each topic that is covered, components, architecture, data structures, debugger commands, and APIs are discussed with the hands-on labs helping with observing things in action and thus solidifying the understanding of the topic. This training course focuses on security-related topics and does not cover topics related to Win32 application development. Hands-on Labs In the hands-on lab exercises, students dig into the user and kernel mode components of Windows using debugger (WinDBG/KD) commands and learn how to interpret their output to understand the behind-the-scenes operations of the system. Students also run various custom tools that poke at certain security features of Windows and observe their behavior. Hands-on lab exercises are performed on pre-captured memory dumps and on a live VM running the latest version of Windows 10 64-bit.
Understand the key principles behind the design and implementation of the Windows operating system. Understand the components in the Windows operating system and the functionality they provide. Understand the functionality provided by Windows that make applications and services tick. Understand the facilities in the system that are commonly abused by malware. Understand the security mitigations available in Windows that raise the bar against exploits and malware. Be able to investigate system data structures using the debugger and interpret the output of debugger commands. Be able to navigate between different data structures using the debugger. Be more effective at analyzing malware on Windows systems. Be more effective at forensic analysis of Windows systems.