Zum Inhalt springen

0x8000 · Bereich

ARM64-Exploitation

Das Smartphone in Ihrer Tasche, die meisten modernen Laptops und ein wachsender Anteil der Server laufen auf AArch64, dessen Exploitation-Modell sich in wichtigen Punkten von x86-64 unterscheidet: Die Rücksprungadresse liegt standardmäßig in einem Register, nicht auf dem Stack, und die Architektur bringt Hardware-Abwehr mit — Pointer Authentication und Branch Target Identification —, die Code-Reuse direkt angreift. Dieser Bereich baut die Techniken der x86-64-Leitfäden auf ARM im Labor nach und erklärt, wie PAC und BTI die Lage verändern.

Leitfäden in diesem Bereich

  1. On AArch64 the return address lives in a register, not on the stack — until a non-leaf function saves it. Build the ARM ret2win in a lab and see where the saved link register sits.

  2. AArch64 gadgets end in ret, which branches to x30 — so the chain is threaded through the link register with ldp gadgets. Build a system("/bin/sh") chain, then watch PAC and BTI break it.

  3. Pointer authentication signs return addresses so a forged one faults; BTI forces indirect branches onto landing pads. How both work, how to enable and verify them, and their limits.

Leitfäden erscheinen zuerst auf Englisch. Übersetzungen folgen.

Weitere Bereiche