This repository contains some personal notes on reverse engineering and binary analysis for ARM-based embedded systems (mainly Cortex M).
WARNING: This repository is a work in progress. Any information found here may or may not be reliably vetted. Any suggestions or improvements are welcome, but the official ARM documentation should be your go to source of information.
- Compilation: The GCC compiler and compilation process
- Disassembly: Binary disassembly
- ELF Anatomy: Totally SFW ELF anatomy lesson
- ASM to Machine Code: ARM ASM to machine code and back again
- ARM Assembly Primer: ARM THUMB(-2) assembly basics
- Exception/Stack Handling: ARMv8-M exception handling
- ARM Initialisation: Cortex-M image initialisation
- GNU Inline Functions: GNU ARM inline assembly syntax
img
: Image files used in the documentationsamples
: Pre-built ARMv8-M binary and ELF images for testing/examplesscripts
: Useful bash scriptssrc
: Source files used for demonstration purposes in this guide
Copyright (C) 2020 Kevin Townsend. All rights reserved.
TODO: Review appropriate license options.