iOS 底层系列 - ALSR地址空间布局随机化

2,534 阅读1分钟

什么是ASLR

  • Address Space Layout Randomization,地址空间布局随机化。
  • 是一种 通过增加攻击者预测目的地址难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一种技术。
  • MachO 可执行文件每次起始地址不一样。
  • 苹果从iOS 4.3之后引入了ASLR技术,也就说把Mach-O载入内存后,所有的地址都会经过ASLR偏移

未使用ASLR的内存

函数地址永远是固定的,容易被破解者直接定位攻击代码。

使用ASLR的内存

函数的真正内存地址

Hopper 中地址 + ASLR 偏移 = 函数内存中的地址 (偏移前地址 + ASLR = 偏移后地址)

函数内存中的地址 - ASLR 偏移 = Hopper 中地址 (偏移后地址 - ASLR = 偏移前地址)