This tutorial is generally for people who want to learn the basics of ARM assembly. Especially for those of you who are interested in exploit writing on the ARM platform. You might have already noticed that ARM processors are everywhere around you. When I look around me, I can count far more devices that feature an ARM processor in my house than Intel processors. This includes phones, routers, and not to forget the IoT devices that seem to explode in sales these days. That said, the ARM processor has become one of the most widespread CPU cores in the world. Which brings us to the fact that like PCs, IoT devices are susceptible to improper input validation abuse such as buffer overflows. Given the widespread usage of ARM based devices and the potential for misuse, attacks on these devices have become much more common.
Overview
Syllabus
- Part 1: Introduction to ARM Assembly
- Part 2: Data Types Registers
- Part 3: ARM Instruction Set
- Part 4: Memory Instructions: Loading and Storing Data
- Part 5: Load and Store Multiple
- Part 6: Conditional Execution and Branching
- Part 7: Stack and Functions