Skip to content

Latest commit

 

History

History
1125 lines (1030 loc) · 65.9 KB

assembly.arm.md

File metadata and controls

1125 lines (1030 loc) · 65.9 KB

C++ links: ARM and AArch64 Assembly

See also: Computer Architecture -- recommended background (which makes the following significantly more approachable) includes an undergraduate-level course.

Contents


Readings

Readings: Binary Analysis

See also: Software: Binary Analysis

Concurrency

Formalization, Specification, Verification

Instruction Set Architecture

Shellcode

A-profile

M-profile

Performance

Performance: Numerics

Security

Memory Tagging Extension (MTE)

Pointer Authentication

TrustZone

Simulation

  • Simulation of ARM and x86 microprocessors using in-order and out-of-order CPU models with Gem5 simulator
  • Simulation of 64-bit ARM Systems: Implementation, Validation and Design Space Exploration

Virtualization


References

Intrinsics & SIMD

NEON

Scalable Vector Extension (SVE)

SVE: LLVM Implementation

Toolchains


Software

Software: Binary Analysis

See also: Readings: Binary Analysis

Software: Debugging, Tracing

Software: Emulation, Simulation

Software: Lifting

Disassemblers, Decompilers, Recompilers

  • Dynarmic: A dynamic recompiler for the ARMv6K architecture
  • IDA script for highlighting and decoding ARM system instructions
  • REIL: A C++ translation/emulation library for the AArch64 instruction set to REIL
  • retools: a reverse engineering toolkit for normies
    • Collection of tools (disassembler, emulator, binary parser) aimed at reverse enginering tasks, more specifically, bug finding related. Currently we target ARMv7 and Mach-O though in the future more architectures and formats are planned.
    • retools is somewhat unique in that most of the semantics for relevant instructions are parsed out of the specification PDFs as opposed to being generated by hand. Currently the disassembler, emulator, and binary parsers are partially done, with a symbolic execution engine and instrumentation/hooking framework to come as I get more time.
    • https://github.com/agustingianni/retools
  • Spedi: a speculative disassembler for the variable-size Thumb ISA

Software: Performance

See also: Performance Tools

Software: Virtualization


Talks

2019

2018

2017

2016

2015

2014

2012

2011

2010

History


Tutorials, Courses

AArch64