usually bracket in assembly language
Indirect memory access is a bottleneck for modern CPUs
Like pointer, interpreted as address
- Base: starting address of reference
- Index: offset from base address
- Scale: Constant multiplier of index
- Displacement: Constant base
Attacks via indirect jumps and function calls
- Return addresses in stack are not the only code pointers that can be corrupted.
- Indirect jumps and indirect function calls also jump to the code that code pointers point to