Course Overview

This comprehensive course is designed to provide an in-depth understanding of x64 assembly language and the practical application of reverse engineering techniques. Whether you are a beginner eager to delve into assembly programming or an aspiring reverse engineer aiming to enhance your skills, this course offers a structured learning experience. It combines theoretical knowledge with practical exercises, empowering you to analyze, debug, and manipulate software applications effectively.

This course begins with foundational topics, such as installing essential tools like virtual machines and x64dbg, and an introduction to x64 architecture. From writing your first instruction to exploring advanced concepts like memory manipulation, arithmetic operations, register flags, and control flow using jump instructions, the course progressively builds your skills. You'll master creating and calling functions, handling arrays, and understanding stack frames. Later chapters delve into reverse engineering techniques, such as tracing passwords, patching executable files, bypassing encryption, defeating anti-debugging protections, and creating key generators. Practical applications like cracking GUIs, loop tracing, and leveraging Python for memory patching are also extensively covered.

By the end of this course, you will gain the knowledge and skills to analyze software behavior, patch executables, and perform reverse engineering tasks confidently, preparing you for real-world challenges.

What You Will Learn

  • Navigate and utilize the x64dbg debugger.
  • Analyze and alter x64 executable files to inject custom code.
  • Harness data , executable , and memory segments to expand program capabilities.
  • Develop new functions within existing applications for added functionality.
  • Understand the x64 Microsoft Calling conventions and Stack Frames.
  • Directly manipulate memory data segment.
  • Bypass string encryption.
  • Deep tracing to retrieve data and passwords.
  • Use Python to patch process memory.
  • Modify packed programs without unpacking.

Program Curriculum

  • Introduction
  • Installing Virtual Machine and x64dbg
  • Chapter 1 Quiz

  • Why Use a Debugger for Learning Assembly Language
  • x64 Instructions
  • Chapter 2 Quiz

  • Write Your First Instruction
  • Chapter 3 Quiz

  • Storing Number Constants in Memory
  • Storing String Constants in Memory
  • Creating Variables
  • Chapter 4 Quiz

  • How to Zero out a Register using XOR
  • ADD Instructions
  • Chapter 5 Quiz

  • Creating a New Template
  • Partial MOV Instructions
  • Chapter 6 Quiz

  • Basics of PUSH and POP
  • Exercise on PUSH and POP
  • Chapter 7 Quiz

  • Intro to MOV Instructions
  • Practical on MOV Instructions
  • Chapter 8 Quiz

  • XCHG Instruction
  • XCHG Memory
  • Chapter 9 Quiz

  • INC and DEC
  • NEG
  • ADD and SUB
  • Chapter 10 Quiz

  • Intro to the Register Flags
  • CF Flag
  • OF Flag
  • SF Flag
  • ZF Flag
  • Chapter 11 Quiz

  • Introduction to Bitwise Logical Operations
  • AND Operations
  • OR Operations
  • XOR Operations
  • Flags Register
  • NOT Operation
  • Chapter 12 Quiz

  • Introduction to Jumps
  • JMP Instructions
  • TEST Instructions
  • CMP Instructions
  • Conditional Jumps
  • Signed Conditional Jumps
  • Implementing If Statements
  • Implementing If-Else Statements
  • Multiple IF Tests
  • WHILE Loops
  • DO-WHILE Loops
  • Chapter 13 Quiz

  • Introduction to Arrays in x64dbg
  • Looping Through an Array
  • LEA Instructions
  • Chapter 14 Quiz

  • MUL Instructions
  • DIV Instructions
  • IMUL Instructions
  • Chapter 15 Quiz

  • The Stack
  • Creating Stackframes, CALL and RET Instructions
  • Calling Conventions
  • Simple Function Call with 4 args and No Local Variables
  • Function Call with 4 args and 4 Local Variables
  • Function Call with 5 args
  • Function Call with 6 args
  • Function Call with 7 args

  • Introduction to the Practicals
  • How to Check exe Type
  • Chapter 17 Quiz

  • Phishing for Passwords
  • Chapter 18 Quiz

  • How to Reverse a Jump and Patch the File
  • Chapter 19 Quiz

  • The Comment Tracing Method
  • Chapter 20 Quiz

  • How to Directly Access Memory to Modify Password and Patch the exe File
  • Chapter 21 Quiz

  • Enabling a Disabled Greyed-out Button
  • How to Remove a Nag Message Box
  • Patching to Accept Any Serial Key and Also to Modify the Message Box
  • Chapter 22 Quiz

  • Tracing Username
  • Tracing Password
  • Chapter 23 Quiz

  • Tracing EAX Values
  • Patching to Show the Right Message
  • Chapter 24 Quiz

  • Tracing EAX Values to Get Password
  • Patching to Show Congrats Message
  • Chapter 25 Quiz

  • Loop Tracing - Part 1
  • Loop Tracing - Part 2
  • Loop Tracing - Part 3
  • Identifying Multiple Patching Options to Always Show the Good Message
  • Chapter 26 Quiz

  • Loop Tracing Registration Number - Part 1
  • Loop Tracing Registration Number - Part 2
  • Proper Way to Patch MessageBox

  • Comment Tracking Technique - Part 1
  • Comment Tracking Technique - Part 2
  • Patching To Show the Good Message
  • Chapter 28 Quiz

  • Creating a Self-Keygen
  • Modifying MessageBox Caption using CodeCaves
  • Chapter 29 Quiz

  • Phishing for the Serial
  • Creating a Keygen Even Though No Bad Messagebox
  • Chapter 30 Quiz

  • Fast Tracing by Toggling the ZF Flag
  • Patching Multiple Jumps with Block NOPs
  • Chapter 31 Quiz

  • Installing Process Hacker
  • Behaviour Analysis
  • Defeating Anti-Debugger and Killing the 1st Nag
  • Killing the 2nd Nag and Avoiding Patching Relocation Memory
  • Killing 3rd Nag and Using Intermodular Exit API to Quit
  • Chapter 32 Quiz

  • Tracing the Algorithm for Key Generation
  • Inject Own printf Function from within an exe to Print Out Serial Key
  • Chapter 33 Quiz

  • Behaviour Analysis
  • Tracing Length of Secret Code
  • Analyzing x64 Fastcall Parameters
  • Chapter 34 Quiz

  • Behaviour Analysis
  • Bypassing Encryption by Analyzing CMP Instructions
  • Bypassing Encryption by Patching
  • Chapter 35 Quiz

  • Debug a UPX Packed Binary
  • Phish for Password Without using String Search
  • Patch Memory with Python
  • Chapter 36 Quiz

  • Call Stack Method and Identifying AOB (Array of Bytes) for Memory Scan
  • Load and Patch Memory with Python
  • Python Script Template for Multiple Patching
  • Chapter 37 Quiz

  • Where to Go for More Courses on Reverse Engineering
  • Chapter 38 Quiz
Load more modules

Instructor

Paul Chin

Paul Chin is a semi-retired college lecturer with more than 20 years’ experience in teaching computing and information technology. His interests range from reversing, coding to graphics design, apps, games development, music, health, spirituality, and well-being. In his spare time, he also plays the piano and keyboard. He enjoys teaching face-to-face and online and also loves educating and inspiring others to succeed and live the life of their dreams.

Join over 1 Million professionals from the most renowned Companies in the world!

certificate

Empower Your Learning with Our Flexible Plans

Invest in your future with our flexible subscription plans. Whether you're just starting out or looking to enhance your expertise, there's a plan tailored to meet your needs. Gain access to in-demand skills and courses for your continuous learning needs.

Monthly Plans
Annual Plans
Save 20% with our annual plans!

Pro

Ideal for continuous learning, offering video-based learning with 840+ courses and diverse Learning Paths to enhance your skills.

$ 69.00
Billed monthly or $599.00 billed annually

What is included

  • 840+ Premium Short Courses
  • 70+ Structured Learning Paths
  • Validation of Completion with all courses and learning paths
  • New Courses added every month
Early Access Offer

Pro +

Experience immersive learning with Practice Labs and CTF Challenges for comprehensive skill-building.

$ 79.00
Billed monthly or $699.00 billed annually

Everything in Pro and

  • 1400+ Practice Lab exercises with guided instructions
  • 150+ CTF Challenges with detailed walkthroughs
  • New Practice Labs and Challenges added every month

Related Courses

1 of 50