来看看这个2018年N1CTF的Vote,uaf解题过程。
我们先来看几个函数,虽然不一定是核心函数,但可以增长知识哈:
void *memset(void *s, int ch, size_t n);
函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法
解题过程:
结构体:
{
long int count (malloc data)
long int time (malloc data+8)
char name (malloc data+16)
}
三个位置分别为count,time,name。