ASLR(地址随机化)是一种针对缓冲区溢出的安全保护技术
Mach-O可执行文件加载到内存地址中的地址值是固定的,通过加入ASLR机制只保证Mach-O文件的起始地址随机,但是Mach-O文件中的地址依旧按序排列
也可以通过命令行查询:
$image list // 查看到指定项目名称
Mach-O文件内存地址分析(Mach-OView查看)
PAGEZERO段: 0x000000000 ->0x100000000(1+8个零),NULL指针就指向这个段
Mach-O.png技巧1:根据MACH-O文件静态地址给运行中的程序设置内存断点
- 通过Hopper Disassembler加载已脱壳的项目Mach-O文件,查看指定方法的内存地址 0x0000000100005d0c
-
利用 mac 的 lldb 连接到 Demo 项目的 debugserver , 利用 image list找到第一个输出内容,也就是 Demo 加入内存时候的地址 0x0000000100b08000
-
0x0000000100b08000 + 5d0c = 0x100B0DD0C,通过breakpoint set -a 0x100B0DD0C ,可以给click:这个方法打上断点
网友评论