2018-04-18 21:15:42 +07:00
|
|
|
# 4.15 利用 vsyscall 和 vDSO
|
|
|
|
|
2018-04-20 20:00:41 +07:00
|
|
|
- [vsyscall](#vsyscall)
|
|
|
|
- [vDSO](#vdso)
|
2018-04-18 21:15:42 +07:00
|
|
|
- [CTF 实例](#ctf-实例)
|
|
|
|
- [参考资料](#参考资料)
|
|
|
|
|
|
|
|
|
2018-05-09 20:37:01 +07:00
|
|
|
在章节 1.5.9 中我们介绍了 Linux 系统调用的知识。这一节中将了解 `vsyscall` 和 `vDSO` 两种机制,它们被设计用来加速系统调用的处理。
|
|
|
|
|
2018-04-20 20:00:41 +07:00
|
|
|
## vsyscall
|
2018-05-09 20:37:01 +07:00
|
|
|
```
|
|
|
|
$ cat /proc/self/maps | grep vsyscall
|
|
|
|
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
|
|
|
|
```
|
|
|
|
|
2018-04-20 20:00:41 +07:00
|
|
|
|
|
|
|
## vDSO
|
2018-05-09 20:37:01 +07:00
|
|
|
```
|
|
|
|
$ 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]
|
|
|
|
```
|
|
|
|
|
2018-04-20 20:00:41 +07:00
|
|
|
|
2018-04-18 21:15:42 +07:00
|
|
|
## 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)
|