Device Architecture and App Interaction Flashcards
What does ASLR stand for and what is it?
Address Space Layout Randomization
ASLR causes the memory location of code to be randomized each time the program starts. A bad memory location guess typically causes the program to crash, which restarts the program. When the program restarts, the code is randomized again.
What does AOT stand for?
Ahead-of-Time app compiliation
iOS Filesystem?
HFSX - Hierachical File System
3 iOS programming languages
C
Objective-C
Swift
5 layers of iOS Boot with signature validation between each
- BootROM
- Low-Level Bootloader
- iBoot
- Kernal
- Application
What does DEP stand for?
Data Execution Prevention
What is W^X?
W xor X - a mnemonic that memory is either writable or exectuable, but never both.
W^X is iOS’s mechanism for Data Execution Prevention
What does ASLR stand for?
Address Space Layout Radmonization
ASLR causes the memory location of code to be randomized each time the program starts. A bad memory location guess typically causes the program to crash, which restarts the program. When the program restarts, the code is randomized again.
ASLR makes Return-Origented Programming (ROP) difficult
In iOS, what are PACs?
Pointer Authentication Codes
PACs are designed to prevent Return-Oriented-Programming (ROP) and Jump-Oriented-Programming (JOP) exploits by adding a Message Authentication Code (MAC) to unused space of a pointer’s memory location.
On Android, what does ELF stand for?
Executable and Linkable Format
What is YAFFS?
Yet Another Flash File System
Old Android filesystem. Deprecated.
5 layers of Android Boot
- BootROM
- Signature validation
- Proprietary Boot Loader
- Optional validation
- Linux Kernal
- Platform Security
- Init Process
- Zygote, Dalvik, ART
Android programming languages?
Java
Kotlin
What does DEX stand for?
Dalvik Executable format