Reverse Engineering 2: Assembly
by Jason An
We'll be diving into x86_64/amd64 assembly this week. Being the dominant architecture in laptops, being able to reverse x86 executables is a crucial skill in reverse engineering, and still has many transferrable skills to reversing other architectures. For this week, we'll cover basic x86 instructions, and how to read and work with assembly.
Slides
Challenges
A set of challenges with increasing difficulty are deployed to platform.acmcyber.com to practice the concepts covered in the slides. You can filter for them on the platform by checking "rev" under "Categories", and "week 3" under "week". They are:
rev/bomb
rev/bobomb
rev/bomb2
rev/jabeglnz
rev/galfrekcehc
Resources
The following resources are great tools for some of the reversing challenges:
- objdump command: A command that lets you disassemble an executable to extract the assembly
- x86 reference: An HTML rendering of the Intel handbook containing details on every x86 instruction