Abstract

This course is planned and organized to provide class attendees with practical experience on Windows C System Programming and, as expected, a practical continuation of the C Windows System Programming 1 course. Furthermore, this class explains associated Windows topics to allow students to understand how to expand their knowledge to create their own programs.

Through this class we will get covered concepts and programming techniques related to use memory mapped files used by programs to improve resource utilization. We will also show how to write DLLs and programs using Registry. Afterwards, concepts and techniques to write basic IPC programs will be taught as well how to write user code using Services mechanism. The second part of the course starts by offering a quick approach on COM (Component Object Model), Code Injection and Hooking, and Networking programming. At the final part, the training introduces techniques and concepts related to Windows Security and Exception.

This class will focus on Windows operating system and Visual Studio, exclusively.

Who Should Attend

This class should be attended by professionals interested in learning programming for reverse engineering and malware analysis on Windows as well as professionals who want to expand their current knowledge on reverse engineering and exploit development. Class attendees from different areas such as exploit development, incident response, threat hunting, reverse engineering pentesting and cyber defense will enjoy and benefit from this training.

Key Learning Objectives

This class has the following goals:

  • Explain concepts and how to write programs using mapped files.
  • Explain how to write DLLs.
  • Explain how to interact with Registry programmatically.
  • Explain how to interact with Service mechanisms programmatically.
  • Explain how to perform code injection and hooking programmatically.
  • Explain how to use different network APIs in programs.
  • Explain concepts and how to write piece of code regarding Window Security.

Prerequisite Knowledge

Students should be have:

  • Previous experience on Windows operating systems.
  • Attended the C Windows System Programming 1 course (required).

Lab Requirements

Students must prepare the following lab configuration:

  • Having VMware Workstation, Oracle VirtualBox or Microsoft Hyper-V installed on the system.
  • Two virtual machines running Windows 11 x64.
  • Visual Studio and SDK installed (with WinDbg) on both Windows machines.

Additional lab instructions will be sent to students prior the class.

Summary of Training Topics

  • Mapped Files.
  • Dynamic Linking Libraries (DLLs).
  • Registry.
  • Inter-Process Communication (IPC).
  • Services.
  • COM (Component Object Model).
  • Code Injection and Hooking.
  • Networking.
  • Security.
  • Exceptions.

Note: Topics can be added, merged or removed without prior notice!