本文最后更新于121 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
继续做前置基础


1.分析

主要是这个函数,运行就有flag
ok先学习一些知识吧
v0 = getpid();
getpid函数
用来获取PID(PID是一个唯一的整数,可以用来标识系统中的每一个进程),不会python哈哈
sbrk函数
sbrk函数的工作原理
sbrk函数通过接收一个整数参数(可以是正数或负数),来增加或减少进程的堆空间。当参数为正数时,堆空间增加;当参数为负数时,堆空间减少。调用成功时,sbrk返回新的堆顶地址的指针;如果调用失败,则返回(void *)-1。
brk接口的定义与功能
brk()和sbrk()是两个相关的系统调用:
brk():设置堆的结束地址(即堆顶指针)为指定的绝对地址。
sbrk():通过相对偏移量调整堆顶指针,并返回调整前的堆顶地址。
它们的主要作用是动态调整堆的大小,从而为进程分配或释放内存。
#include <unistd.h>
// brk() 设置堆顶指针
int brk(void *addr);
// sbrk() 调整堆顶指针
void *sbrk(intptr_t increment);
先记这些
2.实操

可以看出brk()和sbrk()的功能了,sbrk()通过相对偏移量调整堆顶指针,并返回调整前的堆顶地址。
好了今天就到这儿










