Instructors: John McIntosh
Dates: June 23 to 26 2025
Capacity: 30
Every day, a new CVE (Common Vulnerabilities and Exposure) is published or a new blog post comes out
detailing the latest and greatest vulnerability. Often, we know about a vulnerability but feel like we
don't have the skills or time to understand its root cause. What if you could change that? What if you
could learn a skill that would lead you step by step towards understanding modern vulnerabilities? If
you feel like you are always "in the dark" about the latest CVE and want to take a step towards the
light (understanding), this course is for you.
Binary patch diffing is an essential skill for reverse engineering, vulnerability research, and malware
analysis. The process helps a researcher identify the security-relevant code changes of a patched binary
and helps highlight the underlying security issues. The process is not magic, and with a little
guidance, a new researcher can learn to identify and understand modern vulnerabilities.
This fast-paced training will teach you how to reverse engineer the latest CVEs. We will start with a
simple CVE description, progress towards identifying a vulnerability, and eventually gain a complete
understanding of the underlying vulnerability and identify its root cause. You will analyze real-world
CVEs, dive into the patch diffing process, and learn a step-by-step approach to modern patch diffing
using open-source tools. The short topical lessons and hands-on exercises will have you patch diffing
recent CVEs and their corresponding binaries across on the Windows platform. You will learn about best
practices, how to avoid patch diffing pitfalls, and get useful scripts to enhance your analysis
workflow. After you discover the vulnerability via patch diffing, you will then learn how to use both
static and dynamic techniques to approach exploit development to exercise the vulnerability.
Take the first step into the light. Sign up for this course. Learn the skill of patch diffing to go from
knowing about a vulnerability to actually understanding it.
The goal of this course is to teach participants how to use patch diffing techniques to analyze
real-world vulnerabilities in Windows. Students will use open-source tools like the Ghidra SRE framework
to reverse engineer the latest CVEs. The course will help you discover that you already have the
information and tools needed to get started today. This course will help students develop the confidence
and competence to reverse engineer and discover complex vulnerabilities.
This course focuses on the three fundamental pillars of vulnerability research via a CVE-guided
approach:
1. Vulnerability Discovery
2. Vulnerability Analysis
3. Exploit Development
By following a step-by-step (CVE) methodology, we uncover vulnerabilities and treat CVEs as north stars
to navigate and understand security vulnerabilities.
The best part about the training is that there is no secret ingredient. Using free tools (Ghidra SRE
framework, BinDiff, and more) and leveraging readily available CVE information, you will learn how to
discover and analyze complex vulnerabilities. The course, via hands-on exercises and lectures that cover
real-world CVEs challenges, provides students with practical reverse engineering exercises to help them
learn and practice the concepts and techniques. Participants will discover that you can leverage CVEs as
a guide for reverse engineering and vulnerability research.
Patch Diffing and Root Cause Analysis of real-world CVEs
Combined Static and Dynamic Analysis
Building Exploit Proofs of Concept (POCs)
Learn the tools of the trade. Understand how to use modern SRE tooling to dig into CVEs and discover security vulnerabilities. Leverage patch diffing and reverse engineering to pinpoint areas of insecure code.
Introduction
Reverse Engineering Windows Binaries
Patch Diffing
Vulnerability Analysis - Static
Learn how to go from a simple CVE description to finding the underlying root cause of the vulnerability. This day will provide the background on how to research CVEs, find the binaries of interest, and reverse engineer the vulnerabilities using both static and dynamic analysis.
Setting up the Dynamic Environment
Vulnerability Classes
Hands on guided reverse engineering:
Vulnerability Analysis - Dynamic
Reverse engineer several CVEs in Windows services. Learn how to create POC exploits that will trigger the vulnerable path for each CVE. Leverage Dynamic Analysis to understand how to direct the control flow to the vulnerable path.
Last, we will conclude with a final project. The final project is designed to cement the concepts learned throughout the course and prepares a researcher for learning outside of class. It will consist of several patch diffing challenges allowing you to flex the skills developed during the course.
Final Project
Windows: Zero to Hero
Grab Bag CVEs (time permitting)
This course is rated intermediate, but suitable for beginners with heart.
No prior experience with Ghidra is required.
John McIntosh @clearbluejar, is a security researcher at Clearseclabs. His area of expertise lies within reverse engineering and offensive security, where he demonstrates proficiency in binary analysis, patch diffing, and vulnerability discovery. Notably, John has developed multiple open-source security tools for vulnerability research, all of which are accessible on his GitHub page. Additionally, his website, https://clearbluejar.github.io/, features detailed write-ups on reversing recent CVEs and building RE tooling with Ghidra. Boasting over a decade of experience in offensive security, John is a distinguished presenter and educator at prominent security conferences internationally. He maintains a fervent commitment to sharing his latest research, acquiring fresh perspectives on binary analysis, and engaging in collaborative efforts with fellow security enthusiasts.
Click here to register.