Introduction to ARM


CSE 598 AVR - Fall 2024.

Unlike amd64, ARM assembly (aarch64) is a RISC architecture with a small number of fast instructions. This module provides a short crash-course to get familiar with some of the key differences in aarch64. Drawing directly from the "Assembly Crash Course" module where possible to highlight differences.


The dojo box CPU is amd64 architecture. Working with a non-native architecture has its own unique challenges.

The simplest way to interact with these challenges is with a short pwntools script. A template you can use is shown below.

#!/usr/bin/env python3
from pwn import *
context.arch = 'aarch64'

asm_bytes = asm("""
  PUT YOUR AARCH64 ASSEMBLY HERE
  """)

with process('/challenge/run') as p:
  p.send(asm_bytes)
  p.stdin.close()
  p.interactive()

Set a register value.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Set a register to a large value.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Basic arithmetic.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Efficient arithmetic.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Perform a modulo operation.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Perform bitshift operations.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Loading and storing values.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Loading and storing pairs.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Working with the stack.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Swapping register values.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Compute a sum from an array.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Efficiently compute a sum from an array.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

The branch instruction.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Write an average function.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

Write a fib function.

Connect with SSH

Link your SSH key, then connect with: ssh [email protected]

30-Day Scoreboard:

This scoreboard reflects solves for challenges in this module after the module launched in this dojo.

Rank Hacker Badges Score