Assembly Language Programming for Reverse Engineering
Understand assembly code and modify EXE files to add new functionality using x64dbg.
What you'll learn
- Assembly Language Basics
- Reverse Engineering
- x64dbg Debugging Basics
- Modifying Programs
- Injecting Code into EXE Files
- Hollowing out an EXE File
- CPU Registers
- Basic Addition
- INC, DEC, MUL, and DIV Instructions
- Accessing Main Memory (RAM)
- The Stack
- Function Calls
- Input and Output Functions
- Code Caves
- Functions that Return a Value
- The Flags Register
- Jumps
- Compare Instructions
- Structured Programming
- Signed Operations
- And more...
This course includes:
- 15 hours of on-demand video
- 1 article
- 60 downloadable resources
- Access on mobile and TV
- Audio description in existing audio
- Certificate of completion
Course content
26 sections • 102 lectures • 15h 5m total length
Requirements
- PC
- Basic C programming knowledge is helpful but not necessary
- You will learn everything you need to know
Description
If you have been using debuggers to reverse engineer programs but wished you had a better understanding of Assembly Language, then this course is for you. We will cover enough assembly language to allow you to understand how to modify EXE files by inserting your own code or modifying existing EXE files to do things they were not originally intended to do.
Traditionally, assembly language programming is taught using assemblers like NASM or FASM. However, learning it that way does not provide the skills to understand reverse-engineered programs. There is a missing link (knowledge gap) in how to apply assembly knowledge to modify programs. This course fills that knowledge gap.
Instead of using an assembler, we will directly use the x64dbg debugger to learn assembly language. That is right — we will write our own assembly code inside the x64dbg debugger itself. You will learn Assembly Language from the ground up, starting as a complete beginner with zero prior knowledge.
We will use techniques that allow you to:
- Modify existing code
- Overwrite existing code
- Modify memory segments to insert data
- Create new functions
- Exploit code caves
- Add new functionality to existing programs
- And more...
This "black art" is not widely taught, and there are no existing courses elsewhere that coherently combine all the knowledge of assembly and reverse engineering. Most courses focus separately on Assembly or Reverse Engineering. Many reverse engineering courses do not cover the background assembly language from a software hacker's perspective. Similarly, almost all Assembly Language courses teach you how to write programs from scratch rather than how to modify existing programs to add new functionality using a debugger like x64dbg.
The knowledge you gain will give you an advantage as a security researcher, malware analyst, or student of software security. It will also benefit programmers who want to understand how programs run internally and how to extend program functionality without having access to the source code.
Go ahead and enroll now — I will see you inside!
Who this course is for:
- Security researchers and students
- Reverse engineers
- Anyone interested in learning Assembly Language from a software hacker's perspective