Interested in .NET&Java platform,CLR and JVM internal,C# ,JIT compiler,software architecture design,windows kernel/CLR debugging skills,SQL Server 、MySQL,Database architecture、Query Optimization、troubleshooting and high availability, parallel/multi-threaing programming,distributed computing,cloud computing ,Apache Storm, Spark, Flink,Machine Learning, Deep Learning ,TensorFlow and all AI related things.
This course takes a deep dive into the internals of the Windows kernel from a security perspective. Attendees learn about behind the scenes working of various components of the windows kernel with emphasis on internal algorithms, data structures and debugger usage. Every topic in this course is accompanied by hands-on labs that involve extensive use of the kernel debugger (WinDBG/KD) with emphasis on interpreting the debugger output and using this information to understand the state and health of the system. Attendees also analyze pre-captured memory dumps to identify kernel rootkits and dissect rootkit behavior.
Learning Objectives
Understand the major components in the Windows Kernel and the functionality they provide.
Understand the key principles behind the design and implementation of the Windows kernel.
Understand the internal workings of the kernel and how to peek into it using the debugger.
Be able to investigate system data structures using kernel debugger extension commands.
Be able to interpret the output of debugger commands and correlate them to the state of the system.
Be able to navigate between different data structures in the kernel, using debugger commands.
Be able to locate indicators of compromise while hunting for kernel mode malware.
Understand how kernel mode rootkits interact with the system.
Prerequisites
Attendees must have a solid understanding of operating system concepts and have a working knowledge of Windows. This course does not require you to have any programming knowledge.
Topics
Day 1
Architectural Overview: Privilege rings, HAL, kernel, executive, device drivers, Win32k.sys, NTDLL, system process, user and kernel threads.
Hardware Support: CPU registers, segment registers, global descriptor table (GDT), interrupt descriptor table (IDT), task state segment (TSS), call gates, local descriptor table (LDT), model specific registers (MSR).
Day 2
Critical Data Structures: Process and thread data structures (EPROCESS, ETHREAD, KPROCESS, KTHREAD), KSHARED_USER_DATA, kernel process and module list, processor control region (KPCR).
System Mechanisms: Interrupt request levels (IRQL), interrupts, traps, system calls, service descriptor tables, Native API calls (Zw vs Nt), read/write probes, exception handling, kernel-user callbacks.
Day 3
Kernel Execution Environment: Interrupt service routines (ISR), deferred procedure calls (DPC), asynchronous procedure calls (APC), system threads, work items, worker threads, timers.
Most security software on Windows run in kernel mode. This course starts with the basics of kernel mode software development and debugging and then progressively dives into the APIs, filtering mechanisms and advanced programming techniques required to implement kernel mode security software. Every topic in the course is accompanied by hands-on labs that involve extensive coding and debugging of kernel mode software to understand the programming model, the interfaces (APIs), their use cases and common pitfalls. This is a security focused course and does NOT cover development of drivers for hardware devices like PCI and USB, Bluetooth. It does NOT cover Kernel Mode Driver Framework (KMDF).
Course Objectives
Get a jump start into Windows kernel mode software development and debugging.
Be able to perform common programming tasks required by kernel mode drivers.
Understand the intricacies of kernel mode software development.
Be able to use different filtering mechanisms provided by Windows to intercept and modify operations in the system.
Be able to use kernel mode APIs to develop reasonably complex security functionality.
Be able to use the debugger effectively to perform live debugging of kernel mode drivers.
Be able to use tools other than the debugger to debug issues with kernel mode software.
Understand how kernel mode rootkits and commercial anti-malware implement their functionality.
Prerequisites
Attendees must be proficient in C/C++ programming. In addition, attendees are expected to have good working knowledge of the windows kernel. CodeMachine's Windows Internals for Security Researchers course provides the Windows kernel knowledge required to attend this course.
Topics
Day 1
Driver Development Environment: Driver development with Visual Studio, Windows driver kit (WDK), WDK headers and libraries, WDK sample code, driver installation and updating, VM debug environment, debug prints
Advanced Driver Programming: Locking and mapping memory, building custom I/O requests, object attributes, object reference counting, rundown protection, executive callbacks and capturing stack back-traces.
Day 4
IRP Filter Drivers: Driver layering, device attachment and detachment, pre-filtering and post-filtering, I/O request processing, filter and control device objects.
Kernel Callbacks: Image load notifications, process and thread creation and deletion callbacks, object callbacks, image verification callbacks, session callbacks, PnP and power callbacks.
Day 5
Complex Filtering: Registry callbacks, file system mini-filter drivers (FltMgr filters), early load anti-malware (ELAM) drivers.
To achieve maximum stealth and obtain unabated access to the system, rootkits execute in kernel mode. This course focuses on the kernel interfaces (APIs), data structures and mechanisms that are exploited by rootkits to achieve their goals at every stage of their execution. Kernel security enhancements that have been progressively added from Windows 7 to the latest version of Windows are discussed along with some circumvention techniques. Every topic in this course is accompanied by hands-on labs where attendees get to implement key components of a rootkit and test them on 64-bit Windows systems to reinforce their understanding of the theory. By learning how rootkits actually work, attendees are able to detect and defend against them.
Course Objectives
Understand vulnerabilities in the Windows kernel and device drivers.
Be able to write and modify kernel mode exploits.
Understand the security enhancements that have been added to recent versions of Windows.
Be able to bypass some of the security mitigations in recent versions of Windows.
Understand the post-exploitation steps performed by kernel mode rootkits.
Understand the techniques used by popular real world rootkits.
Understand how rootkits hide their presence in the system.
Understand how rootkits communicate with command and control (C&C) servers.
Be able to identify malicious behavior and defend against rootkits.
Prerequisites
Attendees must be proficient in C/C++ programming. In addition, attendees are expected to have good understanding of Windows kernel internals and APIs. CodeMachine's Windows Internals for Security Researchers and Windows Kernel and Filter Driver Development courses provide the Windows kernel knowledge required to attend this course.
Topics
Day 1
Kernel Architecture Overview: Kernel components, x86 and x64 differences, kernel virtual address space, kernel pools, object layout, tokens and privileges, Native APIs, system calls.
Kernel Vulnerabilities: Types of kernel vulnerabilities, arbitrary memory writes, race conditions, type confusion, pool overflows and stack overflows.
This course is targeted at kernel software developers, support engineers and software QA engineers. It starts with the building blocks required to do effective kernel debugging like kernel internals concepts, key data structures used by drivers and debugger commands to examine the state and health of the system. It then dives into various techniques and strategies that can be applied to perform triaging, fault isolation, analysis and root causing of crashes and hangs caused by kernel mode drivers. Every topic in the course is accompanied by hands-on labs that involve extensive usage of the Debugging Tools for Windows (WinDBG) as well as other tools that ship with the WDK. These hands-on labs provide attendees with real life experience of debugging kernel mode issues.
Course Objectives
Understand the internal workings of the kernel and how to peer into it using the debugger.
Understand the kernel data structures that are used by drivers and how to navigate between them.
Be able to use the kernel debugger commands and extensions and interpret debugger output.
Be able to apply the knowledge of kernel internals and debugger commands to identify. symptoms of system failure/instability, perform bug triaging and perform fault isolation.
Be able to analyze and root cause problems down to a code change in the driver.
Be able to debug hard-to-reproduce hangs and crashes.
Prerequisites
Attendees must be able to read C/C++ source code. In addition, attendees are expected to have basic working level knowledge of WinDBG and should be familiar with the Windows device driver (WDK) APIs.
Topics
Day 1
Kernel Architecture Overview: Kernel, executive, HAL, drivers, processes and threads, system & system idle process, process and thread data structures, system calls, processor control region (KPCR).
Debugging Deadlocks and Hangs: Causes of hangs, classic deadlock, deadlock debugging, driver power state failure, I/O request stalls, pool depletion, SysPTE depletion.
Day 5
Advanced Analysis Techniques: Debugging strategies, root cause analysis, stack patterns, invalid memory access, pool corruption patterns, structure corruption, mapping data structures to modules, code flow analysis.
Debugging Tools: Driver verifier, special pool, unloaded modules, run time stack capture, Gflags, object reference tracking, pool tag breakpoints, PTE tracking, checked builds.
Delivery
All of our courses are available for private on-site delivery, worldwide. Each attendee must bring their own system to perform the hands-on labs. System setup instructions are here. We are happy to customize course contents based on your unique needs. Please contact us for course pricing information.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器