> For the complete documentation index, see [llms.txt](https://firmianay.gitbook.io/ctf-all-in-one/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://firmianay.gitbook.io/ctf-all-in-one/4_tips/4.15_vsyscall_vdso.md).

# 4.15 利用 vsyscall 和 vDSO

* [vsyscall](#vsyscall)
* [vDSO](#vdso)
* [CTF 实例](#ctf-实例)
* [参考资料](#参考资料)

在章节 1.5.9 中我们介绍了 Linux 系统调用的知识。这一节中将了解 `vsyscall` 和 `vDSO` 两种机制，它们被设计用来加速系统调用的处理。

## vsyscall

```
$ cat /proc/self/maps | grep vsyscall
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
```

## vDSO

```
$ cat /proc/self/maps | grep vdso
7fff223aa000-7fff223ac000 r-xp 00000000 00:00 0                          [vdso]
$ cat /proc/self/maps | grep vdso
7fff1048f000-7fff10491000 r-xp 00000000 00:00 0                          [vdso]
```

## CTF 实例

例如章节 6.1.6 的 ret2vdso。

## 参考资料

* `man vdso`
* [Creating a vDSO: the Colonel's Other Chicken](https://www.linuxjournal.com/content/creating-vdso-colonels-other-chicken)
