Skip to content

Latest commit

 

History

History
984 lines (900 loc) · 58.5 KB

assembly.arm.md

File metadata and controls

984 lines (900 loc) · 58.5 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

Concurrency

Formalization, Specification, Verification

Instruction Set Architecture

Shellcode

A-profile

M-profile

Performance

Performance: Numerics

Security

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

Binary Analysis

Debugging, Tracing

Emulation, Simulation

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

Performance


Talks

2019

2018

2017

2016

2015

2014

2012

2011

2010

History


Tutorials, Courses

AArch64