Raspberry Pi Bare-Metal


Low Level Learning

EORccS Rn, Rm, Op2 Logically Exclusive OR Op2 with Rm and store the result in Rn. EOR R0,R0,#4

EOR keeps dependencies, so it can’t be executed out of order on a CPU that can OoO execute the mov from xzr

arm-none-eabi-as start.s -o start.o
arm-none-eabi-ld start.o -o kernel.elf
arm-none-eabi-objcopy kernel.elf -O binary kernel7.img
default:
  arm-none-eabi-as -o start.o start.s
  arm-none-eabi-gcc -c -o main.o main.c -I ./include
  arm-none-eabi-gcc -T linker.ld -o kernel7.elf start.o main.o -ffreestanding -O2 -nostdlib -lgcc
  arm-none-eabi-objcopy kernel7.elf -O binary kernel7.img

github.com/lowlevellearning/raspberry-pi-baremetal
github.com/lowlevellearning/raspberry-pi-baremetal-c

The TWO Programming Languages EVERY Beginner Should Start With (to learn how to code fast), C and Python
Baremetal Assembly Raspberry Pi Programming | Direct to Register Blink LED, No Operating System
Raspberry Pi C/C++ Baremetal Programming | Using C to Direct-Register Control Your Raspberry Pi
BAREMETAL RUST Runs on EVERYTHING, Including the Raspberry Pi | Embedded Rust Tutorial


Azeria Labs

LinkedIn

ARM Assembly Basics

  1. Writing ARM Assembly
  2. ARM Data Types and Registers
  3. ARM Instruction set
  4. Memory Instructions: Load and Store
  5. Load and Store Multiple
  6. Conditional Execution and Branching
  7. Stack and Functions
  8. Assembly Basics Cheatsheet

INTRODUCTION TO ARM ASSEMBLY BASICS
DATA TYPES
ARM & THUMB
MEMORY INSTRUCTIONS: LOAD AND STORE
LOAD/STORE MULTIPLE
CONDITIONAL EXECUTION
STACK AND FUNCTIONS/a>
ARM ASSEMBLY BASICS CHEATSHEET

ARM Exploit Development

  1. Writing ARM Shellcode
  2. TCP Bind Shell (ARM 32-bit)
  3. TCP Reverse Shell (ARM 32-bit)
  4. Process Memory and Memory Corruption
  5. Stack Overflows (Arm32)
  6. Return Oriented Programming (Arm32)
  7. Stack Overflow Challenges
  8. Process Continuation Shellcode
  9. Introduction to Glibc Heap (malloc)
  10. Introduction to Glibc Heap (free, bins)
  11. Heap Exploit Development (Part 1)
  12. Heap Overflows and iOS Kernel (Part 2)
  13. Grooming the iOS Kernel Heap (Part 3)

INTRODUCTION TO WRITING ARM SHELLCODE

Leave a Reply

Your email address will not be published. Required fields are marked *