ctfshow:pwn137
本文最后更新于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()通过相对偏移量调整堆顶指针,并返回调整前的堆顶地址。

好了今天就到这儿

继续学习ing......
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇