Tabellab
Cybersecurity Advanced

Android Native Memory Safety & Mitigations

Understand ARM64, JNI and native memory bugs, read crashes with sanitizers, and harden C/C++. For authorized testing of your own code only.

12 lessons 1.2 h Certificate

One-time payment · lifetime access · lessons, labs, exam and certificate included · no subscription.

About this course

This course explains native memory safety on Android for defenders and developers. You start with the ARM64 register set and calling convention, then cross the JNI boundary where C and C++ bugs live. You learn to recognise stack overflows, heap overflows, integer overflows and use-after-free, and to reproduce and read crashes in your own small test programs using AddressSanitizer and a debugger. The mitigations lessons cover NX, PIE, ASLR, stack canaries, RELRO, SELinux, the app sandbox and CFI, and why layering them matters. Later lessons show fuzzing your own native libraries with AFL++ and triaging a crash for severity. Every exercise runs in your own emulator on code you wrote, for authorized, legal learning only. Short quizzes and a final exam lead to the Tabellab certificate.

Lessons

  1. The Native Memory Layer on AndroidReading6 min Pro
  2. ARM64 Assembly Crash-CourseReading6 min Pro
  3. The JNI Boundary — Where Bugs LiveReading6 min Pro
  4. Finding & Understanding a Memory BugReading6 min Pro
  5. Android Mitigations & HardeningReading6 min Pro
  6. Reversing JNI/NDK LibrariesReading6 min Pro
  7. Native Memory-Corruption Bug ClassesReading6 min Pro
  8. What Each Mitigation DoesReading6 min Pro
  9. Return-Oriented Programming on ARM64Reading6 min Pro
  10. Fuzzing Native Libs with AFL++Reading6 min Pro
  11. Triaging a Crash for SeverityReading6 min Pro
  12. Final Exam — Native Memory SafetyReading6 min Pro