Reverse Engineering
Learn to make the most of static reverse engineering tools to understand different Windows and x86/x64 targets (malware, vulnerability research targets, obfuscated code, arbitrary software).
User, Kernel, Obfuscation, Rust Coding & More
Important Information
Introductory Theory
x86/x64 Basics
Tooling Overview
Windows ABI & API Usage
Brief Look at Ghidra
X86/X64 Reversing Challenge
Windows APIs Continued
X86/X64 Reversing Solution
Binary Reversing Challenge
Quick Look at Ntoskrnl
Binary Reversing Challenge Solution
PE32/PE32+ Format
Loader Target Exe
Writing a Loader in Rust
Writing a Loader in Rust Pt.2
Writing a Loader in Rust Pt.3
C++ Concepts: Classes, VTables & More
C++ Reversing Challenge
C++ Reversing Challenge Solution
Reversing Rust Binaries
Assignment: Reversing Rust Challenge
User-Land Binaries Theory
Analyzing a Service Challenge: Solution
Analyzing a Service: DLL
Kernel Code Theory & Driver Challenge
Driver Challenge 1: Analyzing a Real Driver
Driver Challenge 1: Solution pt.1
Driver Challenge 1: Solution pt.2
Writing a Kernel Driver
Writing a Kernel Driver Challenge Notes
Writing a Kernel Driver: Walkthrough pt.1
Writing a Kernel Driver: Walkthrough pt.2
Writing a Kernel Driver: Walkthrough pt.3
Writing a Kernel Driver: Walkthrough pt.4
Writing a Kernel Driver: Walkthrough pt.5
Kernel Malware Reversing
Kernel Malware Reversing: Walkthrough pt.1
Kernel Malware Reversing: Walkthrough pt.2
Kernel Malware Reversing: Walkthrough pt.3
Vulnerable Kernel Driver Reversing
Vulnerable Kernel Driver Reversing: Walkthrough
Signed Vulnerable Driver Sample
Obfuscation Theory
Obfuscated Malware Sample
Reversing Obfuscated Ransomware from Scratch pt.1 (Initial Analysis)
Reversing Obfuscated Ransomware from Scratch pt.2 (Patching Opaque Predicates)
Reversing Obfuscated Ransomware from Scratch pt.3 (Identifying Packed Code)
Reversing Obfuscated Ransomware from Scratch pt.4 (Unpacking Code in Rust)
Reversing Obfuscated Ransomware from Scratch pt.5 (Unpacking Theory: Emulation, Hypervisors, Debuggers)
Reversing Obfuscated Ransomware from Scratch pt.6 (Unpacking via Emulation)
Reversing Obfuscated Ransomware from Scratch pt.7 (Analyzing Unpacked Code + Identifying Next Steps)
Loader Source Code
Reversing Obfuscated Ransomware from Scratch pt.8 (Extracting Embedded PE & Applying Header Fixups)
PE Fixups Source Code
Reversing Obfuscated Ransomware from Scratch pt.9 (Scripting for Further Deobfuscation & Finale)
Deobfuscation Script
Messing with ABIs in Rust Sample
Messing with ABIs in Rust
Other Architectures and Platforms
Additional content survey
Here's a tiny sample of the learnings you'll achieve throughout this course
Understand low-level x86-64 & OS internals (CPU Page Tables, UEFI/BIOS Boot)
Write Rust PE32/32+ loaders & understand the format of Windows binaries
Reverse engineer both User & Kernel targets, including malware and vulnerable software
Reverse both C & C++ binaries, recreating structures, analyzing vtables and working with Ghidra to turn default decompilation output into meaningful code with accurate types & names
Analyze assembly to modify incorrect decompilation from output of tools like Ghidra or IDA/Binary Ninja
View what some of our previous students thought of our course
I am currently going through the course and I have to say that the course martials are up to date, allot of hands on and walkthroughs in this course and that what I like about it. also there is allot of Kernel mode material in this course and thi...
Read MoreI am currently going through the course and I have to say that the course martials are up to date, allot of hands on and walkthroughs in this course and that what I like about it. also there is allot of Kernel mode material in this course and this is what makes this course distinctive from other course out there!
Read Less