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 hacker@pwn.college

Set a register to a large value.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Basic arithmetic.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Efficient arithmetic.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Perform a modulo operation.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Perform bitshift operations.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Loading and storing values.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Loading and storing pairs.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Working with the stack.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Swapping register values.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Compute a sum from an array.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Efficiently compute a sum from an array.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

The branch instruction.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Write an average function.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

Write a fib function.

Connect with SSH

Link your SSH key, then connect with: ssh hacker@pwn.college

30-Day Scoreboard:

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

Rank Hacker Badges Score