ASLR技术

ASLR(地址随机化)是一种针对缓冲区溢出的安全保护技术

Mach-O可执行文件加载到内存地址中的地址值是固定的,通过加入ASLR机制只保证Mach-O文件的起始地址随机,但是Mach-O文件中的地址依旧按序排列

也可以通过命令行查询:

$image list // 查看到指定项目名称

Mach-O文件内存地址分析(Mach-OView查看)

PAGEZERO段: 0x000000000 ->0x100000000(1+8个零),NULL指针就指向这个段

ASLR技术_第1张图片
Mach-O.png

技巧1:根据MACH-O文件静态地址给运行中的程序设置内存断点

  1. 通过Hopper Disassembler加载已脱壳的项目Mach-O文件,查看指定方法的内存地址 0x0000000100005d0c
Snip20210525_3.png
  1. 利用 mac 的 lldb 连接到 Demo 项目的 debugserver , 利用 image list找到第一个输出内容,也就是 Demo 加入内存时候的地址 0x0000000100b08000

  2. 0x0000000100b08000 + 5d0c = 0x100B0DD0C,通过breakpoint set -a 0x100B0DD0C ,可以给click:这个方法打上断点

你可能感兴趣的:(ASLR技术)