Choose your language
Software Reverse Engineering Course
More than 2 million students worldwide

Software Reverse Engineering Course

Master the full reverse engineering workflow — from reading raw assembly to defeating obfuscation and uncovering real vulnerabilities. This course gives you the technical depth to analyze any compiled binary on Windows, Linux, or macOS. Whether you're targeting malware, firmware, or closed-source software, you'll leave with skills the industry actually demands.

Dedika for Business

What you will learn:

You'll build a solid foundation in x86 and x86-64 assembly, binary file formats, and CPU architecture before moving into hands-on static and dynamic analysis. You'll use industry-standard disassemblers, debuggers, and decompilers to reverse real binaries and recover high-level program logic. The course covers obfuscation techniques, packer analysis, and anti-debugging bypasses so hardened targets don't stop you. You'll also apply reverse engineering directly to vulnerability research, identifying memory corruption bugs, authentication flaws, and weak cryptography. Advanced modules introduce symbolic execution, binary diffing, dynamic instrumentation, and automation workflows for large-scale analysis.

How you study in practice Software Reverse Engineering Course

How you practise Software Reverse Engineering Course

For companies looking to train their team

With Dedika for Business, the course includes exercises and examples tailored to your own business and the way your company needs.

Click here

Course Content

8 Chapters • 40 LessonsDuration between 4 and 360 hours (you decide)

Chapter 1See details

Foundations of Reverse Engineering

  • Lesson 1 • Setting Up the RE Lab

    Guides students through building an isolated analysis environment with virtual machines and essential tooling. Ensures a safe, reproducible workspace for all exercises.

  • Lesson 2 • Legal and Ethical Boundaries

    Covers authorization requirements, responsible disclosure norms, and ethical conduct. Grounds students in professional standards before hands-on work begins.

  • Lesson 3 • What Is Reverse Engineering

    Defines reverse engineering, its goals, and its role in security research and software analysis. Establishes vocabulary used throughout the course.

  • Lesson 4 • Computer Architecture Essentials

    Reviews CPU registers, memory layout, and the fetch-decode-execute cycle. Provides the hardware mental model required to interpret disassembled code.

  • Lesson 5 • Binary File Formats Overview

    Introduces PE, ELF, and Mach-O structures and how loaders map them into memory. Connects file-format knowledge to later disassembly and patching tasks.

Chapter 2See details

Assembly Language for Reverse Engineers

  • Lesson 1 • x86-64 Differences and Extensions

    Highlights register expansion, RIP-relative addressing, and SIMD basics in 64-bit mode. Prepares students for modern 64-bit binaries encountered in practice.

  • Lesson 2 • x86 Instruction Set Fundamentals

    Covers data-movement, arithmetic, and logical instructions with annotated examples. Forms the reading vocabulary needed for all disassembly work ahead.

  • Lesson 3 • The Stack and Calling Conventions

    Details how functions pass arguments, preserve registers, and return values across major calling conventions. Critical for understanding decompiled output accurately.

  • Lesson 4 • Control Flow Instructions

    Explains conditional and unconditional jumps, loops, and CALL/RET mechanics. Students learn to reconstruct program logic from raw instruction sequences.

  • Lesson 5 • Recognizing High-Level Constructs

    Maps assembly patterns back to C-level constructs such as if-else, loops, and structs. Accelerates analysis by letting students read intent rather than raw opcodes.

Chapter 3See details

Static Analysis Techniques

  • Lesson 1 • Annotating and Renaming Symbols

    Covers systematic renaming of functions, variables, and data structures to build a readable model. Directly improves analysis speed and reduces cognitive load.

  • Lesson 2 • Navigating Code Graphs

    Teaches use of control-flow graphs, call graphs, and cross-references to orient analysis. Enables efficient navigation of large, unfamiliar codebases.

  • Lesson 3 • String and Import Analysis

    Extracts meaningful strings, imported APIs, and library signatures to infer program behavior. Provides rapid triage before deep code analysis begins.

  • Lesson 4 • Scripting Static Analysis Tasks

    Introduces automation of repetitive static tasks using disassembler scripting APIs. Students write scripts that rename, annotate, and extract data at scale.

  • Lesson 5 • Disassemblers and Their Internals

    Compares linear sweep and recursive descent disassembly algorithms and their trade-offs. Students choose the right tool mode for each analysis scenario.

Chapter 4See details

Dynamic Analysis and Debugging

  • Lesson 1 • Anti-Debug Detection and Bypass

    Identifies common anti-debugging tricks and demonstrates reliable bypass methods. Prepares students for hardened targets encountered in real-world analysis.

  • Lesson 2 • Tracing and Logging Execution

    Uses instruction-level tracing and API logging to capture full execution histories. Complements breakpoint analysis for non-deterministic or multi-threaded targets.

  • Lesson 3 • Debugger Architecture and Concepts

    Explains how debuggers attach to processes, handle exceptions, and control execution. Provides the conceptual model needed to use any debugger effectively.

  • Lesson 4 • Inspecting Program State

    Teaches reading registers, memory, and the call stack at runtime to verify static findings. Students correlate live state with disassembly to confirm code behavior.

  • Lesson 5 • Breakpoint Strategies

    Covers conditional, hardware, and memory-access breakpoints for targeted analysis. Efficient breakpoint placement reduces time-to-insight on complex targets.

Chapter 5See details

Decompilation and Code Recovery

  • Lesson 1 • Handling Compiler Optimizations

    Identifies inlining, loop unrolling, and strength reduction artifacts in decompiled output. Students learn to mentally undo optimizations to recover original logic.

  • Lesson 2 • Recovering Data Structures

    Reconstructs structs, unions, and class layouts from access patterns in decompiled code. Accurate structure recovery is essential for understanding object-oriented targets.

  • Lesson 3 • Decompiling Object-Oriented Code

    Addresses C++ name mangling, virtual dispatch, and RTTI to recover class hierarchies. Extends decompilation skills to the majority of modern compiled software.

  • Lesson 4 • How Decompilers Work

    Explains lifting to intermediate representation, type recovery, and pseudocode generation. Sets accurate expectations for decompiler output quality and limitations.

  • Lesson 5 • Working with Decompiler Output

    Teaches reading, correcting, and annotating decompiler pseudocode to produce accurate models. Students reconcile decompiler errors against disassembly ground truth.

Chapter 6See details

Obfuscation and Anti-Analysis Techniques

  • Lesson 1 • Virtualization-Based Obfuscation

    Introduces custom VM protectors, bytecode dispatch loops, and handler identification. Students develop a methodology for partially reversing VM-protected code.

  • Lesson 2 • String and Data Obfuscation

    Covers XOR encoding, stack-based string construction, and custom decryption routines. Students extract plaintext strings from obfuscated samples automatically and manually.

  • Lesson 3 • Automated Deobfuscation Approaches

    Applies symbolic execution and taint analysis to automate deobfuscation at scale. Bridges manual techniques with tool-assisted workflows for complex targets.

  • Lesson 4 • Code Obfuscation Taxonomy

    Catalogs junk insertion, opaque predicates, control-flow flattening, and substitution. Gives students a classification framework for identifying obfuscation on sight.

  • Lesson 5 • Packers and Protectors

    Explains runtime unpacking stubs, import reconstruction, and memory dumping workflows. Students recover the original executable from packed or protected samples.

Chapter 7See details

Vulnerability Discovery Through RE

  • Lesson 1 • Fuzzing Integration with RE Findings

    Uses RE-derived knowledge to build targeted fuzzing harnesses and seed corpora. Combines static insight with dynamic fuzzing to maximize vulnerability discovery.

  • Lesson 2 • Cryptographic Weakness Identification

    Recognizes weak algorithms, improper key handling, and custom crypto through static analysis. Students assess cryptographic security without access to source code.

  • Lesson 3 • Logic and Authentication Flaws

    Locates authentication bypasses, improper state transitions, and race conditions through code review. Demonstrates how logic errors are as dangerous as memory bugs.

  • Lesson 4 • Documenting and Reporting Vulnerabilities

    Structures vulnerability reports with reproduction steps, root-cause analysis, and impact ratings. Produces professional deliverables suitable for responsible disclosure.

  • Lesson 5 • Memory Corruption Vulnerability Patterns

    Identifies buffer overflows, use-after-free, and integer overflow patterns in disassembly. Connects low-level code patterns to their security impact.

Chapter 8See details

Advanced RE Workflows and Automation

  • Lesson 1 • Designing a Structured RE Methodology

    Establishes a repeatable triage-to-deep-dive workflow for unknown binaries. Reduces wasted effort and ensures consistent coverage across large targets.

  • Lesson 2 • Symbolic and Concolic Execution

    Applies constraint solving to explore execution paths and generate targeted inputs automatically. Extends manual analysis to path-coverage problems too large for manual review.

  • Lesson 3 • Binary Diffing and Patch Analysis

    Compares binary versions to isolate patched functions and infer fixed vulnerabilities. Essential for patch-gap analysis and regression security testing.

  • Lesson 4 • Dynamic Instrumentation Frameworks

    Uses dynamic binary instrumentation to insert analysis logic at runtime without source. Enables coverage measurement, taint tracking, and custom tracing at scale.

  • Lesson 5 • Building Reusable RE Tooling

    Designs modular scripts, plugins, and pipelines that persist beyond a single engagement. Students produce shareable tools that accelerate future analysis work.

Certification

Your valid completion certificate

This course is for you:

  • Penetration tester: wants to move beyond automated scanners into binary-level work.

  • Computer science graduate: ready to bridge academic knowledge and real-world security practice.

  • Malware analyst: needs structured methodology to dissect unfamiliar samples confidently.

  • CTF competitor: serious about cracking reverse engineering challenges at higher difficulty tiers.

  • Embedded systems developer: curious about the security posture of their own compiled firmware.

  • Career changer: transitioning from IT support into offensive security or vulnerability research.

What our students say

Your classes are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to switch platforms... I thank you for everything you do, I've already recommended you to other people...
Giulio Carlo
Giulio CarloDigital Marketing Student
I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.
Mariana Ferres
Mariana FerresPhotography Student
I like the content and the presentation style and video transcription, which speeds up the process!
Luciana Alvarenga
Luciana AlvarengaNail Design Student
The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.
André Felipe
André FelipePrompt Engineering Student

Top training programs

FAQ

Who is Dedika?

Is the certificate valid in Canada?

Are the courses free?

What is the course workload?

What are the courses like?

How do the courses work?

What is the duration of the courses?

What is the cost or price of the courses?

What is an EAD or online course and how does it work?

PDF Course