update 4.2

This commit is contained in:
firmianay 2017-11-05 20:15:57 +08:00
parent 6b082f13dc
commit c2125a9e1a

View File

@ -5,6 +5,7 @@
- [查看进程虚拟地址空间](#查看进程虚拟地址空间)
- [ASCII 表](#ascii-表)
- [nohup 和 &](#nohup-和)
- [cat -](#cat)
## 重定向输入字符
@ -247,3 +248,33 @@ $ bg 1
```
$ fg 1
```
#### cat -
通常使用 cat 时后面都会跟一个文件名,但如果没有,或者只有一个 `-`,则表示从标准输入读取数据,它会保持标准输入开启,如:
```
$ cat -
hello world
hello world
^C
```
更进一步,如果你采用 `cat file -` 的用法,它会先输出 file 的内容,然后是标准输入,它将标准输入的数据复制到标准输出,并保持标准输入开启:
```
$ echo hello > text
$ cat text -
hello
world
world
^C
```
有时我们在向程序发送 paylaod 的时候,它执行完就直接退出了,并没有开启 shell我们就可以利用上面的技巧
```
$ cat payload | ./a.out
> Segmentation fault (core dumped)
$ cat payload - | ./a.out
whoami
firmy
^C
Segmentation fault (core dumped)
```
这样就得到了 shell。