文章目录
pwn常用函数
1.输入输出类
1.1 write()函数
**函数原型:**ssize_t write(int fd, const void *buf, size_t count)
**函数功能:**由fd指定输出的位置,将buf的内容进行输出,输出的长度为n
函数参数:
- fd:文件描述符;write一般为1,由屏幕输出显示
- buf:指定的缓冲区,即指针,指向一段内存单元;比如GOT表项
- count:要写入文件指定的字节数,64位一般指针8字节,32位是4字节。
**使用示例:**write(1,GOT地址,8|4):显示GOT对应函数的实际地址
备注:
x64传参:
- rsi=p64(0x1)
- rdi=p64(GOT)
- rdx=p64(0x8)
1.2 read()函数
**函数原型:**ssize_t read (int fd, void *buf, size_t count)
**函数功能:**由fd指定写入内容的来源,将待写入的内容写入到buf,写入的长度为count
函数参数:
- fd:文件描述符;read 为0,由键盘写入
- buf:指定的缓冲区,即指针,指向一段内存单元;比如向.bss段写入’/bin/sh\x00’
- count:要写入文件指定的字节数
**使用示例:**read(0, buf, t):向buf所指的地址写入t字节长度的内容,写入的内容由键盘输入
1.3 scanf()函数
函数原型: int scanf(const char *format, …)
函数功能: 格式化输入
**函数参数: **
- format:格式字符串,指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要